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的行。
答案 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列中获取唯一值并将它们转置到新工作表的顶部,然后将查找公式放在每个下面值,这样您就可以获得每个客户编号的电子邮件地址列表。