我有两列数据,上面有一百个名字,我需要找到匹配的。
问题是当第二列上的名称与第一列上的名称不完全相同时。很难用一百个名字来匹配它们。
Excel中是否有任何公式至少给予数据的公差,如“Setyadi”与“Setiadi”,或“Tak Jelan”与“Tak Lejan”。
谢谢你的解决方案,它的工作,我编辑了这个,因为我想问更多,
我还有一个问题,你能再帮我一次吗?我有一个这样的数据,我想用一个数字填充C列,根据D列中的名字与A列的匹配。另一个问题是,我想匹配的名字,只有在一个组中提到的E列,甚至不在同一行。
从
A | B | c | D | E |
Setyadi | 1 | | Setiadi | 11 |
Tak Jelan | 2 | | Tak Lejan | 11 |
Gordon | 3 | | Herik | 12 |
Alex | 4 | | Goerdon | 12 |
Heri | 5 | | Alex | 12 |
走进
A | B | c | D | E |
Setyadi | 1 | 1 | Setiadi | 11 |
Tak Jelan | 2 | 2 | Tak Lejan | 11 |
Gordon | 3 | 5 | Herik | 12 |
Alex | 4 | 3 | Goerdon | 12 |
Heri | 5 | 4 | Alex | 12 |
我需要的是,我们如何比较D列中提到的组中的名称,然后我们可以自动地在C列中给予与B列耦合的数字。
先谢谢你了
2条答案
按热度按时间fdbelqdn1#
你可以使用John Walkenbach的SOUNDEX()函数:
http://spreadsheetpage.com/index.php/tip/searching_using_soundex_codes/
然后将代码放入Excel:
http://www.contextures.com/xlvba01.html
如果你有这个数据:
现在你想在C1中添加一个公式,如:
=SOUNDEX(A1)
并将该公式复制到C2、D1和D2中。
现在看看你的数据:
请注意Setyadi和Setiadi是如何完全相同的,这是因为它们听起来一样,这就是为什么SOUNDEX函数的代码会像这样返回。
现在,当你看德杰兰条目时,你会发现有一个3的差异(从T245到T242)。现在,我要做的是创建一个新的公式,如果第一个字母是相同的,那么只提取数字,并比较它们的接近程度:
=IF(LEFT(C1,1)=LEFT(D1,1),STDEV.P(MID(C1,2,3),MID(D1,2,3)))
然后可以比较标准偏差。
ztyzrc3y2#
不幸的是,这个答案中的链接都不再起作用了。SOUNDEX函数的VBA代码可在此处找到:https://www.mrexcel.com/board/threads/vba-implementation-of-metaphone-algorithm.252698/