如何在Google电子表格中有条件地格式化包含日期的单元格,使其根据一周中的某一天具有不同的背景,例如,在包含月日的列中突出显示周六和周日?
如何在Google电子表格中有条件地格式化包含日期的单元格,使其根据一周中的某一天具有不同的背景,例如,在包含月日的列中突出显示周六和周日?
Answers:
在新的Google表格中轻松(但有点乏味!)。对于条件格式,大约每种颜色都需要一个新规则。(通常可以从规则中跳过一种颜色,而可以使用常规格式设置-在适用于CF的任何条件下,这种颜色都将被忽略。)因此,请至少重复以下五次基本操作。
说日期列为A。选择它,格式>条件格式...,自定义公式为,然后输入:
=weekday(A1)=1
选择所需的格式。
1
上面的最后一个是星期日,其他日子按照数字顺序。
重复其他所需的格式,并1
根据需要进行调整。
因为这些规则没有冲突(每个日期仅是一周中的某一天),所以添加规则的顺序(带有“ +添加另一个规则 ”)无关紧要。
=WEEKDAY(A1,2)>5
-这将创下两个星期六和星期日,只需要一个规则
如果日期在A列中,请选择日期,然后执行以下操作:格式 > 条件格式... > 格式化单元格,如果... > 自定义公式并放入
=and(isblank(A:A)=false, or(weekday(A:A)=1, weekday(A:A)=7))
一些解释:
weekday(A:A)
对于星期几,返回1-7,
如果是星期日(1)或星期六(7),则or(weekday(A:A)=1, weekday(A:A)=7)
返回true。
这可以单独工作,但是由于某种原因,在空单元格上的weekday()返回7,因此isblank(A:A)=false
还要检查该单元格是否为空。现在,如果它既是(非空)又是(日光或饱和光),则为单元格着色
我还放了A:A
,A1
如果格式范围不是从顶部开始(例如,A5:A100
而不是A1:A100
),则会给出偏移量结果
归功于pnuts!
使用脚本可以做到这一点。转到工具 → 脚本编辑器...,然后粘贴以下脚本:
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");
}
}
保存脚本(为项目命名),然后返回电子表格。
现在,每次编辑单元格时,此脚本都会检查是否输入了日期,以及输入的日期是星期日还是星期六。如果是这样,单元格的背景将变为红色。如果不是日期或不是周末,则背景将变为白色。
还有其他颜色的名称,你可以用,也可以使用十六进制代码来指定不同的颜色。
if
语句中的测试更改为更简单。现在可以用吗?
=and(not(isblank(A1)), or(WEEKDAY(A1)=1,WEEKDAY(A1)=7))