FLATTEN関数とは?知られざる便利関数

FLATTEN関数は、スプレッドシートの中でも比較的新しい・そしてあまり知られていない関数のひとつです。
複数行・複数列のデータを縦1列に圧縮して展開することができます。これにより、複雑な構造のデータを1次元のリストとして扱えるようになります。

FLATTENの基本的な使い方

Googleスプレッドシートの FLATTEN() 関数は、複数のセル範囲に含まれるデータを1列に変換してくれる便利な関数です。
行や列の形に関係なく、一つの縦長リストに整形できます。

=FLATTEN(A1:C3)

と書けば、A1~C3のすべての値を縦に並べたリストが取得できます。

ご覧のように、基本的には行列の「行」が優先して表示されます。
1→2→3→4…の順番。

列を優先したい場合、取得する複数行列リストにTRANSPOSE関数を加えると実現できます。

=FLATTEN(TRANSPOSE(A1:C3))

1→4→7→2…の順番。

なぜ複数行のデータ処理に便利なのか?

複数セルに分かれたデータを一括で扱いたいとき、手動でコピペしていては効率が悪いです。
また、他の関数たちを組み合わせる必要があるため複雑になりがちです。
FLATTENを使えば、行・列の形を気にせずに一つの「リスト」として集約でき、後工程の UNIQUEFILTER と組み合わせやすくなります。

「後処理が楽になる」というのがめちゃくちゃ大切!

使用例:複数行セルをリスト化する方法

想定する入力データ

例えば以下のような形式で、複数のセルにカンマ区切りの文字列が含まれているとします。

A列
apple,banana
banana,orange
grape,apple

使用する数式の全体像

このようなデータを一括でリスト化するには、次のような式を使います。

=ArrayFormula(SPLIT(FLATTEN(SPLIT(A1:A3, ",")), ","))

各関数の組み合わせの意味と解説

内容
SPLIT(A1:A3, ",")各セル内のカンマ区切りの要素をバラす
FLATTEN(…)バラした要素を縦一列に並べる
SPLIT(…, ",")さらに分割された文字列を整理
ArrayFormula(…)配列関数を一括で適用

分解して考えていくと、意外と簡単ですね!

実用例:タグ一覧や選択肢のマスター整理に応用

マーケティングやアンケートデータの整形

例えばアンケートで「好きな果物」を複数選択肢で受け取った場合、FLATTENを活用すると、全回答を1つのリストに整形しやすくなります。さらに UNIQUE 関数と組み合わせれば、集計・分析にそのまま使えるマスター一覧の完成です。

フィルタリングや重複削除にも有効

=UNIQUE(ArrayFormula(SPLIT(FLATTEN(SPLIT(A1:A10, ",")), ",")))

このような式を使えば、重複なしの一覧を簡単に取得可能。社内マスタの統一・整備やデータクリーニングにも活用できます。

注意点とよくあるミス

空白セルが混ざるとどうなる?

空白セルを含む場合、FLATTEN によって空欄の要素も出力される可能性があります。必要に応じて FILTERIF を組み合わせ、空欄を除外するのがおすすめです。

筆者がよくやる処理は以下です。
FLATTENで1列のリストを取得→そのリストに対してFILTER関数で「空白を除く」処理をする。

=FILTER(FLATTEN(A1:C3),FLATTEN(A1:C3)<>"")

5が抜けている表

セルが多すぎると処理が重くなる?

大量のデータを扱う場合、FLATTEN を含む配列式はやや動作が遅くなることがあります。
その際は列数・範囲を絞る、あるいは QUERY 関数などへの切り替えを検討してください。

まとめ:FLATTENは地味だけど超便利な裏技関数

まとめ

  • 複数行・複数列のデータを1列にまとめたいとき、FLATTENは抜群の効果
  • 特に SPLITUNIQUEArrayFormula との組み合わせが鉄板
  • 一見地味でも、実務で役立つシーンが非常に多い

この1式を知っておくだけで、毎回フィルタや関数を何段階も組む必要がなくなります。
地味ですが超便利な数式なので、「使いどころ」をぜひ意識して活用してみてください。


この記事を書いた人

今村 壱生(IMAMURA Issei)詳細はこちら
29歳のエンジニア兼マーケター。Re PROViSTAとして、生成AI、Webアプリ開発、業務自動化、BI導入、Web広告運用など、幅広い分野で活動中。システム構築では、要件定義から設計・実装・運用まで一貫して対応。また、小説執筆も手がけるなど、クリエイティブな一面も持つ。