Excel: 为什么这个条件格式公式不起作用?
Excel: Why is this conditional formatting formula not working?
我有一个 Excel 电子表格(不要问),其中有一个 4x6 table headers 第 1 天 ,第 2 天、第 3 天,以及总计。但是,公式会根据日期更改 Total 的位置,因此在任何时候 Day 3 都可以删除并替换为 总计 如果日期检测到我们只到 第 2 天,那么我们不需要为 显示 headers第 3 天 了。
我想使用条件格式以某种方式为 Total 下的所有内容设置样式,所以我为选项 Use a formula to determine which cells 写了这个公式格式:
=IF(INDIRECT(CONCATENATE(CHAR(COLUMN()+64), 1)) = "Total", TRUE, FALSE)
这应该格式化其列第一行中的单元格等于 "Total" 的任何单元格。但是,它根本就不会设置任何样式!
为了进行故障排除,我尝试只选择一列(即 C)并对其应用规则的修改形式:
=IF(INDIRECT(CONCATENATE("C", 1)) = "Total", TRUE, FALSE)
...成功了!然后,我尝试将第一个公式简单地放入一个单元格中,它正确显示 TRUE 和 FALSE 。一切似乎都有效,但出于某种原因,我无法弄清楚条件格式永远不会适用。
谁能解释一下为什么?
PS 在问题中我写了一个简化的例子,在真实的情况下我有 31 天而不是 3 天,所以单独浏览每一列会很麻烦
好的...我自己解决了这个问题。事实证明我的公式是完全正确的,但出于某种奇怪的原因它不喜欢 IF 语句;我将其替换为:
INDIRECT(CONCATENATE(CHAR(COLUMN()+64), 1)) = "Total"
而且效果很好!
不过,如果有人能解释一下为什么会这样(以供日后参考),我将不胜感激
INDIRECT(CONCATENATE(CHAR(COLUMN()+64), 1))
可能是我能想到的最糟糕的引用第一行和同一列中的单元格的方法。
而不是这个:
INDIRECT(CONCATENATE(CHAR(COLUMN()+64), 1)) = "Total"
试试这个(例如,对于 A
列中的条件格式规则,并在您需要的任何其他地方应用该规则):
A = "Total"
这两个公式的效果是一样的
我有一个 Excel 电子表格(不要问),其中有一个 4x6 table headers 第 1 天 ,第 2 天、第 3 天,以及总计。但是,公式会根据日期更改 Total 的位置,因此在任何时候 Day 3 都可以删除并替换为 总计 如果日期检测到我们只到 第 2 天,那么我们不需要为 显示 headers第 3 天 了。
我想使用条件格式以某种方式为 Total 下的所有内容设置样式,所以我为选项 Use a formula to determine which cells 写了这个公式格式:
=IF(INDIRECT(CONCATENATE(CHAR(COLUMN()+64), 1)) = "Total", TRUE, FALSE)
这应该格式化其列第一行中的单元格等于 "Total" 的任何单元格。但是,它根本就不会设置任何样式!
为了进行故障排除,我尝试只选择一列(即 C)并对其应用规则的修改形式:
=IF(INDIRECT(CONCATENATE("C", 1)) = "Total", TRUE, FALSE)
...成功了!然后,我尝试将第一个公式简单地放入一个单元格中,它正确显示 TRUE 和 FALSE 。一切似乎都有效,但出于某种原因,我无法弄清楚条件格式永远不会适用。
谁能解释一下为什么?
PS 在问题中我写了一个简化的例子,在真实的情况下我有 31 天而不是 3 天,所以单独浏览每一列会很麻烦
好的...我自己解决了这个问题。事实证明我的公式是完全正确的,但出于某种奇怪的原因它不喜欢 IF 语句;我将其替换为:
INDIRECT(CONCATENATE(CHAR(COLUMN()+64), 1)) = "Total"
而且效果很好!
不过,如果有人能解释一下为什么会这样(以供日后参考),我将不胜感激
INDIRECT(CONCATENATE(CHAR(COLUMN()+64), 1))
可能是我能想到的最糟糕的引用第一行和同一列中的单元格的方法。
而不是这个:
INDIRECT(CONCATENATE(CHAR(COLUMN()+64), 1)) = "Total"
试试这个(例如,对于 A
列中的条件格式规则,并在您需要的任何其他地方应用该规则):
A = "Total"
这两个公式的效果是一样的