FLATTEN 函數的作用是將一維或二維的資料範圍,全部展開並合併成單一欄的垂直陣列。處理多欄位的人員名單、排班表或商品清單時,能快速將資料轉為適合分析的格式。
Google 試算表 FLATTEN 函數語法
=FLATTEN(範圍1, [範圍2, ...])| 參數 | 必填 | 說明 |
|---|---|---|
| 範圍1 | 是 | 要轉換成單一欄的第一個資料範圍或陣列。 |
| 範圍2 | 選填 | 要附加在第一個範圍之後的其他資料範圍,可輸入多個。 |
回傳:轉換為單一欄的垂直陣列。
FLATTEN 函數範例
範例 1:展開單一二維範圍
排班表
| 業務一組 | 業務二組 |
|---|---|
| 王小明 | 陳怡君 |
| 林雅婷 | 張建國 |
在 D2 輸入公式:
=FLATTEN(A2:B3)結果:王小明。將 A2 到 B3 的二維範圍展開為單一欄。結果會從 D2 開始向下溢出,依序顯示王小明、陳怡君、林雅婷、張建國,順序為先由左至右,再由上至下。
範例 2:合併多個獨立範圍
出勤名單
| 早班 | 晚班 |
|---|---|
| 王小明 | 陳怡君 |
| 林雅婷 | |
| 張建國 |
在 D2 輸入公式:
=FLATTEN(A2:A4, B2:B4)結果:王小明。將早班與晚班兩個獨立的欄位範圍合併成單一欄。結果會從 D2 向下溢出,先列出 A2 到 A4 的資料,接著再列出 B2 到 B4 的資料,包含空白儲存格也會保留。
範例 3:數值資料轉置與展開
業績統計
| 部門 | 一月 | 二月 |
|---|---|---|
| 業務部 | 150 | 200 |
| 行銷部 | 120 | 180 |
在 E2 輸入公式:
=FLATTEN(B2:C3)結果:150。將 B2 到 C3 的數值範圍展開為單一欄。結果會從 E2 開始向下溢出,依序顯示 150、200、120、180,方便將跨欄的業績數據整理為適合樞紐分析的一維格式。
使用 FLATTEN 的技巧與注意事項
- FLATTEN 展開資料的順序固定為「先由左至右,再由上至下」,無法直接更改為先由上至下。
- 展開的結果會保留空白儲存格,若要移除空白,可在外層包覆 FILTER 或 QUERY 函數。
- 適合搭配 SPLIT 函數使用,將儲存格內以逗號分隔的多個值先拆分後,再用 FLATTEN 轉為單一欄。
FLATTEN 常見錯誤與解決方法
| 錯誤 | 原因 | 解決方法 |
|---|---|---|
| #REF! | 展開後的資料範圍覆蓋到已經有資料的儲存格。 | 清除目標範圍下方的資料,確保有足夠的空白儲存格讓陣列溢出。 |
| #VALUE! | 輸入的參數不是有效的範圍或陣列。 | 確認括號內的參數是否為正確的儲存格參照(例如 A1:B5)。 |
Excel 有 FLATTEN 嗎?
Excel 中沒有 FLATTEN 函數,但可以使用 TOCOL 函數達到相同的效果。TOCOL 函數還提供額外參數,可選擇是否忽略空白或錯誤值,以及設定掃描順序。
常見問題
FLATTEN 函數可以略過空白儲存格嗎?
FLATTEN 函數本身無法略過空白儲存格,會將空白視為空字串輸出。若要排除空白,可以將公式改為 =FILTER(FLATTEN(範圍), FLATTEN(範圍)<>"")。
為什麼使用 FLATTEN 函數會出現 #REF! 錯誤?
這是因為 FLATTEN 輸出的結果需要多個儲存格來顯示,但目標範圍下方已經有其他資料。請清空下方的儲存格,讓函數有足夠空間顯示完整結果。
FLATTEN 展開資料的順序可以改成先直再橫嗎?
預設只能先由左至右,再由上至下。若需要先由上至下,再由左至右,可以使用 TRANSPOSE 函數將原資料轉置後,再使用 FLATTEN 函數處理。
相關函數
這篇收錄在「Google 試算表函數」。




