我正在使用工作正常的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函数移到帮助器列(并在公式的第一个版本中参考该帮助器列),它可以工作,但是不必依靠帮助器会更整齐。
我觉得我必须丢失一些明显的细节...
答案 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相等。