解決英文字的搜尋:搜尋 app 而不是 apple 【Google 試算表 】

Excel 尋找字串常會使用 FINDSEARCH 函數。尋找較長的英文字或中文字比較沒問題,但是尋找較短的英文字,常會遇到明明要找的是 app 卻會連 apple 也會列入搜尋範圍。解決方法可以使用支援「規則運算式」(Regular Expression) 的 Google 試算表函數。


問題狀況

微軟文件提到「FIND 及 FINDB 會在某個文字字串內找到另一個文字字串,並傳回該文字字串在第一個文字字串中的起始位置。」如果搜尋中文關鍵字或英文關鍵字的長度夠長,搜尋結果比較沒問題。但是如果英文關鍵字長度較短,例如搜尋 app,則會發現回傳結果並不如預期只有 app。而會連 apple、misappropriate 等詞彙中間包含 app 的其他單字也會回傳。

解決方式

規則運算式」(Regular Expression,又稱正規表示式) 處理文字時,可以快速地搜尋或取代符合特定規則的字串。使用 REGEXMATCH 函數檢查「某段文字是否符合規則運算式」:

=REGEXMATCH(A1, “\bapp\b")
第一個參數輸入儲存格位置、

第二個參數輸入「規則運算式」語法,其中 \b 代表「單字邊界」(word boundary) 。「單字邊界」可以找出的完整英文單字可以在 (1) 句子開始處、(2) 句子結尾處、(3) 前或後是空白、(4) 前或後是非文字 (non-word) 的符號:指不是數字、底線符號 _ 、英文字,例如 . $ @ - 等符號、(5) 前或後是中文字間隔的單字。

word boundary


因為 REGEXMATCH 函數會區分大小寫,所以第二參數的「規則運算式」語法需要加上 (?i) 。完整語法修改為:

=REGEXMATCH(A1, "\b(?i)app\b")

參考資料

圖片素材



留言