FLATTEN 関数

適用先
Excel for Microsoft 365 Excel for Microsoft 365 for Mac

FLATTEN 関数は、入れ子になった配列 (配列の配列) をその内容で置き換えることによって簡略化します。

構文

FLATTEN 関数は、入れ子の 1 つ以上の内部レイヤーを配列から削除します。

FLATTEN 関数の構文は次のとおりです。

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

引数 説明
配列
(必須)
入れ子になった配列、または入れ子になった配列を含むセルまたは範囲への参照をフラット化します。
pad_value フラット化時に空の位置を埋めるために使用される値は、非四角形の結果を生成します。 既定では、空のポジションには #N/A エラーが入力されます。
レベル 配列内から削除するレイヤーの数。 既定では、1 つのレイヤーが削除されます。 入れ子のすべてのレイヤーを削除するには、「 0 」と入力します。

注

  • FLATTEN は、配列以外の値には影響しません。 =FLATTEN(42) 42 を返します。
  • levels が配列内のレイヤーの数より大きい場合、すべてのレイヤーが削除されます

使用例

サンプル データをコピーし、新しい Excel ワークシートのセル A1 に貼り付けます。 必要に応じて、列幅を調整してすべてのデータを表示してください。

使用例 1

ネストされた配列の列をグリッドに広げます。 列 A の各セルには、3 つの値のネストされた行が保持されます。

表全体をコピーし、新しいワークシートのセル A1 に貼り付けます。 FLATTEN 数式は A6 に配置され、フラットな 3 x 3 グリッドが A6:C8 にスピルします。

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

結果を次の図に示します。

入れ子になった行を含むセルの列に FLATTEN を使用して、3 x 3 のフラットなグリッドを生成します

使用例 2

入れ子になった配列のサイズが異なる場合は、ギャップを埋めます。 列 A の各セルにはネストされた行が含まれていますが、2 つの行の長さは同じではありません。

データ
={{1,2,3}}
={{4,5}}

それらを平坦にすると、ギザギザの結果が得られます。 Excel の配列は四角形にする必要があるため、欠落している位置は、既定では #N/A エラー、または pad_value に指定した値で埋められます。

各結果がスピルしているため、空の行が 2 つ、空の列が 3 つあるセルに数式を入力します。

=FLATTEN(A2:A3) 空のセルに #N/A を返します (既定値)。

=FLATTEN(A2:A3,0) 空のセルに 0 を返します。

=FLATTEN(A2:A3,"") 空のセルに空のテキストを返します。

以下の図に、これらの方法を示します。

FLATTEN の pad_value 引数を使用して、ギザギザの結果の #N/A エラーを置き換える