我有这个完美无缺的公式
=IFERROR(INDEX(Lista!$A$2:$A$250;SMALL(IF(Lista!$D$2:$D$250="A";ROW(Lista!$D$2:$D$250)-ROW(Lista!$D$1));ROW(1:1)));"")
但是当我想添加其他AND和OR条件时,我只得到一个错误的行,而不是确切的值。
这是我试过的:
=IFERROR(INDEX(Lista!$A$2:$A$250;SMALL(IF(OR(AND(Lista!$K$2:$K$250="x";Lista!$D$2:$D$250="A");AND(Lista!$K$2:$K$250="x";Lista!$D$2:$D$250="B"));ROW(Lista!$D$2:$D$250)-ROW(Lista!$D$1));ROW(1:1)));"")
我已完成CTRL + SHIFT + ENTER
。
为什么这不起作用?感谢
答案 0 :(得分:1)
数组公式不喜欢AND
和OR
。分别用数学操作数*
和+
替换它们:
=IFERROR(INDEX(Lista!$A$2:$A$250;SMALL(IF((((Lista!$K$2:$K$250="x")*(Lista!$D$2:$D$250="A"))+((Lista!$K$2:$K$250="x")*(Lista!$D$2:$D$250="B")));ROW(Lista!$D$2:$D$250)-ROW(Lista!$D$1));ROW(1:1)));"")
这仍然是数组公式,所以使用Ctrl-Shift-Enter来验证何时退出编辑模式。
这个想法是任何返回>0
的结果都是真的。事实上True/False
是一个布尔值,当在数学方程中使用时,它们可以分别返回1/0
,使用操作数应该返回正确的真值。