我有一个存储日期的列,我尝试实现条件格式自定义公式,如果日期是奇数或偶数,则切换整行(或行的多个单元格)的背景颜色 .
这是我的工作表的昏迷分隔值版本以及我尝试实现的内容 . 日期和时间在不同的列中 . 我可以有多个具有相同日期(不同时间)的行 . 具有相同日期的行必须具有相同的颜色 .
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
谢谢你的帮助 .
3 回答
Google Spreadsheet似乎不支持该格式的日期 . 使用您的函数,我在尝试该格式时出错,但如果我从最后删除时间,它工作正常 .
解决方法:将日期添加为自定义格式:https://support.google.com/docs/answer/56470?hl=en
我通过设置格式得到它:“12/1/2014 1:00:00”
我将条件格式设置为:
我在A列中有日期,所以这将改变整行,日期是奇数 .
希望这可以帮助
如果您的日期在ColumnA中,请尝试格式化,条件格式化......,自定义公式为:
格式化选择应用于范围:A:Z(或根据需要扩展) .
为什么你不能这样做:= isodd(日(A1))??
选择整张纸
点击格式 - >条件格式
从下拉列表
选择"custom formula"
在公式框中放置:
=isodd(day($A1))
选择你的格式(背景颜色)
点击确定 .
编辑
在你的问题中,你没有指明你的意思是“天是奇怪的” .
因为您想要为"every other day"设置颜色行,而不管您在年,月或年中的日期(使用内置函数):
=isodd(DATEVALUE($A1))
[请阅读上述有关应用条件公式的说明 . 你不需要使用范围或数组]
DO NOT REFER TO A RANGE IN THE CONDITIONAL FORMATTING FORMULA!! "=ISEVEN(WEEKDAY($B$2:$B$23))" < - NO !!
“= isodd(DATEVALUE($ A2))”< - YES !! (其中A2是您要格式化的范围的最顶行 - 如条件格式弹出对话框中的“范围”框中所示)