2015-06-12 155 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")如果你知道如何使用正則表達式,你可以編寫一個宏來匹配它。