具有多个search条件的非精确的Vlookup – Microsoft Excel
我有一个问题,从Excel表中提取一些date。 数据格式如下图所示:
Name---------------------------First Name------------------- Surname Billy Peter Hunt---------------Tim---------------------------Smith Chris Paul Smith---------------Brad--------------------------Johnson Dave Colin Jones---------------Karen-------------------------Perry Dr James Clyde Watt------------Dave--------------------------Jones John Phil Cross----------------Chris-------------------------Smith Kelly Holmes-------------------Hector------------------------Baxter Norman Bryce-West--------------Billy-------------------------Hunt
对于在First Name
和Surname
列(例如“Tim Smith”,“Brad Johnson”等)中列出的每个人,我希望能够通过Name
列进行search,对于包含First Name
和Surname
的第一个单元格被search的人,并将结果输出到新列。
由于“ Name
列中有许多中间名,名称和双pipe姓,我无法使用完全匹配search。 我需要search每个单元格的内容,看它们是否有任何匹配的子string。
我发现我可以使用带通配符的Vlookup
基于First Name
或Surname
列进行search,但我无法弄清楚如何将两个列同时用作search条件。
任何帮助,将不胜感激。 我一直在谷歌里input各种各样的咕噜声,无济于事。
你可以试试这个数组函数:
=INDEX(A$2:A$100,MATCH(9^99,SEARCH(B2,A$2:A$100)*SEARCH(C2,A$2:A$100)))
这将与Ctrl + Shift + Enter一起使用,但不能单独使用Enter 。
根据您所拥有的行数将100
更改为任意数字(或将A$2:A$100
更改为A:A
即可获得整列,但可能会变慢)。
请注意,如果有几个名字中包含相同名字和姓氏的人(例如Tim Smith
和Smith Tim
,那么该函数会给出列中最后一个结果)。
可以试试:
=IFERROR(MATCH("*"&B2&"*"&C2,A:A,0),"")
其中结果编号是组件First Name和Surname匹配的行。
(不会涵盖所有可能性,尽pipe不太可能有自动化的方法来做到这一点,例如,当Tim Smith在场时,Timothy J Smithson会偏向Tim Smith,但会降低ColumnA的名单)。
配方自调整后的图像,因为最终的通配符可能比帮助更多的障碍。