OR,AND条件在INDEX和SMALL中

时间:2016-04-11 16:03:30

标签: excel

我有这个完美无缺的公式

   =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

为什么这不起作用?感谢

1 个答案:

答案 0 :(得分:1)

数组公式不喜欢ANDOR。分别用数学操作数*+替换它们:

=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,使用操作数应该返回正确的真值。