VLOOKUP与返回多个值匹配

时间:2017-02-15 10:30:16

标签: excel function vlookup

ColumnA (All customers)     ColumnB (E-mail)     ColumnC (Specific customers)

CustNO                      MailAddress          CustNO
1                           test@test.com        2
2                           test2@test2.com      1
                            test3@test3.com      1

当ColumnA的值匹配ColumnC的行时,我使用以下函数返回ColumnB的值:

=VLOOKUP(C2;A2:A520;MATCH(B1;A1:C1))

问题是,ColumnC可以包含多个ColumnA值,如上例所示。

上述函数仅返回ColumnB的值,仅用于找到ColumnA和ColumnC的第一个匹配项。我知道如何返回多个返回值的所有值,如上例所示,ColumnC包含多个具有CustNO 1的行。

1 个答案:

答案 0 :(得分:2)

你需要使用索引和小函数来提取第1,第2,第3 ......匹配值。

=IFERROR(INDEX($A$2:$C$250,SMALL(IF(($A2:$A$250=$C$2),ROW($A$2:$A$250)-1),ROW(1:1)),2),"")

重要提示:输入此公式以使其成为数组公式时,请使用 CTRL + SHIFT + ENTER

请注意,此公式使用ROW(1:1)来提取第一个匹配项,这将更改为2:2,3:3等自动填充。

我不知道您要在哪里显示结果,但我建议您从C列中获取唯一值并将它们转置到新工作表的顶部,然后将查找公式放在每个下面值,这样您就可以获得每个客户编号的电子邮件地址列表。