2017-02-15 343 views
1
ColumnA (All customers)  ColumnB (E-mail)  ColumnC (Specific customers) 

CustNO      MailAddress   CustNO 
1       [email protected]  2 
2       [email protected]  1 
          [email protected]  1 

我使用下面的函数返回ColumnB的值时ColumnA的值连续ColumnC的匹配:VLOOKUP匹配返回多个值

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

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

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

回答

2

您需要使用索引和小函数来提取1st,2nd ,3rd ...匹配值。

=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列中取出唯一值,并将它们转置到新工作表的顶部,然后将查找公式每个价值,所以你有一个每个客户号码的电子邮件地址列表。