Googleスプレッドシートで同じ数式を列のすべてのセルに適用したいとお考えではありませんか。一つひとつのセルに数式を手入力するのは非効率ですし、データが増えるたびにコピーし直すのは面倒です。この記事では、ARRAYFORMULA関数を使って一つの数式で列全体に計算を一括適用する方法を解説します。数式の入力作業を大幅に減らし、スプレッドシートの管理を効率化できます。
【要点】ARRAYFORMULAで列全体に数式を一括適用するポイント
- =ARRAYFORMULA(数式)の基本構文: 数式の先頭にARRAYFORMULAを付けるだけで、列全体に計算を適用できます。
- 範囲指定の自動拡張: 新しい行が追加されても、その行まで自動的に数式が反映されます。
- 他の配列関数との組み合わせ: SUMIFやVLOOKUPなど、単体では配列対応でない関数もARRAYFORMULAでラップすると列全体に適用できます。
ADVERTISEMENT
目次
ARRAYFORMULAが一括適用を可能にする仕組み
ARRAYFORMULAは、数式が配列(複数の値)を返すように変換する関数です。通常の数式は単一のセルに対して計算を行いますが、ARRAYFORMULAでラップすると、引数に指定した範囲の各行に対して同じ計算を実行します。例えば、A列とB列の合計をC列に表示したい場合、C1セルに「=ARRAYFORMULA(A:A+B:B)」と入力すれば、C列全体にA+Bの結果が一括で表示されます。この仕組みにより、数式のコピーやドラッグが不要になり、スプレッドシートのメンテナンスが容易になります。
ARRAYFORMULAで列全体に数式を適用する手順
ここでは、基本的な使い方から応用までを具体的に解説します。
基本的な使い方:単純な計算を列全体に適用する
- 結果を表示したい列の最初のセルを選択します。
例えば、C1セルを選択します。このセルにARRAYFORMULAを含む数式を入力します。 - ARRAYFORMULAでラップした数式を入力します。
「=ARRAYFORMULA(A:A+B:B)」のように、通常の数式をARRAYFORMULAで囲みます。ここでA:AとB:Bは列全体を指します。数式の範囲は列全体でも、特定の範囲(例:A2:A100)でも構いません。 - Enterキーを押して確定します。
すると、C列のすべての行に自動的に計算結果が表示されます。数式はC1セルに入っているだけで、他のセルには数式が入っていない点が通常のコピーと異なります。
応用:IF関数と組み合わせて条件付き計算を行う
- 条件式を含む数式をARRAYFORMULAでラップします。
例えば、A列の値が10より大きい場合はそのまま表示し、そうでない場合は空白にするには、次のように入力します。「=ARRAYFORMULA(IF(A:A>10, A:A, “”))」。 - Enterキーを押して適用します。
すると、A列の各行に対して条件が評価され、条件を満たす行だけ値が表示されます。条件に応じて異なる計算を適用する場合も同様です。
応用:VLOOKUPをARRAYFORMULAで使って複数行の検索を一括実行
- 検索値の範囲を指定します。
例えば、B列の値をキーに別シートのデータを検索する場合、C1セルに「=ARRAYFORMULA(IF(B:B=””, “”, VLOOKUP(B:B, 別シート!A:C, 3, FALSE)))」と入力します。ここでIFを使っているのは、空白行でエラーが出るのを防ぐためです。 - Enterキーで確定します。
すると、B列の値に基づいて別シートからデータが一括取得されます。通常のVLOOKUPは単一セルにしか対応しませんが、ARRAYFORMULAでラップすることで配列として扱えます。
ARRAYFORMULA使用時の注意点とよくあるトラブル
数式が正しく反映されず、一部のセルだけ計算されない
ARRAYFORMULAで指定した範囲に、すでに何かデータが入力されていると、そのセルは上書きされずにエラーになる場合があります。例えば、C列の一部のセルに手動で値が入っていると、そのセルは無視され、数式が適用されません。対処方法としては、あらかじめ範囲をクリアするか、数式の範囲を特定の行指定にして、データのない行に適用するようにします。
配列サイズが合わずにエラーが出る
ARRAYFORMULA内で複数の範囲を指定するとき、それぞれの範囲の行数が一致していないとエラーが発生します。例えば、「=ARRAYFORMULA(A:A+B:B)」は問題ありませんが、一方がA1:A100、もう一方がB1:B101だとエラーになります。必ず同じ行数を指定するか、列全体(A:A、B:B)を使うと自動的に調整されます。
ARRAYFORMULAの結果がキャッシュされて更新されない
スプレッドシートの計算設定が「手動」になっていると、データを変更しても結果が更新されないことがあります。この場合は、メニューの「ファイル」→「設定」→「計算」で「変更時」にチェックを入れてください。また、変更後に「Ctrl+Shift+F9」で再計算すると強制的に更新されます。
ADVERTISEMENT
通常の数式コピーとARRAYFORMULAの比較
| 項目 | 通常の数式コピー | ARRAYFORMULA |
|---|---|---|
| 入力の手間 | 数式をセルに入力後、ドラッグまたはダブルクリックでコピーする必要がある | 最初のセルに一つ入力するだけで、列全体に自動適用される |
| データ追加時の対応 | 新しい行が増えるたびに手動で数式をコピーし直す必要がある | 範囲を列全体(例:A:A)にしておけば、新しい行にも自動で反映される |
| エラーのリスク | コピー忘れや範囲のずれが発生しやすい | 一貫性が保たれ、数式の修正も一箇所で済む |
| 対応する関数 | ほとんどの関数がそのまま使える | 一部の関数はそのままでは使えず、IFやARRAYFORMULAでラップする必要がある(例:VLOOKUP) |
まとめ
ARRAYFORMULAを使えば、列全体に数式を一括適用して作業効率を大幅に向上できます。基本的な構文は「=ARRAYFORMULA(数式)」で入力するだけで、あとは自動で計算が広がります。特に、IFやVLOOKUPと組み合わせると、条件付き集計や外部参照も列全体に一気に適用できて便利です。新しい行が追加されても数式を再コピーする必要はありません。まずは単純な足し算から試し、応用を広げてみてください。ARRAYFORMULAを使いこなすと、スプレッドシートの作業時間が格段に短縮できます。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleスプレッドシートの人気記事ランキング
- 【Googleスプレッドシート】GOOGLEFINANCE関数で株価・為替を取得!リアルタイムデータの呼び出し
- 【Googleスプレッドシート】印刷範囲を指定して印刷!特定範囲だけPDFや紙に出す手順
- 【Googleスプレッドシート】複合グラフで棒と折れ線を同時表示!2軸グラフの作り方
- 【Googleスプレッドシート】FILTER関数で条件に合う行だけ抽出!数式1つで動的な絞り込み
- 【Googleスプレッドシート】フィルタ表示で他の人の表示を変えずに絞り込み!共有時の使い分け
- 【Googleスプレッドシート】重複データを抽出して表示!COUNTIFと条件付き書式の併用
- 【Googleスプレッドシート】新しいスプレッドシートを作成する3つの方法!ドライブ・URL・テンプレート
- 【Googleスプレッドシート】ARRAYFORMULAで列全体に数式を一括適用!セル分の入力を不要に
- 【Googleスプレッドシート】データ範囲を動的に伸縮させる!INDIRECTと参照範囲のコツ
- 【Googleスプレッドシート】共有解除と権限の取り消し!アクセスを完全に閉じる手順
