跳转至

FLATTEN

类别:MS Excel 兼容函数 · 原生引入:Microsoft 365(2026 年新增)

解除列表或数组文本的嵌套,将各项溢出到网格。

语法

=FLATTEN(数组, [填充值], [层级])

参数

参数 必需 说明
数组 必需 要解除嵌套的列表文本、区域或数组
填充值 可选 不齐行的填充值(默认 #N/A)
层级 可选 要解除的嵌套层数(默认全部)

返回

返回解除嵌套后的二维数组,在动态数组 Excel 中溢出。数组参数本身是错误时原样返回该错误;填充值给数组、层级不是数字或为负数、或结果为空时返回 #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+。在没有原生函数的旧版本中按 FLATTEN 原名注册(直接替换),在具有原生函数的新版 Excel 中注册为 EG.FLATTEN。