我该如何有条件地格式化包含日期的Google电子表格中的单元格,使其背景与一周中的日期不同。例如,如果某个日期是星期六或星期日,请将背景颜色设置为黄色,其他白色。

#1 楼

我已经为此苦苦挣扎了很长时间,但最终还是破解了它:

在带有日期的列上使用条件格式,然后将以下内容作为自定义公式键入:

=or(WEEKDAY(A1)=1,WEEKDAY(A1)=7)


其中A1是列中的第一个日期。

这会将条件格式应用于值分别为1(星期日)和7(星期六)的所有工作日。

评论


谢谢,这是一个很好的解决方案。我接受对于我的用途,我已对其进行了调整以排除空白单元格:= and(not(isblank(A1))或(WEEKDAY(A1)= 1,WEEKDAY(A1)= 7))

–迈克·埃利斯(Mike Ellis)
18年2月7日在15:55

不错,而且没有isblank。我一直以仅在包含日期的范围内使用它的方式使用它,例如A1:A31。我也将它从使用>和<更改为=,就像您所做的一样。这样有点简单。我想我开始希望工作日编号更像是在我的国家/地区,星期一是1,星期日是7。我不知道如果更改国家/地区设置,情况是否如此。

–aej
18-2-8在3:31



#2 楼

在新的Google表格中轻松(但有点乏味!)。对于条件格式,大约每种颜色都需要一个新规则。 (通常可以从规则中跳过一种颜色,而采用常规格式设置-在适用于CF的任何条件下都将被忽略。)因此,请至少重复以下五次基本操作。

说日期列为A。选择它,格式>条件格式...,自定义公式为并输入:

=weekday(A1)=1  


选择所需的格式。

上面的最后一个1是星期日,其他日期按数字顺序。

重复其他所需的格式,并根据需要调整1

因为这些规则没有冲突(每个日期仅是一周中的某一天),所以添加规则的顺序(带有“ +添加另一个规则”)无关紧要。

评论


在此基础上,更简单的方法是= WEEKDAY(A1,2)> 5-这将同时在周六和周日生效,并且只需要一个规则

– FuriousGeorge
2015年12月3日,14:24

做到了。谢谢!

–约书亚舞
16/09/26'6:18

#3 楼

如果日期在A列中,请选择日期,然后执行以下操作:格式>条件格式设置...>单元格格式设置...>自定义公式并放入

=and(isblank(A:A)=false, or(weekday(A:A)=1, weekday(A:A)=7))


一些解释:

weekday(A:A)在星期几返回1-7,并且
or(weekday(A:A)=1, weekday(A:A)=7)在星期天(1)或星期六(7)返回true。

/>这可以单独使用,但是由于某种原因,在一个空单元格上,weekday()会返回7,因此isblank(A:A)=false还会检查该单元格是否为空。现在如果它既是(非空)又是(sun或sat),它会为一个单元格着色。

我还放置了A:A,因为如果格式范围不在顶部开始,则A1会给出偏移量结果(例如,用A5:A100代替A1:A100

记入pnuts!

#4 楼

使用脚本可以做到这一点。转到工具→脚本编辑器...,然后粘贴以下脚本:

function onEdit(e) {
  var cell = e.range.getCell(1, 1);
  var val = cell.getValue();
  if ((val instanceof Date) && (val.getDay() == 0 || val.getDay() == 6)) {
    cell.setBackground("red");
  } else {
    cell.setBackground("white");
  }
}


保存脚本(为项目命名),然后返回电子表格。<现在,每次编辑单元格时,此脚本都会检查您是否输入了日期,以及输入的日期是星期日还是星期六。如果是这样,单元格的背景将变为红色。如果不是日期或不是周末,背景将变为白色。

您可以使用其他颜色名称,也可以使用十六进制代码指定其他颜色。 。

评论


谢谢,威廉。尽管代码看起来很明智,但是由于某些原因,它并没有按预期工作。它将偶数天变成红色,奇数天变成白色。

–迈克·埃利斯(Mike Ellis)
13年4月26日在21:49

我将if语句中的测试更改为更简单。现在可以用吗?

–威廉·杰克逊
13年4月29日在13:57

#5 楼

要有条件地格式化带有日期的单元格A6,我在条件格式*Custom formula is*(底部下拉菜单)下使用了该选项,并输入了公式

=weekday(A6,2)<6


这是有关单元格A6上的条件

如果要标记周六和周日,请使用:

=weekday(A6,2)>5