如何在Google表格中根据其他单元格的值更改单元格的颜色

3

我知道google表格中的条件格式,但我有一种特殊的使用情况。

如果列NOP所有单元格都包含单词pass,那么我希望列A中的单元格n(一直向下)变为绿色。

但是,如果NOP中的任何一个单元格包含了fail(无论它们是否也包含pass),我希望列A中的单元格n变为红色。

这个能实现吗?


1
你有可以分享的示例表格吗? - Jeff Gibson
2个回答

3

解释:

  • 您可以使用Google Apps Script来实现您的目标,特别是使用onEdit()函数来模拟条件格式的自动(在编辑时)更新。

  • 以下脚本将获取NOP列中所有单元格的值,如果所有这些值都是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");
  }
 }
}

说明/演示:

demonstration


2

如果你想使用公式而不是脚本,你可以使用以下两个规则:

第一条规则:

如果列 NOP 中的所有单元格中都有单词 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

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接