SPLIT,分隔文字第二招

SPLIT,分隔文字第二招

更新於 發佈於 閱讀時間約 5 分鐘

在上次的「怎麼把文字分隔成不同欄?」提到,我們可以用 Google 試算表內建的功能,把這樣的資料分隔出來,落在不同欄上。例如把這樣的資料:

raw-image

變成這樣:

raw-image

但如果資料是動態的(例如你從 IMPORTRNAGE 導入的資料、QUERY 查出來的資料、或是從函式產生的結果等)、或是我們想要在分隔上做更細緻的設定,其實還有一個函式可以幫忙我們,叫做「SPLIT」。

馬上來看看怎麼做吧!


語法

SPLIT 函式的語法很簡單,它只有兩個必要的參數、還有兩個選填的:

=SPLIT(文字, 分隔符號, [逐個分隔], [移除空白結果])
  • 文字:你打算要分隔的文字或儲存格位址
  • 分隔符號:用來分隔的標準
  • 逐個分隔:選填,預設是 true。我們等等會進一步說明。
  • 移除空白結果:選填,預設是 true,等等也會說明。


「逐個分隔」是什麼東西?

「如果你的分隔符號有兩個字元以上,你要不要把每個字元、都當成一個獨立的分隔標準?」的意思。舉個例子,我們有這串字:

今天不是星期三 明天是星期四

我們的分隔符號設定為「不是」、且把「逐個分隔」設定為 TRUE 的話:

raw-image

這是因為 SPLIT 把「不」跟「是」都當作分隔符,所以:

今天不是星期三 明天星期四
--> 今天 / 星期三 明天 / 星期四

那如果把這邊寫成 FALSE 的話:

raw-image

「不是」被當成分隔符,隔開了「今天」跟「星期三」,但是「明天是」的「是」被留下來了。這是因為沒有逐個分割、只把「不是」視為一個分隔符的關係:

今天不是星期三 明天是星期四
--> 今天 / 星期三 明天是星期四

不過老實說,我覺得實務上在用 SPLIT 的時候,大部分只會遇到分隔符號只有一個字元的狀況,要考量到逐個分隔的情況真的很少,所以這部分你可以看看就好!


注意事項

  • 如果要分隔的文字長度過長(超過 50000 個字元),SPLIT 會給你 #REF! 錯誤。
  • SPLIT 的結果需要有足夠的空間讓它展開,如果被其他資料擋住的話,會回傳 #REF! 錯誤。
raw-image
  • SPLIT 的結果不能編輯!你可能需要複製後貼上值,把資料轉成靜態的後再編輯。
  • 分隔符號有大小寫區分,寫的時候要小心。
  • SPLIT 的結果會往右出現,你如果想要讓 SPLIT 的結果是直的一欄,可以在 SPLIT 外面再包一層 TRANSPOSE 函式:
=TRANSPOSE(SPLIT(...))


應用範例

接下來我會示範兩個可以活用 SPLIT 的方式。歡迎到這邊複製試算表,跟我一起做喔!


一、分隔日期和時間

假如你有個日期和時間的資料,格式是「yyyy-mm-dd hh:mm:ss」(年-月-日 時-分-秒,位數固定):

raw-image

我們就可以很簡單地用 SPLIT(或是上次介紹的「把文字分成不同欄」的功能),把日期跟時間分開,像是這樣:

=SPLIT(A2, " ")

來看看效果:

raw-image

如果你想接著把下面的一起完成,也可以搭配 ArrayFormula 使用:

=ARRAYFORMULA(SPLIT(A2:A20, " ")
raw-image


二、選擇分隔後的第N個東西

再來看一組資料,這邊有幾個假地址:

raw-image

如果這邊直接做 SPLIT 的話,會像是這樣:

=SPLIT(A2, " / ")
raw-image

可是如果我只想要「中壢區」、「蘆竹區」、「新莊區」這邊的第二組資料呢?你可以用 INDEX 函式,把 SPLIT 包起來,像是:

=INDEX(SPLIT(A2, " / "), 2)
raw-image

INDEX 的 2 代表你要第二組資料,如果你要第一組的話,那就是 1,第三組就是 3,以此類推!


今天介紹了基本 SPLIT 的運用方法,其他活用的方式還有很多!如果你有任何應用的點子也歡迎跟我聊聊。

如果你喜歡這次的文章,歡迎你透過這些方法支持我:
・按下愛心、按下儲存
・留言告訴我你的想法
・加入喜特先生的官方沙龍,即時看到我發布的教學
・付費訂閱喜特先生的官方沙龍,加入每月小額訂閱方案
・追蹤喜特先生的 Facebook
・按這邊小額贊助我的創作!

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

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



avatar-img
喜特先生官方沙龍
17.2K會員
151內容數
簡潔,快速,有效, 讓你的日常生活、工作生產力大提升! ___ 快按「加入」,馬上追蹤所有喜特先生的更新,有 Google 試算表教學、Google Apps Script 的研究、數據分析課程的開箱,還有 Google 試算表疑難雜症的解題分享唷!💪
留言
avatar-img
留言分享你的想法!
喜特先生官方沙龍 的其他內容
今天介紹 TOCOL 和 TOROW 這兩個最近新增的函式,它們的功用是可以把資料拉〜成一條,而 TOCOL 則是把資料轉成一欄、而 TOROW 是把資料轉成一列。
這次要介紹的是 IFNA 和 IFERROR 這兩個函式,它們可以幫助我們在試算表中可以靈活處理錯誤和缺失的數據。語法很單純,但也很實用!我們一起來看看怎麼做。
之前提過 IF 跟 IFS 這兩個可以做條件判斷的函式,但你知道其實條件判斷還有一手!今天要介紹的叫 SWITCH 函式,它跟 IF、IFS 一樣,可以做多條件的判斷,且可以在沒有相符結果時,傳回你指定的預設值。
這次要介紹的兩個叫做 VSTACK 跟 HSTACK,可以讓你把範圍縱向或橫向堆疊起來,省去合併資料的一點麻煩!
2023 到了,今年有什麼新規劃嗎?或是有什麼重要的日子值得倒數一下呢?我們可以在試算表用三個方法,計算兩個日期的相差天數,當然計算倒數日也可以。一起來看看吧!
今天介紹 TOCOL 和 TOROW 這兩個最近新增的函式,它們的功用是可以把資料拉〜成一條,而 TOCOL 則是把資料轉成一欄、而 TOROW 是把資料轉成一列。
這次要介紹的是 IFNA 和 IFERROR 這兩個函式,它們可以幫助我們在試算表中可以靈活處理錯誤和缺失的數據。語法很單純,但也很實用!我們一起來看看怎麼做。
之前提過 IF 跟 IFS 這兩個可以做條件判斷的函式,但你知道其實條件判斷還有一手!今天要介紹的叫 SWITCH 函式,它跟 IF、IFS 一樣,可以做多條件的判斷,且可以在沒有相符結果時,傳回你指定的預設值。
這次要介紹的兩個叫做 VSTACK 跟 HSTACK,可以讓你把範圍縱向或橫向堆疊起來,省去合併資料的一點麻煩!
2023 到了,今年有什麼新規劃嗎?或是有什麼重要的日子值得倒數一下呢?我們可以在試算表用三個方法,計算兩個日期的相差天數,當然計算倒數日也可以。一起來看看吧!