Excel单词匹配

时间:2015-06-12 11:05:50

标签: excel excel-vba vlookup vba

您好,我希望有人能帮到我。

我有一些非常不整洁的数据,我希望做一个VLOOKUP / INDEX MATCH类型的功能但没有运气,因为数据非常不整洁。

所以基本上我已经在一张表中列出了名单和网站。

然后是第二张工作表,其中只有一个名称列表,我想用其他工作表中的网站填充,以减少工作量。

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

因此工作表1将是

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

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

如果两者都应该与工作表1中的网站相同,那么有任何可行的方法可以做到这一点。我尝试过VLOOKUP和INDEX / MATCH并将条件设置为TRUE,但它没有返回好的结果。

提前感谢任何建议。

2 个答案:

答案 0 :(得分:1)

模糊匹配远非精确科学,特别是在内置Excel函数时。

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

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

答案 1 :(得分:1)

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