Chapter 9. 函式 (四):字串處理9.3 尋找與取代字串

9.3 尋找與取代字串


在 Google Sheets 中與字串尋找與取代相關之函式如下:

  • FIND / SEARCH:尋找特定的字出現在字串的哪個位置

語法

FIND / SEARCH (搜尋, 搜尋文字, [開始搜尋])

輸入

  • 搜尋:要找的字串。
  • 搜尋文字:要在哪裡找。
  • 開始搜尋:從 搜尋文字 的哪裡開始找,預設為 1。

輸出

搜尋文字 從第 開始搜尋 個字元起算,第一次出現在 搜尋 的位置,若找不到會輸出 #VALUE!。其中 FIND 會區分大小寫、SEARCH 則不區分。

  • REPLACE:取代特定位置的字串

語法

REPLACE (文字, 位置, 長度, 新文字)

輸入

  • 文字:要在哪裡找要被取代的字串。
  • 位置:第幾個位置開始要被取代。
  • 長度:要取代的內容的長度。
  • 新文字:取代的字串。

輸出

文字 的第 位置 起算 長度 個字被取代成 新文字 的結果。

FIND / SEARCH / REPLACE 和字串的長度有關,因此也有使用 Bytes 計算的函式,即 FINDB / SEARCHB / REPLACEB,其函式輸入與輸出完全相同。

  • SUBSTITUTE:將某字串取代為某字串

語法

SUBSTITUTE (搜尋文字, 搜尋, 取代目標, [出現次數])

輸入

  • 搜尋文字:要在哪裡找要被取代的字串。
  • 搜尋:要被取代的字串。
  • 取代目標:取代的字串。
  • 出現次數:要取代第幾次出現的 搜尋,預設為全部都取代。

輸出

搜尋文字 的 搜尋 被取代為 取代目標 的結果,會區分大小寫。

接下來將繼續使用已命名範圍「ptt看板範例」,搭配三個基本的範例及一個進階範例說明上述函式的用法:


  1. 取得 baseball 出現在 ptt看板範例 的位置

    公式

    =SEARCH("baseball",ptt看板範例)

    解說

    • 若使用 FIND 會輸出 #VALUE!,因為 FIND 會區分大小寫。
    • 此公式會輸出 1,若指定 開始搜尋 為任一個大於 1 的數,則會輸出第二次出現的位置 (即 24),但若 開始搜尋 大於 24 則會輸出 #VALUE!。
  2. 將 ptt看板範例 的第 10~13 個字取代為 XXX

    公式

    =REPLACE(ptt看板範例,10,4,"XXX")

    解說

    在 REPLACE 中選擇第 10~13 個字的方式與 MID 相同,輸出起始位置及字串長度,字串長度則為 13-10+1=4。

  3. 將 ptt看板範例中棒球皆更改成籃球,中英文都修改

    公式

    =SUBSTITUTE(SUBSTITUTE(ptt看板範例,"Baseball","Basketball"),"棒球","籃球")

    解說

    在此使用兩次 SUBSTITUTE 完成,分別取代英文、中文字串。

  4. 將 ptt看板範例 的人氣 (即 2607) 取代為 XXX

    公式

    • =REPLACE(ptt看板範例,FIND(" ",ptt看板範例)+1,FIND(" ",ptt看板範例,FIND(" ",ptt看板範例)+1)-FIND(" ",ptt看板範例)-1,"XXX")
    • =SUBSTITUTE(ptt看板範例,MID(ptt看板範例,FIND(" ",ptt看板範例)+1,FIND(" ",ptt看板範例,FIND(" ",ptt看板範例)+1)-FIND(" ",ptt看板範例)-1),"XXX")

    解說

    上述公式看起來很複雜,以下分成幾個步驟說明:

    • 將人氣取代成 XXX:可以使用以下兩種方式完成:
      • =REPLACE(ptt看板範例,人氣起始位置,人氣的長度,"XXX")
      • =SUBSTITUTE(ptt看板範例,人氣,"XXX"),其中 人氣 可以使用 MID(ptt看板範例,人氣起始位置,人氣的長度) 完成。
    • 人氣起始位置:已知 ptt看板範例 的結構為「英文名稱 人氣 其他內容」,因此人氣的起始位置為「第一個空格的位置 + 1」,因此可使用 FIND(" ",ptt看板範例)+1
    • 人氣的長度:長度為「第二個空格的位置 − 第一個空格的位置 − 1」,其中第二個空格所在的位置可使用 FIND 並將 開始搜尋 設「第一個空格的位置 + 1」即可。因此可使用 FIND(" ",ptt看板範例,FIND(" ",ptt看板範例)+ 1)-FIND(" ",ptt看板範例)-1
    • 將人氣的起始位置、人氣的長度回填到公式中即可。

    上述公式看起來相當複雜,但掌握這些函式的精髓後,便能將字串內容中進行一番整理並靈活運用,第 9.5 節也會使用這些函式進一步拆解其他 ptt 的看板。