或在条件格式公式中刹车条件给出意想不到的结果

OR in conditional formatting formula brakes condition giving unexpected outcome

我在条件格式公式中使用了 OR,结果非常意外。 举个简单的sheet:

现在使用公式添加条件格式:

=B4:G7=$A

它按预期工作,包含 "A"

的单元格具有真实值

现在试试另一个公式:

=OR(B4:G7=$A;FALSE)

意思应该基本一样。嗯..结果是非常不同的:

更令人困惑的是,例如,将单元格 I7 更改为 "a" 会影响结果:

这是我使用的精确公式,"LUB" 为 "OR","FAŁSZ" 为 "FALSE":

编辑: 我忘了忍受这个问题。问题是:为什么会发生?我如何在这种情况下正确使用 OR?

首先,您需要了解绝对和相对引用在条件格式中的工作原理。公式引用引用 applies to 范围内最左上角的单元格。如果公式有相对引用,那么对于每个 applies to 单元格,公式引用中的单元格会相应地移动,如果是绝对引用 - 那么引用不会改变。在您的例子中,公式 =B4:G7=$A 应用于单元格 B4、单元格 C4 - =C4:H7=$A、单元格 B5 - =B5:G8=$A,公式 =OR(B4:G7=$A;FALSE).

也会发生同样的事情

其次,公式 =B4:G7=$A=OR(B4:G7=$A;FALSE) 的工作方式完全不同。第一种情况实际上是将范围的第一个单元格与 $A 进行比较,即在前面的示例中 =B4=$A=C4=$AB5=$A。在第二种情况下,范围被划分为单元格,将它们与 $A 进行比较并将结果传递给 OR 函数,即 =OR(B4:G7=$A;FALSE) => =OR(B4=$A;C4=$A;D4=$A ... G7=$A;FALSE) 并且如果即使一个是 TRUE,那么你也会得到结果 TRUE.

因此,我们可以得出结论,在这种情况下,以下公式将适用于您:

=OR(B4=$A;FALSE)