跳轉到

FLATTEN

類別: MS Excel 相容函數 · 原生導入: Microsoft 365 (2026 新增)

解除清單或陣列文字的巢狀,將各項溢出到格線。

語法

=FLATTEN(陣列, [填補值], [層級])

引數

引數 必要 說明
陣列 必要 要解除巢狀的清單文字、範圍或陣列
填補值 選用 不齊列的填補值(預設 #N/A)
層級 選用 要解除的巢狀層數(預設全部)

傳回

傳回解除巢狀後的二維陣列,在動態陣列環境中會溢出。陣列引數本身是錯誤時直接傳回該錯誤;填補值給陣列、層級不是數字或為負數、或結果為空時傳回 #VALUE!。

範例

公式 結果 說明
=FLATTEN("a, b, c") {a;b;c} 清單 → 一欄
=FLATTEN("{""a"",""b"";""c""}") {a,b;c,#N/A} 二維陣列文字,不足處以 #N/A 填補
=FLATTEN({"a, b";"c"}) {a;b;c} 清單儲存格所在欄縱向堆疊

備註

  • 一層 = 在外層陣列的每一列中,把各元素(純量 = 1×1,陣列 = 其自身形狀)橫向串接,再把各列縱向堆疊,寬度以填補值(預設 #N/A)補齊。層級省略或為 0 時反覆執行直到沒有巢狀;正數 N 只解除 N 層,剩餘的巢狀項目以清單文字表示法({…})顯示。例:=FLATTEN("{""a"",{""b"",""c""}}",,1) → {a,{"b","c"}} — 只解除該儲存格的第一層巢狀。
  • 一欄清單文字得到縱向一欄,含多個清單儲存格的欄範圍縱向堆疊,單一儲存格的二維陣列文字保持其二維形狀。陣列文字本身長度不齊的列一律以 #N/A 填補,與填補值無關;清單中的錯誤項目(#N/A 等)作為資料保留。沒有逗號與大括號的單一文字原樣成為 1×1 文字。
  • Microsoft 365 測試版的儲存格內清單在舊版 Excel 中只顯示為 #UNKNOWN!(Excel 2016 為 #VALUE!),請先以功能區 [EGTools] › [清單/陣列儲存格 → 文字] 轉換後再使用。相關函數:HAS、HASANY、HASALL
  • 支援: Excel 2010+。在沒有原生函數的舊版 Excel 中以 FLATTEN 原名註冊(可直接替換),在已內建原生函數的新版 Excel 中則註冊為 EG.FLATTEN。