FLATTEN 函数

应用对象
Microsoft 365 专属 Excel Microsoft 365 Mac 版专属 Excel

FLATTEN 函数通过将嵌套数组的内部数组替换为其内容来简化嵌套数组 () 数组。

语法

FLATTEN 函数从数组中删除嵌套的一个或多个内部层。

FLATTEN 函数的语法为:

FLATTEN (array, [pad_value], [levels])

参数 描述
array
(必需)
要平展的嵌套数组或对包含嵌套数组的单元格或区域的引用。
pad_value 平整时用于填充空白位置的值生成非矩形结果。 默认情况下,空仓填充 #N/A 错误。
级别 要从数组内删除的层数。 默认情况下,将删除一个图层。 输入 0 可删除每一层嵌套。

注意

  • FLATTEN 对非数组的值没有影响。 =FLATTEN(42) returns 42.
  • 如果 级别 大于数组中的图层数,则删除每个图层

示例

复制示例数据,然后将其粘贴进新的 Excel 工作表的 A1 单元格中。 如果需要,可调整列宽以查看所有数据。

示例 1

将一列嵌套数组展开到网格中。 列 A 中的每个单元格都包含一个包含三个值的嵌套行。

复制整个表格并将其粘贴到新工作表的单元格 A1 中。 FLATTEN 公式位于 A6 中,并将平面 3 x 3 网格溢出到 A6:C8 中。

数据
={{1,2,3}}
={{4,5,6}}
={{7,8,9}}
公式
=FLATTEN (A2:A4)

下图演示了结果。

对单元格列(每个列都包含嵌套行)使用 FLATTEN,生成平面的三乘三网格

示例 2

当嵌套数组大小不同时填充间隙。 列 A 中的每个单元格都有一个嵌套行,但这两行的长度不同。

数据
={{1,2,3}}
={{4,5}}

平整它们会产生锯齿状的结果。 Excel 数组必须是矩形,以便填充缺失的位置 — 默认情况下为 #N/A 错误,或 pad_value中提供的值。

由于每个结果都会溢出,因此请在具有两行空行和三列空列的单元格中输入公式。

=FLATTEN(A2:A3) 在空单元格中返回默认) (#N/A 。

=FLATTEN(A2:A3,0) 在空单元格中返回 0。

=FLATTEN(A2:A3,"") 返回空单元格中的空文本。

下图演示了这些结果。

使用 FLATTEN 中的 pad_value 参数替换锯齿状结果中的 #N/A 错误