识别不同版本的人名作为同一个人

我在电子表格的A列中为同一个人提供以下信息:

ALAN K HURTZ ALAN K HURTZ, ATTY ALAN K. HURTZ ALAN K. HURTZ, ATTY ALAN K. HURTZ, ATTY. ALAN HURTZ ALAN HURTZ NDER ALAN HURTZ ORPD ALAN HURTZ, ATTY ALAN HURTZ, ATTY. ALAN HURTZ, ESQ ALAN HURTZ, ESQ. ALAN P. HURTZ, ATTY. 

在另一个电子表格中,我有这一行:

 ABCDEF Hurtz Alan K. ALIAS 91065 1451894 

我需要能够添加到sheet1列B这个值: 1451894 (从sheet2列F)为每个logging。 我没有与VLOOKUP或MATCH运气。

有关如何比较这些值的任何build议?

这个挑战并不适用于Excel,部分原因是SEARCHFIND只能从左到右,只能find第一个实例。 然而,你不能希望从任何自动化的解决scheme中获得完美的结果,并且可能准备接受一个相对简单的不好的近似 – 也就是说,你select花费在编码上多less努力,而不是人类的评论。

首先,我build议从第二张表中创build一个带有first_name,initial,last_name和first_name,last_name的查找表,这两个表都指向ColumnF中的值。 在第一种情况下,您可能希望将“inc Initial”之类的内容连接到ColumnF值,以表示比较匹配而不是匹配的初始值。

那么我build议将第一张表的ColumnA复制到ColumnB中,并从ColumnB中删除ESQ(至less对于不启动ESQ的姓氏)。 在美国,大约有4万名姓“艾斯克”的人,但把它们作为一个单独的问题处理起来比放弃“忽略”方便之处更容易一些。

我build议在ColumnsC:N分别input以下内容(假设Row1是数据标签): =FIND(" ",B2) =IF(ISERROR(FIND(",",B2)),0,FIND(",",B2)) =LEFT(B2,C2) =IF(C2>0,MID(B2,C2+1,E2-C2+1),0) =LEFT(G2,1) =IF(ISERROR(FIND(" ",G2)),0,FIND(" ",G2)) =MID(G2,I2+1,E2-C2) =IF(ISERROR(FIND(",",J2)),IF(ISERROR(FIND(".",J2)),0,FIND(".",J2)),FIND(",",J2)) =IF(K2=0,J2,LEFT(J2,K2-1)) =IF(I2>0,F2&H2&" "&L2,F2&L2) =VLOOKUP(M2,array,2,FALSE)其中'array'是Sheet2中的Lookup表。

在你的样本中,应该给你8人的“比赛”,其中5人包括中前卫的比赛。 如果还不够好,那么就直接在右边的列中添加更多的公式,直到达到您的权衡点(例如,尽pipe您的第十三个示例是上述5个不匹配的之一,但是如果在单独的列中你没有把“P”连接起来,事实上它与另一列中的匹配表明它不像其他八个匹配那么接近)。 你可以像ESQ那样对ATTY进行处理,尽pipe在美国有超过10万个这样的姓氏的人。

或者,你可以提供一个赏金或尝试freelancer.com,我希望你可以find很多人开心一小笔提供的代码,不仅更有select性,但可能会给你一个'分数'来表明如何可能是任何“匹配”。