コンテンツにスキップ

FLATTEN

種類: MS Excel 互換関数 · ネイティブ導入: Microsoft 365 (2026 新規)

リスト・配列テキストの入れ子を解いて項目をグリッドにスピルします。

構文

=FLATTEN(配列, [埋める値], [レベル])

引数

引数 必須 説明
配列 必須 解除するリストテキスト・範囲・配列
埋める値 省略可能 不揃いの行の埋め値(既定 #N/A)
レベル 省略可能 解除する入れ子の段数(既定 すべて)

戻り値

入れ子を解いた 2 次元配列を返し、動的配列ではスピルします。配列引数自体がエラーの場合はそのエラーをそのまま返し、埋める値に配列を指定した場合、レベルが数値でないか負の場合、結果が空の場合は #VALUE! を返します。

例

数式 結果 説明
=FLATTEN("a, b, c") {a;b;c} リスト → 1 列
=FLATTEN("{""a"",""b"";""c""}") {a,b;c,#N/A} 2 次元配列テキスト、不足分は #N/A
=FLATTEN({"a, b";"c"}) {a;b;c} リストセルの列は縦に積まれる

解説

  • 1 段階 = 外側の配列の各行で要素(スカラー = 1×1、配列 = その形)を横に連結し、行を縦に積み、幅は埋める値(既定 #N/A)で揃えます。レベルを省略するか 0 なら入れ子がなくなるまで繰り返し、正の N なら N 回だけ解除して残った入れ子の項目はリストテキスト表記({…})で表示します。例: =FLATTEN("{""a"",{""b"",""c""}}",,1) → {a,{"b","c"}} — そのセルの最初の入れ子だけが解除されます。
  • 1 列のリストテキストは縦 1 列、リストセルが複数ある列範囲は縦に積まれ、1 セルの 2 次元配列テキストはその形のまま出ます。配列テキスト自体の不揃いな行は埋める値に関係なく常に #N/A で埋められ、リスト内のエラー項目(#N/A など)はデータとして保持されます。カンマも中かっこもない単一のテキストはテキストのまま 1×1 になります。
  • Microsoft 365 ベータのセル内リストは旧バージョンの Excel では #UNKNOWN!(Excel 2016 では #VALUE!)としか表示されないため、先にリボン [EGTools] › [リスト/配列セル → テキスト] で変換してから使います。関連関数: HAS, HASANY, HASALL
  • 対応: Excel 2010+。ネイティブ関数がない旧バージョンでは FLATTEN の名前のまま(ドロップイン)、ネイティブ関数がある新しい Excel では EG.FLATTEN として登録されます。