具有多个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 NameSurname列(例如“Tim Smith”,“Brad Johnson”等)中列出的每个人,我希望能够通过Name列进行search,对于包含First NameSurname的第一个单元格被search的人,并将结果输出到新列。

由于“ Name列中有许多中间名,名称和双pipe姓,我无法使用完全匹配search。 我需要search每个单元格的内容,看它们是否有任何匹配的子string。

我发现我可以使用带通配符的Vlookup基于First NameSurname列进行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 SmithSmith Tim ,那么该函数会给出列中最后一个结果)。

可以试试:

 =IFERROR(MATCH("*"&B2&"*"&C2,A:A,0),"") 

SO18771894的例子

其中结果编号是组件First Name和Surname匹配的行。

(不会涵盖所有可能性,尽pipe不太可能有自动化的方法来做到这一点,例如,当Tim Smith在场时,Timothy J Smithson会偏向Tim Smith,但会降低ColumnA的名单)。

配方自调整后的图像,因为最终的通配符可能比帮助更多的障碍。