【问题标题】: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】:

解释:

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

  • 以下脚本将获取N、O中所有单元格的值 和 P 列,如果 all 这些值都通过,那么它 将set 列A 的背景颜色变为绿色。在 另一方面,如果其中至少有一个不是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");
  }
 }
}

说明/演示:

【讨论】:

    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-13
      • 1970-01-01
      相关资源
      最近更新 更多