我有一列存储日期,我尝试实现一个条件格式自定义公式,如果一天是奇数或偶数,它会切换整行(或一行的多个单元格)的背景颜色。
这是我的工作表的逗号分隔值版本以及我试图实现的目标。日期和时间在不同的列中。我可以有多个具有相同日期(不同时间)的行。具有相同日期的行必须具有相同的颜色。
Date, Time, Data
01/12/2014, 01:00, "xxxx" -> BG = X
01/12/2014, 03:00, "xxxx" -> BG = X
02/12/2014, 01:00, "xxxx" -> BG = Y
03/12/2014, 01:00, "xxxx" -> BG = X
03/12/2014, 02:00, "xxxx" -> BG = X
04/12/2014, 03:00, "xxxx" -> BG = Y
为了计算这一天是偶数还是奇数,我编写了一个简单的函数来返回自 1970 年 1 月 1 日以来的天数:
/**
* Return the day of the year of a date or a range
*
* @param {date}|{Array.Array} Date or range.
* @return The day of year.
* @customfunction
*/
function DAYSFROM70(date)
{
if (date.map) {
return date.map(DAYSFROM70);
} else {
if (!date instanceof Date || !date.getTime) {
return "";
} else {
return Math.ceil(date.getTime() / 86400000);
}
}
}
这是我尝试应用的自定义公式(注意 DAYSFROm70 函数使用范围作为参数),但没有成功:
=ISODD(DAYSFROM70($B$2:$B$101))
以下公式为单元格背景着色(但我显然不能使用它,星期天和星期一都是奇数):
=ISODD(WEEKDAY($B$2:$B$101))
我的脚本有问题,但我不知道是什么...
查看此电子表格进行测试: https ://docs.google.com/spreadsheets/d/1U49FoeMPKlvjCURsqS7GxTH62u_fTJNCcH12XFQtWVQ
谢谢你的帮助。