2015-06-12 191 views
0

嗨,我希望有人在这里可以帮助我。Excel词匹配

我有一些漂亮的不整洁的数据,我期待做一个VLOOKUP/INDEX MATCH功能,但没有运气,因为数据是相当凌乱的。

所以基本上我有一张名单和有一个表中的网站。

然后第二张纸上只有一张我想用另一张纸上的网站填充的名称以减少工作量。

问题是没有以正确的格式输入公司名称(即使用缩写的公司空间代替。)。另一个例子是当公司有多个分支时。

因此,工作表1是

公司名称:公司
网站:www.company.com

工作表2是: 公司名称:公司(英国) 公司名称:公司(USA )

如果两个网站都应该有与工作表1中相同的网站,那么可以采用任何可能的方式来完成此操作。我尝试过VLOOKUP和INDEX/MATCH,并将条件设置为TRUE,但不会返回良好的结果。

在此先感谢您的任何建议。

回答

1

模糊匹配远不是一门精确的科学,尤其是涉及到内置的Excel函数。

如果我要推荐最安全的赌注 - 我会说在表2中创建一个de-duped值的列表,并为表单1创建一个匹配的查找值。这肯定是最准确的(但耗时且取决于您将使用这些值的次数)

或者,可以使用各种来源的“模糊匹配”。其中一个着名的是'Jaro Winkler距离':其中的一个版本可以在这个链接中找到:http://garonfolo.dk/herbert/2013/07/excel-vba-jaro-winkler-distance-fuzzy-matching/

1

没有看到数据,这是不可能肯定的说,但这里有一些选项。
1.您可以使用MATCH("*Company*",Sheets1!A:A,0)
2.如果总是有相同的模式,可以使用LEFT,RIGHT和MID创建一个帮助列来提取公司名称。
3. VBA为正则表达式提供了一些支持,使用Set reg = CreateObject("VBScript.RegExp")如果你知道如何使用正则表达式,你可以编写一个宏来匹配它。