
ArrayFormulaってなに?
ArrayFormulaは「複数のセルに対して、一括で処理を行える」スプレッドシートの非常に強力な関数です。
通常の関数では1セルずつ関数をコピーして使いますが、ArrayFormulaを使えば複数行にまたがる処理を一気に適用できます。
=ArrayFormula(A2:A * 2)
このように書くだけで、A2以降の値すべてに2倍の計算が一括で適用されます。
そのため
- 最終行がどこになるかわからない場合
- これから行方向に入力していく
場合、毎回数式をコピーするもしくは入力されるであろう箇所まであらかじめ数式をコピーしておく必要がありません。
ArrayFormulaの基本形
単純な数値処理を一括で行う
=ArrayFormula(A2:A + B2:B)
→ A列とB列の対応するセルを足し算し、結果を一括で表示します。
IF関数との組み合わせで条件分岐も可能
=ArrayFormula(IF(A2:A > 100, "合格", "不合格"))
→ A列の値が100より大きければ「合格」、そうでなければ「不合格」を表示します。
ArrayFormulaの入力ショートカット
実は、ArrayFormulaは毎回手打ちしなくても、例えば上記の数式だと
IF(A2:A > 100, "合格", "不合格")
まで入力した状態で
- Windows:Ctrl + Shift + Enter
- Mac:Command + Shift + Enter
で簡単に適用が可能です!
実用テクニック:配列と他関数を組み合わせる
SPLIT・FLATTENと組み合わせて文字列を分解
=ArrayFormula(SPLIT(FLATTEN(SPLIT(A2:A4, ",")), ","))
→ 複数行・カンマ区切りの文字列をすべて分解して1列にまとめられます。
リストデータの整形に便利です。
FLATTEN関数についてはこちらの記事をご覧ください。
TEXT・DATE関数と併用して日付を一括フォーマット
=ArrayFormula(TEXT(A2:A, "yyyy/mm/dd"))
→ A列の日付をすべて「yyyy/mm/dd」形式に変換して表示。
注意点とトラブル対策
例えば
- 行数が多すぎるとパフォーマンスが低下
- 数式が「配列出力」になるため、途中にデータを入れると上書きされる
- 絶対参照($)の扱いに注意(列や行のズレに注意)
まとめ|ArrayFormulaを使えば手間を減らしてミスも防げる
まとめ
- 配列のように一括処理できる
- IFやTEXTなどの他関数との相性も抜群
- 複雑な処理もシンプルに記述可能
→ 一度覚えておけば、毎日の業務や作業を強力にサポートしてくれる関数です。
この記事を書いた人

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

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を使えば、行・列の形を気にせずに一つの「リスト」として集約でき、後工程の UNIQUE や FILTER と組み合わせやすくなります。
「後処理が楽になる」というのがめちゃくちゃ大切!
使用例:複数行セルをリスト化する方法
想定する入力データ
例えば以下のような形式で、複数のセルにカンマ区切りの文字列が含まれているとします。
| A列 |
|---|
| apple,banana |
| banana,orange |
| grape,apple |
使用する数式の全体像
このようなデータを一括でリスト化するには、次のような式を使います。
=ArrayFormula(SPLIT(FLATTEN(SPLIT(A1:A3, ",")), ","))

ArrayFormula関数についてはこちらの記事をご覧ください。
各関数の組み合わせの意味と解説
| 式 | 内容 |
|---|---|
SPLIT(A1:A3, ",") | 各セル内のカンマ区切りの要素をバラす |
FLATTEN(…) | バラした要素を縦一列に並べる |
SPLIT(…, ",") | さらに分割された文字列を整理 |
| ArrayFormula(…) | 配列関数を一括で適用 |
分解して考えていくと、意外と簡単ですね!
実用例:タグ一覧や選択肢のマスター整理に応用
マーケティングやアンケートデータの整形
例えばアンケートで「好きな果物」を複数選択肢で受け取った場合、FLATTENを活用すると、全回答を1つのリストに整形しやすくなります。さらに UNIQUE 関数と組み合わせれば、集計・分析にそのまま使えるマスター一覧の完成です。
フィルタリングや重複削除にも有効
=UNIQUE(ArrayFormula(SPLIT(FLATTEN(SPLIT(A1:A10, ",")), ",")))
このような式を使えば、重複なしの一覧を簡単に取得可能。社内マスタの統一・整備やデータクリーニングにも活用できます。

注意点とよくあるミス
空白セルが混ざるとどうなる?
空白セルを含む場合、FLATTEN によって空欄の要素も出力される可能性があります。必要に応じて FILTER や IF を組み合わせ、空欄を除外するのがおすすめです。
筆者がよくやる処理は以下です。FLATTENで1列のリストを取得→そのリストに対してFILTER関数で「空白を除く」処理をする。
=FILTER(FLATTEN(A1:C3),FLATTEN(A1:C3)<>"")

セルが多すぎると処理が重くなる?
大量のデータを扱う場合、FLATTEN を含む配列式はやや動作が遅くなることがあります。
その際は列数・範囲を絞る、あるいは QUERY 関数などへの切り替えを検討してください。
まとめ:FLATTENは地味だけど超便利な裏技関数
まとめ
- 複数行・複数列のデータを1列にまとめたいとき、
FLATTENは抜群の効果 - 特に
SPLIT・UNIQUE・ArrayFormulaとの組み合わせが鉄板 - 一見地味でも、実務で役立つシーンが非常に多い
この1式を知っておくだけで、毎回フィルタや関数を何段階も組む必要がなくなります。
地味ですが超便利な数式なので、「使いどころ」をぜひ意識して活用してみてください。
この記事を書いた人

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