Google表格公式,返回其他列中适用多个条件的所有值

时间:2016-09-12 08:14:07

标签: google-sheets

我的问题,一般说明:

我需要一个公式,该公式返回特定列中的所有值,其中相应行的其他列中的多个条件适用。

我的问题,具体说明:

我想要一个公式,它返回A列中的所有值,其中C列为" John",E列为" Apples",G列为" Earth& #34;列H和I都是空的。有关虚拟数据问题的简化说明,请参阅here。拖放的正确公式将输出一个列表,其中包含值" 1"," 4"和" 14"。如果您想在链接的电子表格中试用一些内容,请随意在原始工作表的副本中执行此操作,以便其他人可以查看我的原始数据/公式。

到目前为止我尝试过的事情:

简单过滤不是一种选择,因为数据位于同一电子表格中的单独工作表上。我也知道VLOOKUP和INDEX / MATCH不能做我想要的 - VLOOKUP不能处理多个标准,而INDEX / MATCH的MATCH部分可以变成一个数组来指定多个标准,它只会返回所有条件都为真的第一个值,而我需要所有条件。

然后我尝试了以下公式(链接电子表格中的公式1):

=IFERROR(INDEX($A$2:$I, SMALL(IF(COUNTIF($K$2, $C$2:$C)*COUNTIF($K$3, $E$2:$E)*COUNTIF($K$4, $G$2:$G), ROW($A$2:$I)-MIN(ROW($A$2:$I))+1), ROW(A1)), COLUMN(A1)),"")

它像魅力一样,直到我想要包含H和I列都应该为空的条件。我尝试了这个,但由于某种原因,我不明白它没有用(链接电子表格中的公式2):

=IFERROR(INDEX($A$2:$I, SMALL(IF(COUNTIF($K$2, $C$2:$C)*COUNTIF($K$3, $E$2:$E)*COUNTIF($K$4, $G$2:$G)*COUNTIF($K$5, $H$2:$H)*COUNTIF($K$6, $I$2:$I), ROW($A$2:$I)-MIN(ROW($A$2:$I))+1), ROW(A1)), COLUMN(A1)),"")

然后我尝试将我的第一个公式嵌入IF / VLOOKUP(链接电子表格中的公式3):

=IFERROR(IF(VLOOKUP(INDEX($A$2:$I, SMALL(IF(COUNTIF($K$2, $C$2:$C)*COUNTIF($K$3, $E$2:$E)*COUNTIF($K$4, $G$2:$G), ROW($A$2:$I)-MIN(ROW($A$2:$I))+1), ROW(A1)), COLUMN(A1)),$A$2:I,8,FALSE)<>"","",INDEX($A$2:$I, SMALL(IF(COUNTIF($K$2, $C$2:$C)*COUNTIF($K$3, $E$2:$E)*COUNTIF($K$4, $G$2:$G), ROW($A$2:$I)-MIN(ROW($A$2:$I))+1), ROW(A1)), COLUMN(A1))),"")

如果我只要求列H为空,这有效,但是a)它非常笨重,b)它会在返回的列表中给出空白,这是我不想要的,并且c)我无法得到它使用OR来处理H和I列都需要为空的条件。

我被困的地方,我还没有找到一个好的解决方案。知道这个论坛,我确信有人有一个优雅的解决方案,我不够聪明,找不到:)

1 个答案:

答案 0 :(得分:0)

我正在打电话,因此格式化会受到影响。

在左侧创建一个新列,并将以下内容插入到单元格A2

    =if(D2="John", if(F2="Apples", if(H2="Earth", if(I2="", if(J2="", B2,""), "" ), "" ), "" ), "")