Excel formula 数组式搜索函数中结果的怪异性

Excel formula 数组式搜索函数中结果的怪异性,excel-formula,Excel Formula,当我在excel 2013中放入一组公式时,如下所示: A1 = abc A2 = ac A3 = bc B1 = OR(TRUE) = TRUE B2 = OR(FALSE) = FALSE B3 = ISNUMBER(SEARCH({"a", "b"}, A1)) = TRUE B4 = ISNUMBER(SEARCH({"a", "b"}, A2)) = TRUE B5 = ISNUMBER(SEARCH({"a", "b"}, A3)) = FALSE 但是,如果我在公式中添加OR

当我在excel 2013中放入一组公式时,如下所示:

A1 = abc
A2 = ac
A3 = bc

B1 = OR(TRUE) = TRUE
B2 = OR(FALSE) = FALSE

B3 = ISNUMBER(SEARCH({"a", "b"}, A1)) = TRUE
B4 = ISNUMBER(SEARCH({"a", "b"}, A2)) = TRUE
B5 = ISNUMBER(SEARCH({"a", "b"}, A3)) = FALSE
但是,如果我在公式中添加OR函数:

C1 = OR(ISNUMBER(SEARCH({"a", "b"}, A1))) = TRUE
C2 = OR(ISNUMBER(SEARCH({"a", "b"}, A2))) = TRUE
C3 = OR(ISNUMBER(SEARCH({"a", "b"}, A3))) = TRUE
从逻辑上讲,单元格C3中的OR函数接收到的输入被认为是错误的(参见B5并将其与B2进行比较),但当它被认为是错误的时候,它却得到了正确的结果。我想知道为什么会这样?对此有何解释?2007年以后所有版本的excel都会出现这种情况吗

另一个有趣的事实是,如果我将B5中的结果作为OR函数的直接输入,如下所示:

C4 = OR(B5) = FALSE
结果是错误的,但它与C3的公式基本相同。为什么会出现这种不一致?是虫子吗

更新问题

根据下面的答案,OR函数是一个“数组友好”函数。那到底是什么意思?像我这样的初学者怎么知道excel中哪些函数是“数组友好型”的,哪些不是?有这样的清单吗


这是否意味着SEARCH和ISNUMBER函数不是“数组友好”的?但它接受“array”作为参数。我很困惑

可以接受多个参数,或计算数组中的所有项

ISNUMBER(SEARCH({“a”,“b”},A3))
在单个单元格中显示公式结果的上下文中返回单个值,但它在数组友好的上下文中返回一个数组,如inside
(但我不知道此功能的确切名称。)

或({FALSE,TRUE})
TRUE
,类似于
或(ISNUMBER(搜索(“a”,A3)),ISNUMBER(搜索(“b”,A3))


更改问题后更新:


所有的中间函数都必须是数组友好的,这样才能工作(我相信大多数函数都是,但我不知道有任何列表-您必须自己做一些研究,这不是付费支持)


单单元格输出不利于阵列。当一个结果是一个数组,例如
{TRUE,FALSE}
并且它显示在单个单元格中时,只有第一个值在单元格中可见


关于数组公式的更多信息,其中1个公式可以插入多个单元格:

您如何知道OR函数标记为数组友好型,是否有哪些函数是数组友好型的,哪些不是数组友好型的?我单击了fₓ 公式栏左侧的图标。当在内部或内部时,它将
ISNUMBER
的结果显示为一个数组。它应该出现在所有版本的Excel中(但我只是在2010年才尝试过,不能保证它在以前/将来的版本中没有更改)“所有的中间函数都必须是数组友好的,这样才能工作”您在本文中引用的中间函数是否包括ISNUMBER和SEARCH?“单单元格输出不支持数组。”只是想确认一下,这是不是解决了C4返回FALSE的部分原因?很抱歉,我没有写得像我脑海中听起来那么明显,但是如果
ISNUMBER(SEARCH())
返回一个数组,那么这两个函数都是数组友好的。。。否则他们不能返回数组“如果ISNUMBER(SEARCH())返回数组”让我澄清一下,你的意思是bcoz这个中间结果(我是指单元格C3,但在OR操作之前={FALSE,TRUE})是一个数组&它以完整的形式(作为数组)直接放入OR函数中&也是bcoz或accept数组,这就是为什么它能够考虑数组中的所有元素&能够产生这个结果(TRUE)。与此相反,在这种情况下,单元格C4采用非数组(B5=FALSE,即不是数组bcoz,结果首先作为单个单元格输出)作为输入值,从而导致结果为FALSE。我。。。弄错了?没有弄错……我觉得我的一些解释有点……不连贯,或者可能没有抓住我要说的全部内容。还有一些是无法解释的。我只是好奇,你对这句话的看法是什么:“像其他数组样式的公式一样,传递数组的部分必须包含在某种聚合函数中,以使它扫描整个数组——否则它只查看数组的第一个元素。因此,任何像COUNT、SUM、SUMPRODUCT这样的东西都可以做到。”