2026年5月16日 星期六

訂單不再亂成一團!Google 試算表最強「拆解術」:5 個讓資料自動排好隊的神級公式

 身為試算表愛好者,你是否也遇過這種令人崩潰的「髒資料」?

當你從計價軟體或訂單系統匯出報表時,所有的品項、金額、運費竟然通通被擠在同一個儲存格裡,只用「換行」簡單隔開。例如一個儲存格內擠了: 產品:蘋果 x 5 金額:500 運費:60

面對這種「一格多項」的資料,如果你還在用傳統的手動複製、貼上,再一列列搬移,這不僅是效率殺手,更是出錯的溫床。今天,我要分享一套強大的「自動化數據管線(Data Pipeline)」,利用五個核心函數的組合,讓這些混亂的資料瞬間自動排好隊!

--------------------------------------------------------------------------------

1. 數據管線的核心邏輯:從拆解到重組

在進入公式前,我們先理解這套「自動化管線」的操作流程:

解構 (SPLIT): 辨識換行符號,將資料橫向拆開。

引擎 (ARRAYFORMULA): 讓公式具備處理整欄資料的能力。

壓平 (FLATTEN): 將橫向的陣列「壓扁」成垂直的一維清單。

過濾 (QUERY): 排除廢棄雜訊,只留下我們需要的內容。

--------------------------------------------------------------------------------

2. 秘密武器:用 CHAR(10) 辨識看不見的換行

資料拆解的第一步,是要告訴試算表:「在哪裡切開?」

儲存格內的品項通常是用視覺上看不見的「換行」來區分。在 Google 試算表中,換行符號的專屬代碼是 CHAR(10)。

Behind the scenes: 當你下達 =SPLIT(A2, CHAR(10)) 時,試算表就會識別出換行位置,打破儲存格的物理限制,將內容橫向拆分到不同的格位。

--------------------------------------------------------------------------------

3. 全自動化的引擎:ARRAYFORMULA 的範圍魔力

如果每一列都要手動複製公式,那就稱不上自動化。一般的 SPLIT 只能處理單一儲存格,若要處理整個 G2:G 的範圍,我們必須請出 ARRAYFORMULA。

Pro Tip: 在輸入公式時,如果 ARRAYFORMULA 的自動完成選項沒彈出來,我的小撇步是:先在隔壁儲存格打好 ARRAYFORMULA() 的結構,再把內層公式剪下貼進去,確保語法精準無誤。

--------------------------------------------------------------------------------

4. 從橫向到縱向:FLATTEN 讓資料「扁平化」排隊

透過 SPLIT 拆開後的資料會呈「橫向」排列。但為了方便分析,我們需要它們「縱向」垂直排好。這時就是 FLATTEN 大顯神通的時候。

它的魔法: FLATTEN 能將多維陣列「壓平」,變成一維垂直清單,讓原本橫向生長的資料乖乖向下排隊。

⚠️ 避坑指南: 使用 FLATTEN 時要特別小心。如果你直接對整欄(如 A:A)操作,Google 試算表會試圖將每一列(包含空白列)都展開,這極容易觸發「超過 1,000 萬個儲存格」的上限錯誤。建議先限制範圍(例如 G2:G100),或是搭配我們接下來要說的 QUERY 進行過濾。

--------------------------------------------------------------------------------

5. 精確篩選的守門員:QUERY 與那個致命的大寫 "C"

資料壓平後,清單中會充斥著大量的空白列與雜訊。我們需要 QUERY 函數擔任最後的守門員。

為什麼這裡用 Col1 而不是 A? 這是許多人的疑問。當資料經過 FLATTEN 處理後,它就不再是原本試算表上的實體欄位,而是一個「虛擬陣列」。在處理虛擬陣列時,我們必須使用 Col1, Col2 這種編號方式來指定欄位。

🚨 關鍵筆記: 在撰寫語法時,「Col」的「C」必須是大寫!如果你打成小寫的 col1,試算表會直接罷工並報錯。

範例條件: ... "where Col1 contains '產品'" 這行指令會幫我們精準抓出包含「產品」字樣的列,過濾掉所有的空白與垃圾資訊。

--------------------------------------------------------------------------------

6. 專業級設置:建立「細項表」保持主表整潔

作為一名效率專家,我強烈建議:永遠不要在原始資料表直接做拆解作業。

最佳的做法是建立一個新的工作表(例如命名為「訂單細項」),利用跨表公式來抓取主表的資料。

跨表語法: 工作表名稱!範圍 (例如:'主表'!G2:G)

這樣做能確保原始資料(主表)乾淨無虞,而拆解後的資料(細項表)則擁有獨立的欄寬與格式,不僅視覺上清晰,後續維護更是事半功倍。

--------------------------------------------------------------------------------

7. 最終奧義:五合一神級公式

將以上步驟結合,你將得到這個威力無窮的自動化公式:

=QUERY(FLATTEN(ARRAYFORMULA(SPLIT('工作表1'!G2:G, CHAR(10)))), "where Col1 contains '產品'")

總結與預告

這套流程成功地將擠成一團的髒資料轉化為結構化的數據清單。這是邁向自動化管理的第一步。

不過,雖然我們把資料「拆散」排好了,但現在儲存格裡可能還留著像「產品:蘋果 x 5」這樣的冗長字串。下一次,我將分享如何利用「正規表示法 (Regex)」精準地把「產品名稱」與「數量」單獨提取出來,別忘了持續關注!

最後想問問大家: 你的試算表中是否也有那些「藏在同一個儲存格」卻無法統計的寶貴數據呢?現在就試試這套拆解術,把它們救出來吧!



沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。

訂單不再亂成一團!Google 試算表最強「拆解術」:5 個讓資料自動排好隊的神級公式

 身為試算表愛好者,你是否也遇過這種令人崩潰的「髒資料」? 當你從計價軟體或訂單系統匯出報表時,所有的品項、金額、運費竟然通通被擠在同一個儲存格裡,只用「換行」簡單隔開。例如一個儲存格內擠了: 產品:蘋果 x 5 金額:500 運費:60 面對這種「一格多項」的資料,如果你還在用...