使用INDIRECT函数的条件格式化失败,包括布尔AND或OR或包含公式的单元格

时间:2017-05-23 16:36:06

标签: excel excel-formula excel-2013 excel-r1c1-notation

我有以下函数来检查列L是否包含单词"已完成"并且我使用INDIRECT能够使用条件格式对整行进行着色:

 =INDIRECT("l"&ROW())="completed"

此功能有效。但是,我需要扩展它,我想使用基于额外单元格的条件格式,所以我尝试了这个:

=AND(INDIRECT("l"&ROW())="completed";INDIRECT("m"&ROW())="duplicate")

当我在Excel工作表中使用第二个函数时,他们会提供正确的TRUEFALSE

此外,我需要在单元格中的公式结果上进行自定义格式化。我尝试了以下方法:

=INDIRECT("n"&ROW())=123456

这只有在我删除单元格中的公式并将结果本身作为数字时才有效。同样,该功能在粘贴到工作表单元格时有效。

有没有办法在Excel中使这项工作或条件格式化功能可以做什么限制?

如果您提出问题:AND(1;1)有效并使所有内容变为黄色,AND(INDIRECT("n"&ROW())=123456;1)不起作用,也不会将AND替换为OR

分号是因为我在荷兰语中。如果您使用的是英语语言环境,请用逗号替换它。

2 个答案:

答案 0 :(得分:2)

您必须根据xlR1C1公式来理解CFR。基于公式的CFR将其视为=RC12="completed"或更完整=AND(RC12="completed", RC13="duplicate")

无论您粘贴到哪个单元格,xlR1C1公式都不会改变;通过这种方式,CFR可以应用于各种单元,而不需要花费计算周期来更新每个单元的公式。 RC12表示'您所在行上的L列中的单元格'。如果填写,填写正确或复制到任何其他位置,它不会改变。

现在,除非您实际使用xlR1C1(文件,选项,公式,使用公式,R1C1参考样式),否则必须将xlR1C1转换为xlA1样式。如果将CFR应用于从第一行开始的多行,则R变为1,C12变为$ L.

'xlR1C1
=AND(RC12="completed", RC13="duplicate")
'xlA1
=AND($L1="completed", $M1="duplicate")

如果您将CFR应用于从第2行开始的范围,请将$ L1更改为$ L2,将$ M1更改为$ M2。

在使用xlA1样式时,不将xlR1C1样式公式直接放入CFR创建对话框的其他原因是xlA1中实际存在RC12单元格。

答案 1 :(得分:1)

不确定为什么这在Conditional Formatting中不起作用。但您只需将AND函数替换为*,例如:

=(INDIRECT("l"&ROW())="completed")*(INDIRECT("m"&ROW())="duplicate")
相关问题