使用AND,OR的Excel嵌套索引公式

时间:2017-10-27 18:24:17

标签: excel-formula

我遇到了嵌套INDEX公式的Excel问题。我正在尝试在Excel中创建一个公式,以搜索特定的单词'在列中,并返回另一列中的值。我需要添加ORAND运算符,以便公式在多个单元格中搜索单词并将值返回到另一个单元格。

这是我目前使用的公式:

=IFERROR(INDEX(Servers!$A:$F,SMALL(IF(Servers!$D:$D="FAIL",ROW(Servers!$B:$B)),ROW(1:1)),2,1),"")

1 个答案:

答案 0 :(得分:0)

以下非CSE公式适合您:

=IFERROR(INDEX(Servers!$A:$F,AGGREGATE(15,6,ROW($B:$B)/(Servers!$D:$D="Fail"),1),3),"")

这是基于你的公式。它分解如下:

IFERROR(Formula Result, Result if formula is an error)

对于我们的公式,我们使用索引来覆盖二维范围A:F,所以我们正在寻找类似以下内容:

INDEX(Lookup Range, range row number, range column number)

为了确定感兴趣的行号,我们使用AGGREGATE。当使用公式14和15时,AGGREGATE执行数组计算而不是数组。第二个参数可以设置为6,这将告诉它忽略产生错误的结果。第三个参数是条件检查的位置,第四个参数告诉需要返回哪个排序结果。

所以AGGREGATE的公式如下所示:

AGGREGATE(Small, ignore errors, row number being evaluate/(condition check1 that is true or false * condition check2 + condition check3), nth smallest row number to return)

在我们的案例中看起来更像是:

=AGGREGATE(15,6,ROW($B:$B)/(Servers!$D:$D="Fail"),row(a1))

15告诉它将结果列表从最小到最大排序 6告诉它忽略所有错误 ROW($ B:$ B)告诉它确定它正在处理的行 !服务器$ d:$ d ="失败"是一个布尔检查,它将返回true或false。当通过excel中的数学运算发送true或false时,它们将分别转换为1和0。这意味着任何不符合条件检查的分母将成为除以0的情况,这将产生一个错误,而聚合将反过来忽略。这意味着聚合将生成一个行号列表,这些行号仅与您在分母中放置的条件相匹配。在旁注中,*表现为AND,+表现为OR。

行(A1)的作用类似于计数器,并在您输入公式的单元格中计算为1。当您复制公式时,A1将变为A2然后是A3,依此类推。复制时,每行的结果将增加1。因此,输入公式的第一个位置将给出符合条件的最小行号。第二行将给出符合条件的第二行,依此类推。如果您复制的结果超出了符合条件的结果,则会显示一个错误,可由IFERROR函数处理

现在我无法想象我们是A:F中哪一列你想得到的结果。我从C列开始假设你想要的,所以我把3列用于列号,因为它是A:F范围内的第三列。如果您的范围是B:F并且您想要C列,我会使用2,因为C是您范围内的第二列。