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

Excel formula 如何在Excel上搜索以返回与单个值匹配的多个字段,excel-formula,Excel Formula,我在Excel中有一个表,其中有一个数据集,该数据集针对单个数据集具有多个值 我需要取出每个数据集的数据。我尝试过使用VLOOKUP,但是它只返回列表中的第一个。它不会返回与相同条件匹配的其他条件 这是我的数据集。可以看出,vlookup只返回与查询匹配的第一组数据。理想情况下,我需要它返回红色、黑色和白色以供John查询: 谢谢有人能在这方面给我一些帮助

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

我需要取出每个数据集的数据。我尝试过使用VLOOKUP,但是它只返回列表中的第一个。它不会返回与相同条件匹配的其他条件

这是我的数据集。可以看出,vlookup只返回与查询匹配的第一组数据。理想情况下,我需要它返回红色、黑色和白色以供John查询:


谢谢有人能在这方面给我一些帮助
=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键。

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

=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并向下拖动,它应该可以工作。

如果您不反对生成工作列,或填充名称的空格,那么以下解决方案应该适合您

第一步

为了使此解决方案有效,名称列表中不能有空格。这可以通过生成另一列中没有空格的列表并使用该信息来实现,或者可以复制该列并在第一列上粘贴值。在本例中,我在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))),"")

这里有一篇文章可以帮助回答您的问题!