Chapter 9. 函式 (四):字串處理9.2 分割與合併字串

9.2 分割與合併字串


在 Google Sheets 中與字串分割、合併相關之函式如下:

  • TRIM:移除多餘的空格

語法

TRIM (文字)

輸入

文字:要移除空格的字串。

輸出

移除 文字 中所有的空格,只在字詞之間留下一個半形空格,即開頭、結尾、字串中重複的空格都會移除。

  • SPLIT:分割字串

語法

SPLIT (文字, 分隔符號, [逐個分割], [移除空白文字])

輸入

  • 文字:要切割的字串,可以是單一內容或多個儲存格。
  • 分隔符號:要用什麼符號 / 文字切割,可以放多個字。
  • 逐個分割:TRUE / FALSE,分隔符號 中的字是否獨立,預設為 TRUE。舉例來說若 分隔符號 為 "the"、逐個分割 為 TRUE 則只要出現 t / h / e 都會切割,FALSE 則是將 the 視為切割符號。
  • 移除空白文字:TRUE / FALSE,是否要在分割後移除空白文字訊息。預設為 TRUE,舉例來說若 分隔符號 為空格,若 文字 包含多個連續空格,若 移除空白文字 為 TRUE 則只會切割一次,FALSE 則會逐一切割成多欄。

輸出

文字 根據 分隔符號 切割,輸出會有多個欄位。

  • CONCAT / &:將兩個值連接在一起

語法

  • CONCAT (值_1, 值_2)
  • 值_1 & 值_2

輸入

值_1 / 值_2:要連接在一起的字串,可以是數字或文字。

輸出

將兩個值合併成字串形式,即 值_1值_2。在第 6.6 節在 COUNTIF 等函式的條件中 & 連接儲存格內容即是此道理。

  • JOIN:使用指定分隔符號合併多個字串

語法

JOIN ([分隔符號], 值或陣列_1, [值或陣列_2,...])

輸入

  • 分隔符號:要用什麼符號 / 文字連接所有字串,預設為空 ("")。
  • 值或陣列_n:要連接的字串或陣列,每個陣列必須是單欄或單列,不然會出現 #VALUE。

輸出

所有 值或陣列_n 依序使用 分隔符號 連接後的結果。

  • CONCATENATE / TEXTJOIN:合併字串

語法

  • CONCATENATE (文字_1, [文字_2,...])
  • TEXTJOIN (分隔符號, [忽略空白], 文字_1, [文字_2,...])

輸入

  • 分隔符號:要用什麼符號 / 文字連接所有輸入,預設為空 ("")。
  • 忽略空白:TRUE / FALSE,若 文字_n 中有空值是否要忽略,預設為 FALSE,若選取 TRUE 合併時將會把空值轉為一格空格。
  • 文字_n:要連接在一起的字串,可以是數字、文字或儲存格範圍。

輸出

  • CONCATENATE:將所有輸入連接在一起。
  • TEXTJOIN:將所有輸入連接在一起,每個輸入間用 分隔符號 連接。

若 CONCATENATE / TEXTJOIN 的輸入是儲存格範圍,且寬度和高度均大於 1 時,會先連接列再連接欄,例如 =CONCATENATE(A1:B2) 的合併順序為 A1 ⭢ B1 ⭢ A2 ⭢ B2。

以下使用六個範例說明上述函式的用法,以及搭配其他函式使用的常見方式,其中已命名範圍「ptt看板範例」的內容為 "Baseball 2607 棒球 ◎[棒球] Baseball  is life":

  1. 移除 ptt看板範例 多餘的空格

    公式

    =TRIM(ptt看板範例)

    解說

    使用 TRIM 即可,輸出會將 Baseball 和 is 中間的空格移除至剩下一個。

  2. 將 ptt看板範例 的內容使用空格分割成多欄

    公式

    =SPLIT(ptt看板範例," ")

    解說

    目前輸出共有七欄。若在此將 移除空白文字 設為 FALSE,即 =SPLIT(ptt看板範例," ",,FALSE),則輸出會多一欄空字串。兩者的輸出分別如下:

  3. 將 ptt看板範例 的內容使用「Baseball」分割成多欄

    公式

    =SPLIT(ptt看板範例,"Baseball")

    解說

    因為 逐個分割 預設為 TRUE,所以也會將 is life 的 s / l / e 當作分隔符號使用,最後輸出共有四欄,若將 逐個分割 設為 FALSE,即 =SPLIT(ptt看板範例,"Baseball",FALSE),就只會把 Baseball 當作分隔符號,此時輸出就只會有兩欄?兩者的輸出分別如下:

  4. 取得 B. 分割後的以下資訊:(1) 共有幾個字串、(2) 第二個字串、(3) 共出現幾次 Baseball、(4) is 出現在第幾個元素

    公式

    (1) =COLUMNS(SPLIT(ptt看板範例," "))

    (2) =INDEX(SPLIT(ptt看板範例," "),2)

    (3) =COUNTIF(SPLIT(ptt看板範例," "),"Baseball")

    (4) =MATCH("is",SPLIT(ptt看板範例," "),0)

    解說

    SPLIT 後的結果有多欄,即為陣列,可以搭配其他輸入為陣列的函式使用。

  5. 將 ptt看板範例 前面加上「看板名稱:」

    公式

    • =CONCAT("看板名稱:",ptt看板範例)
    • ="看板名稱:"&ptt看板範例

    解說

    可使用 CONCAT / & 將兩字串連接。

  6. 將 ptt熱門看板!A2:A4 的內容合併,其合併的分隔符號為 CHAR(10)

    公式

    • =CONCATENATE('ptt熱門看板'!A2,CHAR(10),'ptt熱門看板'!A3,CHAR(10),'ptt熱門看板'!A4)
    • ='ptt熱門看板'!A2&CHAR(10)&'ptt熱門看板'!A3&CHAR(10)&'ptt熱門看板'!A4
    • =JOIN(CHAR(10),'ptt熱門看板'!A2:A4)
    • =TEXTJOIN(CHAR(10),,'ptt熱門看板'!A2:A4)

    解說

    • CHAR(10) 是在儲存格中換行的符號,CHAR 是根據 Unicode 編碼表將數字轉換成字元,在此不詳細介紹。
    • 可使用 CONCATENATE / & 完成,但要重複輸入兩次 CHAR(10)。
    • 可使用 JOIN / TEXTJOIN,兩函式最主要的差別是 TEXTJOIN (1) 可以忽略空白、(2) 支援多欄多列的輸出。但在此 'ptt熱門看板'!A2:A4 並無空白、也不是多欄多列,因此兩者的用法相同。