我写了一个公式:
=IF(len(d2)>0,IF(d2=0,true,false),IF(len(e2)>0,IF(e2=0,true,false),false))
如果公式返回true,我想要遍历整行。但它没有用。恼人的事实是:
请自行检查。获得" True"公式中的值,在d2和e2中输入0,并看到自己条件格式不尊重它。
提前感谢您抽出时间阅读问题。
答案 0 :(得分:1)
公式仅适用于单元格A2
和B2
,原因是公式中的D2
和E2
是 relative 引用,这意味着公式中的这些单元格随着应用条件格式的单元格也会移位。
换句话说,单元格A2
将此视为公式:
=IF(LEN(D2)>0,IF(D2=0,TRUE,FALSE),IF(LEN(E2)>0,IF(E2=0,TRUE,FALSE),FALSE))
单元格B2
将此视为公式:
=IF(LEN(E2)>0,IF(E2=0,TRUE,FALSE),IF(LEN(F2)>0,IF(F2=0,TRUE,FALSE),FALSE))
注意公式如何让细胞移位。
当它到达单元格C2
时出现问题,单元格将公式视为:
=IF(LEN(F2)>0,IF(F2=0,TRUE,FALSE),IF(LEN(G2)>0,IF(G2=0,TRUE,FALSE),FALSE))
据推测,F2
和G2
都不包含您要查找的数据,这就是不应用条件格式规则的原因。
要解决此问题,您可以将公式更改为绝对引用,以便它始终引用D
和E
列,如下所示:
=IF(LEN($D2)>0,IF($D2=0,TRUE,FALSE),IF(LEN($E2)>0,IF($E2=0,TRUE,FALSE),FALSE))
这样,第二行中的所有单元格在检查格式时都会考虑精确上面的公式(即单元格不会移位)。
在旁注中,公式的一部分是多余的。
= IF(<condition>,TRUE,FALSE)
等同于
= <condition>
此外,如果未指定IF
语句中的第三个参数,则FALSE
是默认值。
话虽这么说,这个公式可以简化为:
=IF(LEN($D2)>0,$D2=0,IF(LEN($E2)>0,$E2=0))