我正在向一个我使用了多年的电子表格添加一些功能,但似乎条件格式对空值和公式空白的行为不一致。请参阅下面的代码片段,然后是我迄今为止所做的检查。
案例 1:电子表格的旧部分按以前的方式工作:公式空白未被格式化
情况 2:电子表格的新部分,行为异常:空白和公式空白都被格式化,并且不同(如您所见,P44 是公式空白,P45 是用于故障排除的空白)
预期行动:电子表格中的两个位置都在检查某个值属于哪个“范围”,并且范围阈值在“移动限制”中定义。电子表格最初是在 Excel 2007(如果不是更旧的话)上制作的,但当我们升级到 2016 时,所有 CF 都重新制作了,这允许“通过公式引用其他工作表进行 CF”。
我到目前为止尝试过的事情:1. ABS() 在条件中包裹公式 - 没有区别 2. 将“CF 按公式”应用于多个单元格(您可能已经发现在案例 1 中突出显示的单元格是范围内的第一个,但在案例 2 中不是) - 这似乎按预期工作。因此,在上面的案例 2 中,如果我输入应该变为绿色/橙色/红色的值,它们就会变成绿色/橙色/红色。3. 手动/直接格式化:没有应用填充或文本颜色。两种情况下的数字格式都是“自定义 +#;-#;0”。4. 重新计算。保存、关闭并重新打开。5. 我正在比较的值 - 在这两种情况下,公式都会根据简单的正数进行检查,并且 0 应该显示绿色。6. Excel 版本 - 两种情况都在 Excel 2016 中的同一个 .xlsx 中。
主要问题:为什么在情况 1 中空白未被格式化,而在情况 2 中却被格式化?
我还能检查什么?我知道有一些变通方法可以得到我需要的结果,但我希望整个电子表格的行为与以前一样,以获得无缝的用户体验。空 P45 上的 CF 仅用于故障排除 - 最终产品不会在空的 CF 上,但我确实需要它在一些公式空白上,并且我希望它们不格式化。所以很明显我可以在顶部添加一个新规则,让空白不格式化,如果为真则停止,但这在过去并不是必要的。
答案1
例如,格式化单元格时A1
,您可以尝试
=OR(A1=0,ISBLANK(A1))
作为条件,这应该会为公式空白和空单元格提供相同的结果。我尝试使用 Excel 2010,我并不认为 Excel 2016 会有不同的表现。