VLOOKUP MATCH返回多个值

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 

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

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

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

上面的函数只返回ColumnB的值,只有ColumnA和ColumnC的第一个匹配。 任何想法如何我可以返回多个返回值的所有值,如上例所示,ColumnC包含具有CustNO 1的多个行。

您需要使用索引和小函数来提取第一,第二,第三…匹配值。

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

重要提示:在input此公式时,使用CTRL + SHIFT + ENTER使其成为数组公式。

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

我不知道你想在哪里显示结果,但是我build议你从列C中取出唯一的值,并将它们转置到一个新表的顶部,然后把查找公式放在每个值的下面,这样你有每个客户号码的电子邮件地址列表。