假设我们有以下数据......
A1:A3
a
b
c
B1
oboe
在这种情况下,SEARCH(A$1:A$3,B1) 返回以下值数组...
#VALUE!
2
#VALUE!
如果在单个单元格中输入公式,则只有该数组中的第一个值会传输到该单元格。所以,在这种情况下,#VALUE!将显示在单元格中。
但是,如果您选择三个单元格,然后输入公式,然后按 CTRL+SHIFT+ENTER 确认,则数组中的所有三个值都会传输到这些单元格。
但请注意,由于 A1:A3 是一个垂直范围的单元格,您需要选择一个垂直范围的单元格来返回这些值。例如,您可以选择 D1:D3,然后在选择这三个单元格的同时输入公式,然后按 CTRL+SHIFT+ENTER 确认。
现在,对于有趣的部分。要返回 TRUE 或 FALSE,您需要首先将 SEARCH 返回的值数组传递给 ISNUMBER,然后您需要将 ISNUMBER 返回的值数组传递给 OR 函数,如果ISNUMBER 返回的值中至少有一个为 TRUE。否则,它返回 FALSE。因此,您将使用以下公式,需要使用 CTRL+SHIFT+ENTER 确认...
=OR(ISNUMBER(SEARCH(A$1:A$3,B1)))
这是公式的评估方式...
=OR(ISNUMBER(SEARCH(A$1:A$3,B1)))
=OR(ISNUMBER(SEARCH({"a";"b";"c"},"oboe")))
=OR(ISNUMBER({#VALUE!;2;#VALUE!}))
=OR({FALSE;TRUE;FALSE})
...返回 TRUE。顺便说一下,这里需要ISNUMBER。我们不能简单地将 SEARCH 返回的值数组传递给 OR 函数。如果我们这样做了,OR 函数将返回 #VALUE!,因为值数组包含错误值,在本例中为 #VALUE!。这就是我们使用 ISNUMBER 的原因,以便在将任何错误值传递给 OR 函数之前将其转换为 FALSE。所以 OR 函数总是会得到一个由 TRUE 和/或 FALSE 组成的值数组。
希望这可以帮助!