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として登録されます。