返回值的公式,其中一列中的第一个单词与另一列的最后四位匹配

Formula for returning value where first word in one column matches AND last four digits of another column does

所以,我有一个 excel sheet 包含 100.000 多个姓名、phone 号码和电子邮件以及另一个 sheet 包含姓名和 [= 的最后四位数字33=] 个数字,即

在sheet 1

A || B
Johnny Applesauce || xxxx1934
Jane Delaney Applesauce || xxxx3221

并在 sheet 2 ('full')

A || B || C || D
ID || Johnny Applesauce || 45191934 || johnny@applesauce.com
ID2 || David Useless || 48123221 || dave@example.com
ID3 || Jane Applesauce || 32193221 || jane@applesauce.com
(and 99,999+ other people)

我如何在 sheet 1 中创建一个公式,将其与 sheet 2 中的 'full' 人员列表进行比较,如果和 return 相应的电子邮件地址仅当

  1. 名字的第一个字相同
  2. phone号码后四位相同

我一直在尝试做类似 =INDEX(full.D:D6856;MATCH(RIGHT(B2;4)&LEFT(A2;FIND(" ";A2)-1);RIGHT(full.C:C6856;4)&LEFT(full.B:B6856;FIND(" ";full.B:B6856)-1);0)) 的事情,但我无法让它正常工作 - 我只得到一堆 #N/A 和 #VALUE!

如果您有多个匹配条件(由 & 分隔),则需要按 Ctrl-Shift-Enter。试试看是否有帮助。

在Excel中,使用Tables和structured references,可以return用这个公式(正常输入)匹配数据的emails

=INDEX(fullTable,AGGREGATE(14,6,(LEFT([@Name],4)=LEFT(fullTable[Name],4))*(RIGHT([@Phone],4)=RIGHT(fullTable[Phone],4))*ROW(fullTable),1)-ROW(fullTable[#Headers]),4)

fullTable 是 table 你在 sheet 2

按照它的写法,如果有多个匹配项,它将 return 最后一个匹配项。也可以写入return第一个匹配,甚至多个列的多个匹配。我把这些更改留给你。