我想根据另外两列中的值使用 Excel 对特定列进行条件格式化。
- 我在 A、B、C 和 D 列中有值。
- A 列有文本值(用户输入的任何值)
- B 列有一个数字值(用户输入的任何值)
- C 列有一个从一组值中选择的文本值(使用下拉菜单进行数据验证):
Start
Intermediate
End
D 列定义为(x 代表任意行号)
=IF(Cx="End";"";Bx)
用户也可以删除 D 列中的公式,从而使其为空
当 D 为空并且用户未End
在 C 列中进行选择时,我希望 A 列中的值显示为红色。因此,只有当用户删除 D 中的公式时才会发生这种情况。
因此我想创建一个条件格式规则来解决这个问题。但是当我尝试编写条件公式时,它不起作用。
我尝试为条件格式规则指定此公式:
=NOT(OR(ISNUMBER(INDIRECT("D"&ROW()));INDIRECT("C"&ROW())="End"))
但它不起作用。
在这个公式中使用函数有什么限制吗?因为当我使用类似OR()
或AND()
似乎它只是停止工作,即使它们是返回的简单布尔函数TRUE/FALSE
......
答案1
基于这个超级用户问题我能够解决我的问题。
这是实际有效的解决方案。将公式替换为以下公式:
=NOT(OR(ISNUMBER($D1);$C1="End"))
它会起作用。行号将为每一行重新计算,但列是静态设置的,因此它们将引用正确的列。
更简单
但是如果我们考虑ISBLANK()
函数返回FALSE
单元格中存在公式的位置,我们可以仅使用这个公式进一步简化它:
=ISBLANK($D1)
答案2
这是一个更简单的公式,可以满足您的要求:
=OR($C1="结束",$D1="")
回答你关于限制的问题:你发布的公式似乎有几个问题
- 分号应为逗号
- INDIRECT() 在条件公式中存在问题,而且无论如何您都不需要使用它。
- 它似乎实际上并没有完全按照您所指定的方式执行?!