Excel021-有模糊查找功能的函數SEARCH

  ▲本期分享技能請觀看

Excel021-有模糊查找功能的函數SEARCH

上一次分享的FIND函數你學會怎麼靈活運用了麼?可惜FIND函數有自身的局限性,那就是無法支持通配符模糊查找,不用擔心,今天就給大家介紹一個支持模糊查找的函數SEARCH。讓我們看看SEARCH這個函數如何幫助我們解決日常生活中的難題。

首先來看看函數解析,3個參數:SEARCH(find_text,within_text,[start_num])

① find_text:要找什麼?

② within_text:在哪找?

③ start_num:從哪開始找?

還有一個與SEARCH相似的函數SEARCHB,參數跟SEARCH相同,第1個參數是按字節查找。區別只有在查找內容有漢字的情況下才會顯現。通常一個漢字代表兩個字節,一個英文字母或者數字代表一個字節。

對於SEARCH 函數,以下關鍵的幾點我們要了解:

① SEARCH和SEARCHB 支持通配符「?」,「*」的使用。

② 如果查找「?」,「*」本身,要在前面加個「~」。

③ SEARCH 和SEARCHB不區分大小寫。

Excel021-有模糊查找功能的函數SEARCH

讓我們通過實際案例來看看如何靈活使用SEARCH 函數吧。

案例1:判斷電話號碼是否是以189開頭第7位為6末尾為1。

Excel021-有模糊查找功能的函數SEARCH

要求看似很複雜,如果用FIND函數真的很難做到,可是用SEARCH就可以輕而易舉的完成。具體方法如下:

① 在J2單元格錄入公式:=IF(ISERROR((SEARCH(”189???6???1”,I2))),”NO”,”YES”)

② 下拉填充公式。

公式解析:

① 「?」代表單個任意字符。我們按照要求,構建一個符合要求的電話號碼「189???6???1」,這個號碼以189開頭,第7為是6,末尾是1。「?」要在英文輸入法的狀態下錄入。

② SEARCH(”189???6???1”,I2)用來表示在I2單元格中查找我們構建的電話號碼。如果能夠查找到會顯示1,如果查找不到,會顯示#VALUE!。

③ IF(ISERROR((SEARCH(”189???6???1”,I2))),”NO”,”YES”)用來將錯誤值#VALUE!顯示成NO,1顯示成YES。

案例2:從所列地址中提取門牌號。

Excel021-有模糊查找功能的函數SEARCH

這個案例讓很多小夥伴頭疼不已,因為數字的長度和位置都是不確定的,我們用SEARCHB函數可以很簡單的做到數字提取,快來看看怎麼操作吧!具體操作如下:

① 在E2單元格錄入公式:=MAX(IFERROR(–MIDB(A2,SEARCHB(”?”,A2),ROW($1:$5)),0))

② 下拉填充公式。

公式解析:

① SEARCHB(”?”,A2)用來表示在A2單元格中查找任意單字節。這種情況只能找到英文或者是數字,對於漢字會忽略,所以我們此處可以找到A2單元格中2的位置為第25個字節。

② ROW($1:$5)用來構建一個數組,結果為{1,2,3,4,5}作為MIDB函數的第三參數,用來表示提取文本長度為1個字節,2個字節……5個字節,由於門牌號基本不會超過5個數字,所以我們只構建了5個數組元素。

③ MIDB(A2,SEARCHB(”?”,A2),ROW($1:$5))用來提取地址中從第25個字節開始的長度為1個字節,2個字節……5個字節的文本字符串。結果如下:{”2”;”23”;”23 ”;”23號”;”23號”}。

④ — 符號用來將數字文本數字化,數字文本會顯示成數字,文本會顯示為#VALUE!。結果如下:{2;23;23;#VALUE!;#VALUE!}

⑤ IFERROR為容錯函數,將#VALUE!轉換成0。結果如下:{2;23;23;0;0}

⑥ MAX 用來求數組中的最大值。

今天的內容就分享到這裡,非常感謝大家一直以來對布衣公子的關注和支持!如果您有任何PPT和Excel技能方面的問題,您可以給公子留言,有可能您的問題就會在下一個影片中出現!