Excel 识别不同版本的人’;同一个人的名字

Excel 识别不同版本的人’;同一个人的名字,excel,excel-formula,string-matching,Excel,Excel Formula,String Matching,我在电子表格的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. 在另一个电子表格

我在电子表格的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.
在另一个电子表格中,我有这一行:

A           B         C         D       E        F

Hurtz       Alan      K.        ALIAS   91065    1451894
我需要能够将此值添加到表1的B列:
1451894
(表2的F列) 对于每个记录。我在VLOOKUP或比赛中没有任何运气


关于如何比较这些值有什么建议吗?

此挑战不适用于Excel,部分原因是
SEARCH
FIND
只能从左到右工作,并且只能找到第一个实例。然而,你不可能希望从任何自动化的解决方案中得到完美的结果,你可能会准备接受一个相对简单的近似值——也就是说,你在编码上花费多少精力,而不是人工审查,这是你的选择

首先,我建议从第二张工作表创建一个查找表,其中first_name、initial、last_name和first_name、last_name都指向ColumnF中的值。在第一种情况下,您可能希望将类似“inc Initial”的内容连接到ColumnF值,以指示比不匹配Initial更接近的匹配

然后我建议将第一篇文章的ColumnA复制到ColumnB中,并从ColumnB中删除ESQ(至少对于不以ESQ开头的姓氏是这样)。在美国,大约有40000人的姓氏以“Esq”开头,但将其作为一个单独的问题来处理可能比放弃“忽视”绅士的便利更容易

我建议在列C:N中分别输入以下内容(假设第1行是一个数据标签):
=FIND(“,B2)
=IF(iError(FIND(“,”,B2)),0,FIND(“,”,B2))
=LEN(B2)
=LEFT(B2,C2)
=IF(C2>0,MID(B2,C2+1,E2-C2+1),0)
=LEFT(G2>
=IF(iError,G2,G2))
=IF(iError,G2,FIND(“,G2))
=MID(G2,I2+1,E2-C2)
=IF(iError(FIND(“,”,J2)),IF(iError(FIND(“,”,J2)),0,FIND(“,”,J2)),FIND(,”,J2))
=IF(K2=0,J2,LEFT(J2,K2-1))
=IF(I2>0,F2和L2,F2和L2,F2和L2)
=VLOOKUP(M2,数组,数组中的代码是表2)
>

在你的13个样本中,应该有8个“匹配”,其中5个包括中间首字母的匹配。如果不够好,那么继续在右边的列中添加更多公式,直到达到折衷点(例如,尽管您的第13个示例是上述5个不匹配的示例之一,但如果在单独的列中您没有将“P”连接起来,那么就可以了——事实上,它在其他列中匹配了一个符号,表明它与其他8个列的匹配程度不一样).你可以像对待ESQ一样对待ATTY,尽管在美国有超过100000人使用这个姓氏


或者,你可以提供一笔奖金,或者试试freegorer.com,在那里我希望你能找到很多人愿意花一小笔钱来提供代码,这些代码不仅会更有选择性,而且可能会给你一个“分数”,以表明任何“匹配”的可能性。

这个挑战不适合Excel,部分原因是
搜索
FIND
只能从左到右工作,并且只能定位第一个实例。但是,您不能希望从任何自动解决方案中获得完美的结果,并且可能准备接受一个相对简单的近似值,即您可以选择在编码上花费多少精力,而不是人工检查

首先,我建议从第二张工作表创建一个查找表,其中first_name、initial、last_name和first_name、last_name都指向ColumnF中的值。在第一种情况下,您可能希望将类似“inc initial”的内容连接到ColumnF值,以指示比不匹配initial更接近的匹配

然后,我建议将你的第一篇文章的ColumnA复制到ColumnB中,并从ColumnB中删除ESQ(至少对于不以ESQ开头的姓氏!)。在美国,大约有40000人的姓氏以“ESQ”开头,但将其作为一个单独的问题来处理可能比放弃能够“忽略”绅士的便利更容易

我建议在列C:N中分别输入以下内容(假设第1行是一个数据标签):
=FIND(“,B2)
=IF(iError(FIND(“,”,B2)),0,FIND(“,”,B2))
=LEN(B2)
=LEFT(B2,C2)
=IF(C2>0,MID(B2,C2+1,E2-C2+1),0)
=LEFT(G2>
=IF(iError,G2,G2))
=IF(iError,G2,FIND(“,G2))
=MID(G2,I2+1,E2-C2)
=IF(iError(FIND(“,”,J2)),IF(iError(FIND(“,”,J2)),0,FIND(“,”,J2)),FIND(,”,J2))
=IF(K2=0,J2,LEFT(J2,K2-1))
=IF(I2>0,F2和L2,F2和L2,F2和L2)
=VLOOKUP(M2,数组,数组中的代码是表2)
>

在你的13个样本中,应该有8个“匹配”,其中5个包括中间首字母的匹配。如果不够好,那么继续在右边的列中添加更多公式,直到达到你的折衷点(例如,尽管您的第13个示例是上述5个不匹配的示例之一,但如果在单独的列中您没有将“P”连接起来,那么就可以了——事实上,它在其他列中匹配了一个符号,表明它与其他8个列的匹配程度不一样).你可以像对待ESQ一样对待ATTY,尽管在美国有超过100000人使用这个姓氏


或者,你可以提供一笔赏金,或者尝试自由职业者网站,我希望在那里你能找到很多人愿意花一小笔钱来提供代码,这些代码不仅更具选择性,而且可能会给你一个“分数”,表明任何“匹配”的可能性有多大。

艾伦·p·赫茨和艾伦·k·赫茨如何相同?什么数据清理技术您尝试过什么?(例如,从第1页A列提取“姓氏-姓氏”格式?)现在我们知道alan是一名律师,这在任何应用程序中都不是一项简单的任务,尤其是在