我正在尝试使用条件格式自动为满足给定条件的行着色。例如,如果行的 D 列中有内容,则为该行着色:=INDIRECT("D"&ROW())<>""
这种方法很有效。
但是,如果我尝试一些更复杂的事情,即使我按 Ctr+Alt+F9,也不会有任何反应。具体来说,这不起作用:
=AND(INDIRECT("D"&ROW())<>"",INDIRECT("F"&ROW())="X")
它应该为 D 列不为空且 F 列包含 X 的行着色。如果我将它直接放入工作表中(放入其中一个单元格中),效果很好。当它应该为真时,计算结果为真;当它应该为假时,计算结果为假。尽管如此,当我尝试使用它进行条件格式设置时(尽管确实添加了规则),它没有任何效果;它没有为它应该着色的单元格着色。
这是什么问题?我该如何解决?
答案1
根据评论,这是不是使用条件格式的方法 - 使用像 Blackwood 所说的单元格引用,例如
=AND(D2<>"",F2="x")
....但这里的具体问题是ROW
函数。我不知道为什么在工作表上没问题而在 CF 中却不行,但ROW
函数实际上返回一个“数组”而不是数字,即使它是一个数字,所以在第 2 行,例如ROW()
返回数组 {2}。在某些情况下,Excel 无法处理该数组,因此解决方案是包装在另一个函数中,如SUM
或MAX
,如下所示:
=AND(INDIRECT("D"&SUM(ROW()))<>"",INDIRECT("F"&SUM(ROW()))="X")
SUM
尽管我注意到,如果您乘以条件而不是使用,它也可以正常工作,AND
即
=(INDIRECT("D"&ROW())<>"")*(INDIRECT("F"&ROW())="X")
注意:COLUMN
函数有时会显示相同的行为