我知道google表格中的条件格式,但我有一种特殊的使用情况。
如果列N
、O
或P
中所有单元格都包含单词pass
,那么我希望列A
中的单元格n(一直向下)变为绿色。
但是,如果N
、O
或P
中的任何一个单元格包含了fail
(无论它们是否也包含pass
),我希望列A
中的单元格n变为红色。
这个能实现吗?
我知道google表格中的条件格式,但我有一种特殊的使用情况。
如果列N
、O
或P
中所有单元格都包含单词pass
,那么我希望列A
中的单元格n(一直向下)变为绿色。
但是,如果N
、O
或P
中的任何一个单元格包含了fail
(无论它们是否也包含pass
),我希望列A
中的单元格n变为红色。
这个能实现吗?
您可以使用Google Apps Script来实现您的目标,特别是使用onEdit()函数来模拟条件格式的自动(在编辑时)更新。
以下脚本将获取N、O和P列中所有单元格的值,如果所有这些值都是pass,则会将列A的背景颜色set为绿色。另一方面,如果它们中至少有一个不是pass,则会将列A的颜色设置为红色。请随意更改sheet_name
为您自己的工作表名称。
function onEdit(e) {
const sheet_name = 'Sheet1';
const col = e.range.getColumn();
const as = e.source.getActiveSheet();
if(as.getName() === sheet_name && col>13 && col<17){
const data = as.getRange('N1:P').getValues().flat();
const range = as.getRange('A1:A');
const allEqual = arr => arr.every( v => v === arr[0] );
if(allEqual(data)){
range.setBackground("green");
}
else {
range.setBackground("red");
}
}
}
如果你想使用公式而不是脚本,你可以使用以下两个规则:
第一条规则:
如果列
N
、O
或P
中的所有单元格中都有单词pass
,则将列A
中的单元格 n(一直到底部)标记为绿色。
=COUNTIF($B$1:$D,">""")+COUNTIF($B$1:$D,"")=COUNTIF(ArrayFormula(REGEXMATCH($B$1:$D,"\bpass\b")),true)
第二条规则:
...如果列
A
中的任何单元格包含fail
,则将列中的第 n 个单元格标为红色,无论它们是否还包含pass
。
=COUNTIF(ArrayFormula(REGEXMATCH($B$1:$D,"\bfail\b")),true)>0