iT邦幫忙

0

Excel模糊分析-想要對照"相似"的字眼來做資料比對要如何撰寫公式?

想要對照"相似"的字眼來做資料比對要如何做?
https://ithelp.ithome.com.tw/upload/images/20190531/20118033J3o3LJbExy.jpg
此為業務對照客戶
例如第二個台南市立安南醫院,在總表可能只顯示市立安南,在保保醫療器材行,總表只顯示保保醫療,如何以最相似廣泛的字眼找出對照的業務?
網路爬文使用LOOKUP(,-FIND還是無法全部囊括,另外INDEX(B:B,MATCH(,MMULT(-ISERR一直出現NA,懇請高手解答,感謝!

2 個回答

5
ccutmis
iT邦高手 4 級 ‧ 2019-05-31 19:41:55

1.開啟你在編輯的xlsx檔,
2.按[Alt]+[F11] (開啟VBA編輯器)
3.點主選單"插入"->"模組"
貼入下列源碼:

Public Function regGet(s, pString) '返回正則匹配\d[^_]*\d
Dim matchs, regex
Dim temp, N
Set regex = CreateObject("VBScript.RegExp")
With regex
.Global = True
.IgnoreCase = True
.Pattern = pString
Set matchs = .Execute(s)
End With
regGet = matchs(0).Value
Set regex = Nothing
Set matchs = Nothing
End Function

https://ithelp.ithome.com.tw/upload/images/20190531/20028574yRveqNXy8m.png

4.點主選單"檔案"->"儲存oooo.xlsx" 接著關閉VBA編輯器
5.回到你在編輯的xlsx檔作測試,先在A2欄位輸入"台南市安南醫院",
然後在B2欄位輸入 =regGet(A2,"安南")
這邊你會看到如果A2欄位有關鍵字"安南"它就會抓出來,
可以再試試在A3輸入"台南市中正醫院",
然後在B3欄位輸入 =regGet(A3,"安南")
這邊你會看到因為A3裡面沒有符合的字串包含在其中,輸出結果為#VALUE!
https://ithelp.ithome.com.tw/upload/images/20190531/20028574oa2JPIO8qE.png

參考資料來源
https://kknews.cc/zh-tw/tech/g2z2ryl.html

這個是利用正則運算式(Regular Expression)來達成樓主要的功能,希望有幫助。

Linlynn iT邦新手 5 級 ‧ 2019-06-02 12:57:38 檢舉

感謝專業的回答
我明日會試試看的
但是這樣看一下,這個方式是要針對字眼一個一個篩選麻?(用手打)像安南打安南,保保醫療打保保這樣,但我有200筆資料要比對....
是否有公式可以解決呢?
我在網路有找到比對的方式,問題是在拆解公式時好像有點理解錯誤導致一直n/a

Linlynn iT邦新手 5 級 ‧ 2019-06-02 13:00:49 檢舉

找到的方式是此網頁第三個拆解方式
https://kknews.cc/zh-tw/education/nqamg3.html
但是=INDEX(B:B,一直不知道這段的意思
可否協助解答,我會很感激地QAQ

ccutmis iT邦高手 4 級 ‧ 2019-06-03 09:36:59 檢舉

INDEX(B:B, 就是指B欄整列 這個其實簡單實驗就知了 例如下圖
https://ithelp.ithome.com.tw/upload/images/20190603/200285744OzlgvnHSr.png
我本身不太很熟悉EXCEL的VBA,上面給的例子只是網路上搜的^^"
如果不是一定要從EXCEL解的話,我會用Python讀EXCEL處理

3
paicheng0111
iT邦高手 1 級 ‧ 2019-05-31 22:03:11

建議參考這篇鐵人文章
https://ithelp.ithome.com.tw/articles/10156881

我要發表回答

立即登入回答