文字處理基礎函式(三):FIND / SEARCH

更新於 2024/05/19閱讀時間約 9 分鐘

接著介紹可以尋找文字的函式:FINDSEARCH這兩個函式都會回傳指定文字第一次出現的位置,而這位置會以數字表示。

舉例,我想要找「喜特先生」這四個字是否出現在下方的文字裡:

想學習更多 Google 試算表的知識,歡迎來看喜特先生的沙龍!​

我就可以寫:

=FIND("喜特先生", "想學習更多 Google 試算表的知識,歡迎來看喜特先生的沙龍!​")

或是:

=SEARCH("喜特先生", "想學習更多 Google 試算表的知識,歡迎來看喜特先生的沙龍!​")

這兩者的結果都會回傳「25」,代表 FINDSEARCH 都找到了「喜特先生」,告訴你它出現在第 25 個字元。


FIND 跟 SEARCH 差在哪?

FINDSEARCH 的關鍵差異就在「區分字母大小寫與否」,FIND 區分、SEARCH 則不區分。

舉例來說,我想在下方這串字裡用 FINDSEARCH 找到「mr. sheet」:

Google Sheets Tutorial: Mr. Sheet

因為 FIND 會區分大小寫,以 FIND 找「mr. sheet」是否在上面的字串中會顯示錯誤,對 FIND 來說「mr. sheet」跟「Mr. Sheet」不同,有大小寫的差異

不過用 SEARCH 的話就找得到了,因為對 SEARCH 來說「mr. sheet」跟「Mr. Sheet」是一樣的,沒有大小寫的差異

當然,如果你要搜尋的字元是中文字、或是沒有大小寫差異的文字,選 FINDSEARCH 的結果都是一樣的喔。


另外開頭還提到「回傳指定文字第一次出現的位置」,這又是什麼意思?再看一個案例:

想學習更多 Google 試算表的知識,歡迎來看喜特先生的沙龍!​歡迎歡迎喔!

我想用 FIND 找「歡迎」這個字,結果出現「21」:

raw-image


這邊「21」指的是第一個「歡迎」位於第 21 個字元,但它還有兩個「歡迎」,而 FIND 沒有把它列入、用 SEARCH 函式也會是一樣的結果。那要讓 FINDSEARCH 找第二個「歡迎」在哪,又該怎麼做呢?還有什麼其他要注意的地方嗎?

接下來會說明 FINDSEARCH 的使用方法和一些例子,一起來看看吧!




FIND:找字串,區分大小寫

FIND 函式用來尋找某字串中,特定文字第一次出現的位置,會區分大小寫


語法

=FIND(要找的特定字串, 要找的文字, [從第 N 個字元開始找])
  • 要找的特定字串:這邊別忘了加上雙引號,代表「文字」的資料格式。
  • 要找的文字:這邊也要加上雙引號喔!
  • [從第 N 個字元開始找]:選填,可以設定 FIND 要從第 N 個字元開始找,預設是 1。

如果 FIND 沒找到關鍵字,就會回傳「#VALUE!」錯誤。

這邊提一下剛剛「Google Sheets Tutorial: Mr. Sheet」的例子,帶你了解 FIND 實際區分大小寫的狀況如何。

raw-image


這邊我想找 A2 是否含有「mr. sheet」這個詞,我就可以在 B2 寫:

=FIND("mr. sheet", A2)


結果顯示「#VALUE!」:

raw-image


這是因為以 FIND 找「mr. sheet」是否在上面的字串中就會顯示錯誤,因為對 FIND 來說「mr. sheet」跟「Mr. Sheet」不同,有大小寫的差異。




SEARCH:找字串,忽略大小寫

SEARCH 函式跟 FIND 函式一樣,可以讓在 Google 試算表中用來尋找某字串中,特定文字第一次出現的位置,但是不會區分大小寫


語法

=SEARCH(要找的特定字串, 要找的文字, [從第 N 個字元開始找])
  • 要找的特定字串:這邊別忘了加上雙引號,代表「文字」的資料格式。
  • 要找的文字:這邊也要加上雙引號喔!
  • [從第 N 個字元開始找]:選填,可以設定 SEARCH 要從第 N 個字元開始找,預設是 1。

如果 SEARCH 沒找到關鍵字,就會回傳「#VALUE!」錯誤。

沒錯,SEARCH 的語法跟 FIND 一樣!但因為它不會區分大小寫,SEARCH 的容錯程度比 FIND 高一點。




FIND 和 SEARCH 的應用場景

這邊會舉一些 FINDSEARCH 常用狀況!(不考慮大小寫的狀況,我都一律寫 FIND 唷)


檢查文字中是否包含特定字串

假如說我想要找一個清單裡,有沒有「茶」這個字:

raw-image


我就可以在 B2 這寫 FIND,先從 A2 找是否有「茶」這個字:

=FIND("茶", A2)
raw-image


這邊回傳了「4」,代表「茶」出現在 A2 的第 4 個字元。

我們這邊可以再搭配 IFISERROR,讓它回傳「否」跟「是」:

=IF(ISERROR(FIND("茶", A2)), "否", "是")

這邊的意思是,如果 FIND 的結果發生錯誤(也就是找不到的狀況下),就會回傳「否」,不然就回傳「是」。來看看結果:

資料來源:萬波島嶼紅茶專門店

資料來源:萬波島嶼紅茶專門店


然後把這個算式拉下來就完成了!

資料來源:萬波島嶼紅茶專門店

資料來源:萬波島嶼紅茶專門店




找第二個關鍵字在哪

我們來回顧一下開頭提到的「找第二個歡迎」:

raw-image


這邊試著找找看第二個「歡迎」在哪邊吧!

先用 FIND 找第一個「歡迎」在哪:

=FIND("歡迎", A2)
raw-image


結果出現「21」,是第一個「歡迎」的位置。

這裡就可以用 FINDSEARCH 的第三個參數,讓它們從指定位置開始往後找第二個「歡迎」。現在已經知道第一個「歡迎」在第 21 個字元,那麼只要讓 FIND 在第 22 個字元後找就行了!

所以我修改了一下這邊的算式:

=FIND("歡迎", A2, FIND("歡迎", A2) + 1)

這邊的第三個參數就再用 FIND 找一次、讓它回傳第一個「歡迎」的結果後,再加 1 就是了。

如果要找第三個、第四個、第 N 個呢?是可以用同樣的方式去找,但我不太推薦,因為算式會寫得很長。比如說我們要找第三個,就會變這樣:

=FIND("歡迎", A2, FIND("歡迎", A2, FIND("歡迎", A2) + 1) + 2)


所以我會搭配 CHARSUBSTITUTE 來做,比較好讀、也比較有彈性:

=FIND(CHAR(999), SUBSTITUTE(A2, "歡迎", CHAR(999), 3))

(不確定 SUBSTITUTE 是什麼的話,下一篇會寫喔!)




搭配 MID 函式,擷取字串的一部分

最後,我們還可以拿之前介紹的 MID 函式跟 FIND 搭配,讓它擷取指定字串的一部分。這也是個滿常見的應用場景!

我想取得這邊 Email 清單裡的帳號名,也就是「@」前面的字串:

raw-image


這邊就可以在 B2 寫:

=MID(A2, 1, FIND("@", A2) - 1)

這算式的意思是讓 MID 先從 A2 的第一個字開始取,之後用 FIND 找到「@」的所在位置後減 1,使它不包含「@」字本身。

來看看效果:

raw-image


這邊一樣把 B2 的算式拉下來,就取完囉!

raw-image




同場小加映:FINDB、SEARCHB

這兩個函式和之前提過的 LEFTMIDRIGHTLEN 一樣都有它的 B 版:

  • FINDB:以位元組為單位,尋找某字串中,特定文字第一次出現的位置,區分大小寫。
  • SEARCHB:以位元組為單位,尋找某字串中,特定文字第一次出現的位置,不區分大小寫。

舉個小例子,用 FINDFINDB 找「喜特先生」的所在位置:

raw-image


結果有點不一樣,對吧!這是因為 FIND 是「以字為單位」、而 FINDB 則是「以位元組為單位」,會把中文字(全形字元)當 2 個字來算,所以看起來比 FIND 更遠。

不過我個人幾乎不用 FINDBSEARCHB,畢竟用 FINDSEARCH 就可以解決大多數的狀況了。




最後最後,要提一下 FINDSEARCH 的缺點:沒那麼有彈性。

之前介紹 QUERY 的時候,在 LIKE 可以用底線(_)跟星號(*)做一些模糊搜尋,讓搜尋資料更有彈性一點,可惜 FINDSEARCH 沒辦法做這種操作。

而這個可以用常規表達式的相關函式來解決,讓找字這件事變得更輕鬆!之後喜特先生也會推出一系列的教學文,進一步介紹常規表達式是什麼,還有REGEXMATCHREGEXREPLACEREGEXEXTRACT 這三個函式怎麼使用。敬請期待啦!




最後畫重點!

  • FIND 函式與 SEARCH 函式都可用於尋找文字字串中指定字串的位置。
  • FIND 函式會區分大小寫,而 SEARCH 函式會忽略大小寫。




如果你喜歡這次的文章,歡迎你透過這些方法支持我:

  • 按下愛心、按下儲存
  • 留言告訴我你的想法
  • 加入喜特先生的官方沙龍,即時看到我發布的教學
  • 付費訂閱喜特先生的官方沙龍,加入每月小額訂閱方案
  • 追蹤喜特先生的 Facebook
  • 這邊小額贊助我的創作!

想要看更多文章的話,歡迎來到我的 Notion 頁面找找有沒有你需要的資源喔!

我是喜特先生,Mr. Sheet,我們下個教學見!



avatar-img
14.0K會員
147內容數
簡潔,快速,有效, 讓你的日常生活、工作生產力大提升! ___ 快按「加入」,馬上追蹤所有喜特先生的更新,有 Google 試算表教學、Google Apps Script 的研究、數據分析課程的開箱,還有 Google 試算表疑難雜症的解題分享唷!💪
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
喜特先生官方沙龍 的其他內容
在 Google 試算表中,LEFT、MID、RIGHT 函式都是用來擷取文字字串中特定部分的函式。我想在這次的教學簡單介紹一下它們,歡迎來看看! LEFT:從左邊(開頭)取字串 我們可以用 LEFT 函式從字串的左邊(開頭)取指定字數的字串。 語法 =LEFT(字串, 要取的
接下來喜特先生會介紹一系列關於文字處理時,會常常運用到的函式。我們這次先從比較簡單的 LEN、CHAR 和 REPT 開始,之後會陸續介紹其他的。如果你有什麼想要了解的函式,歡迎在下面留言告訴我! LEN:字元長度 我們可以用 LEN 函式取得儲存格或字元的長度。 語法相當簡單:
喜特先生發佈了一系列介紹 LAMBDA 的文章,我把它們都統整在這了!你可以從頭開始學習,也可以找你有興趣的函式開始學習唷。 LAMBDA 函式(一):基本原理 介紹了 Google 試算表在 2022 年推出的 LAMBDA 函式和其輔助函式,以及如何在試算表中使用它們。LAMBDA
再來介紹最後一個 LAMBDA 輔助函式,REDUCE!「reduce」這詞在中文的意思是「縮減」。在 Google 試算表上,REDUCE 會把範圍中的每個值套用指定的 LAMBDA 函式,把這函式的結果累計到一個累計值裡,最後回傳這個值,像是把一個範圍「縮~」成一個值。
接下來介紹 LAMBDA 函式的第四個輔助函式,SCAN! 「scan」在這邊可以翻成「掃描」,而 SCAN 的作用在於對範圍中的每個值進行「掃描」、累計運算,會回傳一個範圍,裡面的數字是每個計算步驟的中繼值;而它最常見的用法就是算「移動總計」(running total)。
Google 試算表有個叫做 SPARKLINE 的函式,可以讓你在一個儲存格內生成一張迷你圖表。我寫了一篇系列文提供了教學,歡迎來看看唷!
在 Google 試算表中,LEFT、MID、RIGHT 函式都是用來擷取文字字串中特定部分的函式。我想在這次的教學簡單介紹一下它們,歡迎來看看! LEFT:從左邊(開頭)取字串 我們可以用 LEFT 函式從字串的左邊(開頭)取指定字數的字串。 語法 =LEFT(字串, 要取的
接下來喜特先生會介紹一系列關於文字處理時,會常常運用到的函式。我們這次先從比較簡單的 LEN、CHAR 和 REPT 開始,之後會陸續介紹其他的。如果你有什麼想要了解的函式,歡迎在下面留言告訴我! LEN:字元長度 我們可以用 LEN 函式取得儲存格或字元的長度。 語法相當簡單:
喜特先生發佈了一系列介紹 LAMBDA 的文章,我把它們都統整在這了!你可以從頭開始學習,也可以找你有興趣的函式開始學習唷。 LAMBDA 函式(一):基本原理 介紹了 Google 試算表在 2022 年推出的 LAMBDA 函式和其輔助函式,以及如何在試算表中使用它們。LAMBDA
再來介紹最後一個 LAMBDA 輔助函式,REDUCE!「reduce」這詞在中文的意思是「縮減」。在 Google 試算表上,REDUCE 會把範圍中的每個值套用指定的 LAMBDA 函式,把這函式的結果累計到一個累計值裡,最後回傳這個值,像是把一個範圍「縮~」成一個值。
接下來介紹 LAMBDA 函式的第四個輔助函式,SCAN! 「scan」在這邊可以翻成「掃描」,而 SCAN 的作用在於對範圍中的每個值進行「掃描」、累計運算,會回傳一個範圍,裡面的數字是每個計算步驟的中繼值;而它最常見的用法就是算「移動總計」(running total)。
Google 試算表有個叫做 SPARKLINE 的函式,可以讓你在一個儲存格內生成一張迷你圖表。我寫了一篇系列文提供了教學,歡迎來看看唷!
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
-把曾經消失的一切,都找回來- 透過閱讀,孩子不僅是在認識文字,更是在感受文字所帶來的情感和觸動。 當孩子在「老樹之歌」的故事中找到觸動心靈的一句話時,他的成長和讀書的自信也隨之增長。 希望通過這個小品,讓讀者可以感受到家庭教育的重要性,以及閱讀對孩子成長的意義。
Thumbnail
你也常常在夜深人靜時感到莫名不安?一個人的時候不信任自己能夠陪伴自己?在一段關係裡總是頻頻受到傷害?
Thumbnail
沒人看 沒有認識的斯文x類 停止腦子思考的中繼站 提煉文筆? 不用跟旁人聊天 自戀式沈浸文章公園 當另一個我 累積能量 心靈無處可去的好所在 夜那麼黑、風那麼大,文字沸點小、燃點大? 文字癌患者的安寧病房
Thumbnail
一個有企圖想將大多數人拉攏到同一個宇宙的社群媒體,勢必不能失去最有可能長時間黏著的讀者!而由此來看,長文的創作者,究竟能不能把「Facebook的粉絲專頁」當作另一個「文字平台」來發表呢?
Thumbnail
「文字MP3」是如何將一篇包含有中文、英文、數字、符號的文字使用朗讀内容時,能夠用我們口語化、習慣的唸法進行朗讀? 「文字MP3」支援的文字正規化 (text normalization):
Thumbnail
正念的益處 這種快樂源於高貴的情操,能帶來真正的滿足。感官的快樂無法與它相比,而且只要你願意修練,這種快樂唾手可得,你不需要付一分錢就能得到它。 把握主要的掌控法 經行(或行禪) 本範例音檔使用網際智慧文字轉語音技術。
Thumbnail
圖1,圖片引用自pexels 2021/07月第三篇付費訂閱文 大綱 1.製作始於自己的投資組合表需要哪些東西? 2.如何抓取上市、上櫃公司股價資訊,有哪些項目可以用? 這系列是付費訂閱文,後面還會有的內容有,有興趣的朋友可以參考,是以完全對google sheet 新手從0開始的基礎教學,每篇教
Thumbnail
作品名稱:《解憂雜貨店》 作者:東野圭吾 出版社:皇冠 售價:350元
Thumbnail
在邁入智慧型手機與社群媒體的年代後,相信大家一定有聽過一個論調,就是很多「長輩」都認為,現在的人都很少「寫字」,對於語言/文的掌握不若以往嚴謹。簡單講就是很多字都不知道怎麼寫,或者是寫錯字。 但,事實是這樣嗎?
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
-把曾經消失的一切,都找回來- 透過閱讀,孩子不僅是在認識文字,更是在感受文字所帶來的情感和觸動。 當孩子在「老樹之歌」的故事中找到觸動心靈的一句話時,他的成長和讀書的自信也隨之增長。 希望通過這個小品,讓讀者可以感受到家庭教育的重要性,以及閱讀對孩子成長的意義。
Thumbnail
你也常常在夜深人靜時感到莫名不安?一個人的時候不信任自己能夠陪伴自己?在一段關係裡總是頻頻受到傷害?
Thumbnail
沒人看 沒有認識的斯文x類 停止腦子思考的中繼站 提煉文筆? 不用跟旁人聊天 自戀式沈浸文章公園 當另一個我 累積能量 心靈無處可去的好所在 夜那麼黑、風那麼大,文字沸點小、燃點大? 文字癌患者的安寧病房
Thumbnail
一個有企圖想將大多數人拉攏到同一個宇宙的社群媒體,勢必不能失去最有可能長時間黏著的讀者!而由此來看,長文的創作者,究竟能不能把「Facebook的粉絲專頁」當作另一個「文字平台」來發表呢?
Thumbnail
「文字MP3」是如何將一篇包含有中文、英文、數字、符號的文字使用朗讀内容時,能夠用我們口語化、習慣的唸法進行朗讀? 「文字MP3」支援的文字正規化 (text normalization):
Thumbnail
正念的益處 這種快樂源於高貴的情操,能帶來真正的滿足。感官的快樂無法與它相比,而且只要你願意修練,這種快樂唾手可得,你不需要付一分錢就能得到它。 把握主要的掌控法 經行(或行禪) 本範例音檔使用網際智慧文字轉語音技術。
Thumbnail
圖1,圖片引用自pexels 2021/07月第三篇付費訂閱文 大綱 1.製作始於自己的投資組合表需要哪些東西? 2.如何抓取上市、上櫃公司股價資訊,有哪些項目可以用? 這系列是付費訂閱文,後面還會有的內容有,有興趣的朋友可以參考,是以完全對google sheet 新手從0開始的基礎教學,每篇教
Thumbnail
作品名稱:《解憂雜貨店》 作者:東野圭吾 出版社:皇冠 售價:350元
Thumbnail
在邁入智慧型手機與社群媒體的年代後,相信大家一定有聽過一個論調,就是很多「長輩」都認為,現在的人都很少「寫字」,對於語言/文的掌握不若以往嚴謹。簡單講就是很多字都不知道怎麼寫,或者是寫錯字。 但,事實是這樣嗎?