在索引匹配中嵌入OR语句无效

时间:2018-10-04 01:20:31

标签: excel

我正在使用工作正常的Index-Match-Index公式(非数组)-直到我为其中一个条件嵌入OR语句。公式返回的结果与“或”项不存在的结果相同。

这很好用: = INDEX(rng1,MATCH(1,INDEX((A1 = rng2)(B1 = rng3)(C1 = rng4),0,1),0))

这不是: = INDEX(rng1,MATCH(1,INDEX((A1 = rng2)*(B1 = rng3)* OR(C1 = rng4,D1 = rng4),0,1),0))

如果我将OR函数移到帮助器列(并在公式的第一个版本中参考该帮助器列),它可以工作,但是不必依靠帮助器会更整齐。

我觉得我必须丢失一些明显的细节...

1 个答案:

答案 0 :(得分:0)

您需要使该公式成为数组公式,并且数组公式不喜欢OR运算符。使用其他方法模拟OR运算符。

作为数组公式,

=INDEX(rng1, MATCH(1, INDEX((A1=rng2)*(B1=rng3)*sign((C1=rng4)+(D1=rng4)), 0, 1), 0))

作为标准公式,

=INDEX(rng1, aggregate(15, 7, row(rng1)/((A1=rng2)*(B1=rng3)*sign((C1=rng4)+(D1=rng4))), 1))

您实际上不太可能需要SIGN函数,因为rng4可能不会同时等于C1和D1,但是很有可能C1和D1相等。