
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広告運用など、幅広い分野で活動中。システム構築では、要件定義から設計・実装・運用まで一貫して対応。また、小説執筆も手がけるなど、クリエイティブな一面も持つ。

【REGEXMATCH】文字列が複数のキーワードを含むかチェックする方法
スプレッドシートで「複数キーワードに該当するか」をチェックしたい
Googleスプレッドシートを使っていると、こんなニーズに直面することはありませんか?
この文章の中に “無料” や “割引” が含まれていたら、セルに『該当』と表示させたい
文章の中に特定のキーワードが含まれているかどうかをチェックしたいシーンはよくあります。
そんなとき思いつくのが IF と OR を組み合わせた方法ですが…
=IF(OR(A1="無料", A1="割引", A1="特典"), "該当", "なし")
この方法だと、「完全一致」しか見られず、文章の一部に含まれているだけでは引っかかりません。
さらに、キーワードが増えると関数がどんどん長く・読みにくくなるという問題もあります。
IF + REGEXMATCH で一発判定!
そんな悩みを解決するのが、IF 関数と REGEXMATCH 関数の組み合わせです。
=IF(REGEXMATCH(A1, "条件A|条件B|条件C"), "該当", "なし")
この1行で、A1のテキストに 「条件A」または「条件B」または「条件C」 のどれかが含まれていれば「該当」、どれも含まれていなければ「なし」と判定できます。
注目ポイント
REGEXMATCHは 正規表現(Regex) を使った検索機能。文字列の一部がパターンにマッチするかどうかをチェックできます"|"(パイプ記号)は OR(または) を意味し、複数のキーワードを一括で指定可能IFを使うことで、該当/非該当など、条件に応じた結果を表示できる
実用例:テキストに特定の単語が含まれているか
たとえば、A列に広告文がズラリと並んでいて、そこに「無料」「特典」「割引」などが含まれているかどうかをチェックしたいとします。
=IF(REGEXMATCH(A1, "無料|特典|割引"), "該当", "なし")


この数式をコピーしていくだけで、各文章がキーワードに該当するかを瞬時に判定できます。
もちろん、行数が多くても ArrayFormula などと組み合わせれば自動化可能です。
ArrayFormula関数についてはこちらの記事をご覧ください。
よくある用途例
- 広告文チェック(NGワード検出)
- 問い合わせメールの自動振り分け
- 商品説明やレビュー内の特定ワード抽出
- 顧客対応テンプレートの品質管理 など
REGEXMATCH で使えるその他のテクニック
REGEXMATCH は正規表現を使えるため、単語の一致だけでなく、もう少し柔軟な条件でもマッチさせることができます。
数字や英字パターンのチェックもできる
例えば
- 数字を含むか? →
[0-9] - 英字を含むか? →
[A-Za-z] - 特定の接頭語に一致 →
^無料(「無料」で始まる)
価格が含まれているかをチェックしたいなら以下のような使い方ができます。
=IF(REGEXMATCH(A1, "[0-9]+円"), "価格あり", "価格なし")
大文字・小文字を無視したいときは?
英単語を含むチェックなどで、「Free」「free」どちらでもマッチさせたいというケースもありますよね。
そんなときは、正規表現の前に (?i) を付ければOKです。
=IF(REGEXMATCH(A1, "(?i)free|discount|campaign"), "match", "none")
このように、大文字・小文字の違いを気にせず判定できます。
まとめ
複数のキーワードを含むかどうかをチェックする関数、以前は IF や OR のネストで苦労していた人も多いと思いますが、REGEXMATCH を使えば驚くほど簡潔に、かつ柔軟に書けるようになります。
| ポイント | 解説 |
|---|---|
| REGEXMATCH | 正規表現による文字列判定 |
| | | パイプ。OR条件と同様 |
| (?i) | 大文字・小文字を区別しない |
広告チェックや顧客対応、フォームの自動処理、レビュー管理など、あらゆる場面で役立つテクニックです。
「こういうのって関数でできるのかな?」と感じたときこそ、正規表現の出番かもしれません。
REGEXMATCHを応用したテンプレートを販売中!
業務でよく使うキーワード検索や複雑な条件分岐——そんな場面で威力を発揮するのが「REGEXMATCH」関数です。
このテンプレートは、筆者自身が実務で磨き上げたスプレッドシートのノウハウを詰め込んだ、すぐに使える実用ツールです。
「どう書けばいいかわからない」
「条件が複雑で式が組めない」
そんな悩みを、テンプレひとつで即解決します。
今なら 税込1,000円から、すぐにご利用いただけます。
初心者にもわかりやすい解説付きで、即戦力の一枚が手に入ります。
https://buy.stripe.com/eVqdR21fw0I3eK73F0fAc00
この記事を書いた人

今村 壱生(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広告運用など、幅広い分野で活動中。システム構築では、要件定義から設計・実装・運用まで一貫して対応。また、小説執筆も手がけるなど、クリエイティブな一面も持つ。

=JOIN("<BR>", UNIQUE(TRANSPOSE(SPLIT(A1, "<BR>"))))
この数式・関数で何ができるのか?
内容
スプレッドシートのセルに <BR> 区切りで複数の文字列が入っている場合、通常そのままでは重複や整形の問題が起こります。
この数式は、以下の処理を1行で完結します。
流れ
<BR>で区切られている文字列(重複あり)のセルに対して- 再び
<BR>区切りで1つのセルにまとめ直す <BR>で区切って分解- 重複の削除(ユニーク化)

上記では、<BR>区切りの文字列で「バナナ」が重複していますが、数式を適用した結果のセルでは🍌の出現回数が1回になっており、重複を削除できています。
用途例
- アンケートなどで複数選択されたタグの整理
- コピー&ペーストされた箇条書きデータの正規化
- 表示用の整形(HTML出力や他ツール連携)
数式の仕組みを分解して理解しよう
=JOIN("<BR>", UNIQUE(TRANSPOSE(SPLIT(A1, "<BR>"))))
ステップ解説
| 関数 | 役割 |
|---|---|
| SPLIT(A1, "<BR>") | セルA1の文字列を<BR>で分割し、配列として返す |
| TRANSPOSE(…) | 縦方向に展開(JOINの都合) |
| UNIQUE(…) | 重複を削除し、ユニークな値だけを抽出 |
| JOIN("<BR>", …) | <BR> で再び連結し、1つのセルに整形出力 |
関数を一つずつ見ていくと、難しいことは一つもありません。
よくある応用パターンとTips
改行コード(CHAR(10))での整形
HTMLタグではなく表示上の改行をしたい場合。
重要
「CHAR(10)」というのはCHAR関数といって、スプレッドシート・Excelの引数(文字コード)10番は「改行」を意味します。
めちゃくちゃ使います!
=JOIN(CHAR(10),UNIQUE(TRANSPOSE(SPLIT(A1,"<BR>"))))

カンマ区切り対応
CSVやタグ処理に便利。
=JOIN(",", UNIQUE(TRANSPOSE(SPLIT(A1, ","))))

トリムを加えて余分なスペースを除去
=JOIN("<BR>", UNIQUE(TRANSPOSE(ArrayFormula(TRIM(SPLIT(A1, "<BR>"))))))

ArrayFormula関数についてはこちらの記事をご覧ください。
よくあるエラーと対処法
| 問題 | 解決方法 |
|---|---|
| 結果が1行で改行されない | セルの書式設定で「折り返して全体を表示」を有効にする |
| 値が反映されない | 入力値に <BR> が入っていない or 全角・半角ミスがある |
| 重複が除去されない | スペース付きなど「見た目が同じで違う」ケースがある。TRIM()で対処可 |
まとめ:知っていると作業効率が段違い!
この1式を知っておくだけで、毎回フィルタや関数を何段階も組む必要がなくなります。
地味ですが超便利な数式なので、「使いどころ」をぜひ意識して活用してみてください。
この記事を書いた人

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