如何在Excel上搜索以返回与单个值匹配的多个字段

时间:2018-07-30 12:34:03

标签: excel-formula

我在Excel中有一个表,该表的数据集具有针对单个数据集的多个值。

我需要提取针对每个数据集的数据。我试过使用VLOOKUP,但是只返回列表中的第一个。它不会返回符合相同条件的其他条件。

这是我的数据集。可以看出,vlookup仅返回与查询匹配的第一组数据。理想情况下,我需要它为John的查询返回Red,Black和White:

enter image description here

对此表示赞赏,有人可以在此方面给我一些帮助!

3 个答案:

答案 0 :(得分:0)

尝试-您必须在空白单元格中填写匹配的名称。

=IF(ISERROR(INDEX($A$1:$B$8,SMALL(IF($A$1:$A$8=$F$2,ROW($A$1:$A$8)),ROW(1:1)),2)),"",INDEX($A$1:$B$8,SMALL(IF($A$1:$A$8=$F$2,ROW($A$1:$A$8)),ROW(1:1)),2))

请确保自动填写下面的行,并在输入公式时使用Ctrl-Shift-Enter。

答案 1 :(得分:0)

肯定有一种更优雅的方式,但这就是我想出的:

=IFERROR(IF(AND(ISBLANK(F2),G1=""),"",IF(OR(INDIRECT(CONCATENATE("A",MATCH(INDEX(B:B,MATCH($F$2,A:A)+ROW(1:1)-1),B:B)))="",INDIRECT(CONCATENATE("A",MATCH(INDEX(B:B,MATCH($F$2,A:A)+ROW(1:1)-1),B:B)))=$F$2),INDEX(B:B,MATCH($F$2,A:A)+ROW(1:1)-1),"")),"")

如果将其复制到G2并将其向下拖动,则应该可以。

答案 2 :(得分:0)

如果您不反对生成工作列,也不反对在名称中填写空格,那么以下解决方案应该对您有用。

STEP 1

为使该解决方案有效,名称列表中不能有空格。这可以通过生成一个在另一列中没有间隔的列表并使用该信息来实现,也可以复制该列并将值粘贴在第一列上。在此示例中,我在列D中创建了一个工作列表。在D2中,我放置了以下公式并根据需要向下复制:

=IF(A2="",D1,A2)

假定列表不以空白开头。

第2步

定义您要查找的内容。我使用E2输入要搜索的值(名称)。我使用以下公式F2并向下复制以获得结果。

=IFERROR(INDEX(B:B,AGGREGATE(15,6,ROW($D$2:$D$7)/($D$2:$D$7=$E$2),ROW(A1))),"")

POC