sheet 上的单元格条件格式(颜色)基于另一个 sheet 上的值

Conditional Formatting (Color) of cells on a sheet based on values on another sheet

我正在尝试实现条件格式但无法整理系统。 我想要实现的目标:

  1. 在两个 sheet 中匹配样式和模式列。范围:A21:B40 与 A2:C63.
  2. 匹配时,顺序 Sheet 中的列 headers ( G1 : AO1 ) 将与指南匹配 Sheet 行值 A21: B40,其中单元格的颜色将根据按照 sheet 的顺序转到指南 sheet。如果任何列 headers 不匹配,那么它将保持白色。

我附上了一个示例 sheet,其中 sheet 订单中的 ST5 被用作示例,但是是手动的。如果这个过程可以自动化,那将减轻我在办公室的工作。

示例Sheet https://docs.google.com/spreadsheets/d/1cTgAKhIO0_OJgoReuAMSaZU-7BE4P2xHdt3ASsPgIH0/edit?usp=sharing

我也愿意做一个环聊电话来整理这些系统。

抱歉无法解释清楚,在此先感谢。

对于指南,您需要 4 条规则。在单元格 C21 中添加。这将颜色代码指南。

应用于范围 C21:R1017(适用于所有 4 条规则)

自定义公式

=match(C21,$C:$C,0)

=match(C21,$E:$E,0)

=match(C21,$G:$G,0)

=match(C21,$I:$I,0)

对于订单,您需要脚本。请尝试以下操作:

function colorCells(){
 var ss=SpreadsheetApp.getActiveSpreadsheet() 
 var s=ss.getSheetByName("Orders")
 var s1=ss.getSheetByName("Guide")
 var lr=s.getLastRow()
 var lc=s.getLastColumn()
 var lr1=s1.getLastRow()
 var lc1=s1.getLastColumn()
 var orderdata=s.getRange(1, 1, lr, lc).getValues()
 var guidedata=s1.getRange(21, 1, lr1=21, lc1).getValues()
 var headers=s.getRange(1, 7, 1, lc-6).getValues()
 for(var i=0;i<orderdata.length;i++){
   for(var j=0;j<guidedata.length;j++){
     if(orderdata[i][1]==guidedata[j][0] && orderdata[i][2]==guidedata[j][1]){
         var row=i+1
         var row1=j+21
         var line=s1.getRange(row1, 3, 1,18).getBackgrounds()
         var lval=s1.getRange(row1, 3, 1,18).getValues()
      for(var k=0;k<headers[0].length;k++){
         for(var l=0;l<lval[0].length;l++){
          var t=headers[0][k]
          var t1=lval[0][l]
          if(t==t1){
             var c=s1.getRange(row1, l+3, 1,1).getBackground()
             var sc=s.getRange(row, k+7, 1,1).setBackground(c)
      }}}}}}}

这是电子表格的工作示例。复制并尝试一下:

https://docs.google.com/spreadsheets/d/12KoRLAnkJwQB0OKTmauxmqxq5BT71gyIgCo3Wf-jemk/edit?usp=sharing