我有一个代码生成的电子表格,其中包含以下数据:
Col:A B C D
Sect | Lbl | Data1 | Data2
===================================
Sec1 | Lbl1 | 1 | >50
-----------------------------------
Sec2 | Lbl2 | 2 | 1
我有一个条件格式规则,可以说如果Data1
大于Data2
,则在Data1
列中将单元格背景色设为红色。如果数据为>50
,则在公式中提取50
。我忽略了第一行和前两列,因为这种格式不需要它们。
适用于范围:C2:Z1000
自定义公式为:=AND((1*REGEXEXTRACT(D2,"\d+"))<(1*REGEXEXTRACT(C2,"\d+")))
这似乎行得通。
下一步是在现有电子表格的B和C列之间插入一些新数据(我的最新数据始终在左侧)
Col:A B C D E
Sect | Lbl | NEWData| Data1 | Data2
==========================================
Sec1 | Lbl1 | 9 | 1 | >50
------------------------------------------
Sec2 | Lbl2 | 3 | 2 | 1
因此,您可以看到,新数据现在位于C列中,并且所有数据都移到了1列上。 现在,该规则会影响D列(对以上设置没有更改)。但是,我希望它会影响所有C列,如此:
NEWData
的值大于该行中的Data1
的值,则为红色Data1
的值大于该行中的Data2
的值,则为红色Data2
将始终是未格式化的,因为它的右侧没有可比较的值。 每次我在C列的位置添加一个新列时,我希望为所有适用的列数据更新颜色。
侧面注意:我也有另一个类似的规则,如果该值是“小于”而不是“大于”,则将单元格涂成绿色。一旦我使该规则生效,这也将适用。
答案 0 :(得分:0)
我终于弄明白了。问题似乎在于正在输入新列的数据的格式(或假定的格式)。
我的代码插入值适用于规则(请参见下文),但是当我手动在新列中键入值(以测试公式)时,未应用规则。 但是,可以手动将值复制并粘贴到新列DID中。 很烦人。
无论如何,我简化了规则:
如果该值大于右侧的值,则BG颜色=红色
C2:Z
=GT(1*REGEXEXTRACT(C2,"\d+"),1*REGEXEXTRACT(D2,"\d+"))
如果该值小于右边的值,则BG颜色=绿色
C2:Z
=LT(1*REGEXEXTRACT(C2,"\d+"),1*REGEXEXTRACT(D2,"\d+"))