使用 INDIRECT 函数的条件格式设置因布尔值 AND 或 OR 或包含公式的单元格而失败
Conditional formatting using the INDIRECT function fails with boolean AND or OR or with cells containing formulas
我有以下功能来检查列 L
是否包含单词 "completed" 并且我使用 INDIRECT
能够使用条件格式为整行着色:
=INDIRECT("l"&ROW())="completed"
这个功能有效。但是,我需要扩展它,我也想使用基于额外单元格的条件格式,所以我尝试了这个:
=AND(INDIRECT("l"&ROW())="completed";INDIRECT("m"&ROW())="duplicate")
当我在 Excel 工作表中使用第二个函数时,它们会给出正确的 TRUE
或 FALSE
.
此外,我需要对单元格中公式的结果进行自定义格式设置。我尝试了以下方法:
=INDIRECT("n"&ROW())=123456
只有当我删除单元格中的公式并将结果本身作为数字时,这才有效。同样,该函数在粘贴到工作表单元格中时有效。
有没有办法在 Excel 内完成这项工作,或者条件格式功能的功能是否有限制?
如果您问:AND(1;1)
有效并使所有内容变黄,AND(INDIRECT("n"&ROW())=123456;1)
无效,用 OR
替换 AND
也无效。
分号是因为我在荷兰语区域。如果您使用的是英语语言环境,请将其替换为逗号。
您必须根据 xlR1C1 公式进行思考才能理解病死率。基于公式的 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 单元格。
不确定为什么这在 Conditional Formatting
中不起作用。但是您可以简单地将 AND
函数替换为 *
例如:
=(INDIRECT("l"&ROW())="completed")*(INDIRECT("m"&ROW())="duplicate")
我有以下功能来检查列 L
是否包含单词 "completed" 并且我使用 INDIRECT
能够使用条件格式为整行着色:
=INDIRECT("l"&ROW())="completed"
这个功能有效。但是,我需要扩展它,我也想使用基于额外单元格的条件格式,所以我尝试了这个:
=AND(INDIRECT("l"&ROW())="completed";INDIRECT("m"&ROW())="duplicate")
当我在 Excel 工作表中使用第二个函数时,它们会给出正确的 TRUE
或 FALSE
.
此外,我需要对单元格中公式的结果进行自定义格式设置。我尝试了以下方法:
=INDIRECT("n"&ROW())=123456
只有当我删除单元格中的公式并将结果本身作为数字时,这才有效。同样,该函数在粘贴到工作表单元格中时有效。
有没有办法在 Excel 内完成这项工作,或者条件格式功能的功能是否有限制?
如果您问:AND(1;1)
有效并使所有内容变黄,AND(INDIRECT("n"&ROW())=123456;1)
无效,用 OR
替换 AND
也无效。
分号是因为我在荷兰语区域。如果您使用的是英语语言环境,请将其替换为逗号。
您必须根据 xlR1C1 公式进行思考才能理解病死率。基于公式的 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 单元格。
不确定为什么这在 Conditional Formatting
中不起作用。但是您可以简单地将 AND
函数替换为 *
例如:
=(INDIRECT("l"&ROW())="completed")*(INDIRECT("m"&ROW())="duplicate")