【问题标题】:How to change the color of a cell based on the value of other cells in google sheets如何根据谷歌表格中其他单元格的值更改单元格的颜色
【发布时间】:2021-01-10 03:07:03
【问题描述】:
我知道谷歌表格中的条件格式,但我有一种特定的用例。
如果ALL列N、O 或P 中的单元格有单词pass在里面
但如果N、O 或P 中的ANY 单元格包含fail,我希望列A 中的单元格n 为红色,无论它们是否还包含pass
有没有办法做到这一点?
【问题讨论】:
标签:
javascript
google-apps-script
google-sheets
google-sheets-formula
conditional-formatting
【解决方案1】:
解释:
解决办法:
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");
}
}
}
说明/演示:
【解决方案2】:
如果您想使用公式而不是脚本,您始终可以使用以下 2 条规则:
第一条规则:
如果 ALL 列N、O 或 P 中的单元格有单词pass 在里面
=COUNTIF($B$1:$D,">""")+COUNTIF($B$1:$D,"")=COUNTIF(ArrayFormula(REGEXMATCH($B$1:$D,"\bpass\b")),true)
第二条规则:
...如果N、O 或P 中的ANY 单元格包含fail,则A 列中的单元格n 为红色,无论它们是否还包含@ 987654336@
=COUNTIF(ArrayFormula(REGEXMATCH($B$1:$D,"\bfail\b")),true)>0