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
4.點主選單"檔案"->"儲存oooo.xlsx" 接著關閉VBA編輯器
5.回到你在編輯的xlsx檔作測試,先在A2欄位輸入"台南市安南醫院",
然後在B2欄位輸入 =regGet(A2,"安南")
這邊你會看到如果A2欄位有關鍵字"安南"它就會抓出來,
可以再試試在A3輸入"台南市中正醫院",
然後在B3欄位輸入 =regGet(A3,"安南")
這邊你會看到因為A3裡面沒有符合的字串包含在其中,輸出結果為#VALUE!
參考資料來源
https://kknews.cc/zh-tw/tech/g2z2ryl.html
這個是利用正則運算式(Regular Expression)來達成樓主要的功能,希望有幫助。
感謝專業的回答
我明日會試試看的
但是這樣看一下,這個方式是要針對字眼一個一個篩選麻?(用手打)像安南打安南,保保醫療打保保這樣,但我有200筆資料要比對....
是否有公式可以解決呢?
我在網路有找到比對的方式,問題是在拆解公式時好像有點理解錯誤導致一直n/a
找到的方式是此網頁第三個拆解方式
https://kknews.cc/zh-tw/education/nqamg3.html
但是=INDEX(B:B,一直不知道這段的意思
可否協助解答,我會很感激地QAQ
INDEX(B:B, 就是指B欄整列 這個其實簡單實驗就知了 例如下圖
我本身不太很熟悉EXCEL的VBA,上面給的例子只是網路上搜的^^"
如果不是一定要從EXCEL解的話,我會用Python讀EXCEL處理