Google sheets 根据Google电子表格上的日期切换行背景
我有一个存储日期的列,我尝试实现一个条件格式自定义公式,如果日期是奇数或偶数,可以切换整行(或一行的多个单元格)的背景颜色 这是我工作表的一个价值版本,以及我试图实现的目标。日期和时间在单独的列中。我可以有多行具有相同日期(不同时间)。具有相同日期的行必须具有相同的颜色Google sheets 根据Google电子表格上的日期切换行背景,google-sheets,gs-conditional-formatting,Google Sheets,Gs Conditional Formatting,我有一个存储日期的列,我尝试实现一个条件格式自定义公式,如果日期是奇数或偶数,可以切换整行(或一行的多个单元格)的背景颜色 这是我工作表的一个价值版本,以及我试图实现的目标。日期和时间在单独的列中。我可以有多行具有相同日期(不同时间)。具有相同日期的行必须具有相同的颜色 Date, Time, Data 01/12/2014, 01:00, "xxxx" -> BG = X 01/12/2014, 03:00, "xxxx" -> BG = X 02/12/2014, 0
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(day(A1))
- 选择整个工作表
- 单击格式->条件格式
- 从下拉列表中选择“自定义公式”
- 在公式框中输入:
=isodd(天($A1))
- 选择您的格式(背景色)
- 单击“确定”
=isodd(日期值($A1))
[请阅读上面有关应用条件公式的说明。您不需要使用范围或数组]
不要引用条件格式公式中的范围“=ISEVEN(工作日($B$2:$B$23))”谷歌电子表格似乎不支持这种格式的日期。使用您的函数,我在尝试该格式时会出错,但是如果我从末尾删除时间,它就可以正常工作 解决方法:将日期添加为自定义格式: 我通过设置以下格式使其与“12/1/2014 1:00:00”一起工作:
Year(1930)-Month(08)-Day(05),Hour(1):Minute(1)
----编辑-----
我将条件格式设置为:
=ISODD(DAYSFROM70($A1))
我在A列中有日期,所以这会改变整行,因为日期是奇数
希望这对您有所帮助如果您的日期在ColumnA中,请尝试格式、条件格式…,自定义公式为:
=isodd(text($A1,"#"))
将可选择的格式应用于范围:A:Z(或根据需要扩展)。DAY()返回月份的日期,因此31天月份的最后一天的颜色将与第二天相同(DAY(31/01/2014)=31=>odd,DAY(01/02/2014)=1=>odd)是的,我必须找到“DAY is odd”的含义在我的例子中,工作日和月日不起作用,因为连续两天可能是奇数或偶数,所以我选择根据时间戳计算天数。我不明白为什么我不需要在公式中使用范围?我尝试使用一个单元格,但无论是DATEVALUE(所有颜色)还是DAYSFROM70函数,它都不起作用。您是否完全按照我写的说明进行条件格式设置?我已经复制了你的(测试)表,并按照我的说明进行了操作,格式符合要求。好的,按照你提到的使用DATEVALUE。非常感谢你。回答被接受。对不起,我的错误,日期和时间在不同的列中,日期存储为DD/MM/YYYY,所以谷歌电子表格可以正确识别它们。这只是为了说明我可以在同一天有多行。这适用于单个单元格,但不适用于范围=ISODD(70日起(2美元:101美元))
=isodd(text($A1,"#"))