スプレッドシートARRAYFORMULA関数|使い方・IF組み合わせ・VLOOKUP連携

スプレッドシートのARRAYFORMULA関数を使えば、1つのセルに数式を入れるだけで列全体に自動計算を反映できます!数式のコピペ地獄から卒業しましょう。
- ARRAYFORMULA関数の構文と仕組み、通常の数式との違い
- 四則演算・文字列結合・IF条件・日付計算の基本パターン4選
- VLOOKUP・SUMIFS・IFERROR・REGEXとの組み合わせテクニック
- 自動連番・ステータス判定・売上ダッシュボードの実践例
- よくあるエラーの原因と対処法、非対応関数一覧
- GASでARRAYFORMULA相当の処理を実装するコード例
パターンを選ぶと、D2セルに入力した1つの数式が列全体に展開される様子を確認できます。
| A | B | C | |
|---|---|---|---|
| 1 | 商品名 | 単価 | 数量 |
| 2 | ノートPC | 80,000 | 3 |
| 3 | マウス | 2,500 | 10 |
| 4 | キーボード | 5,000 | 8 |
| 5 | モニター | 35,000 | 2 |
| 6 | USBハブ | 1,500 | 15 |
| A | B | C | D | |
|---|---|---|---|---|
| 1 | 商品名 | 単価 | 数量 | 合計 |
| 2 | ノートPC | 80,000 | 3 | 240,000 |
| 3 | マウス | 2,500 | 10 | 25,000 |
| 4 | キーボード | 5,000 | 8 | 40,000 |
| 5 | モニター | 35,000 | 2 | 70,000 |
| 6 | USBハブ | 1,500 | 15 | 22,500 |
| A | B | D | |
|---|---|---|---|
| 1 | 商品名 | 単価 | 税込価格 |
| 2 | ノートPC | 80,000 | 88,000 |
| 3 | マウス | 2,500 | 2,750 |
| 4 | キーボード | 5,000 | 5,500 |
| 5 | モニター | 35,000 | 38,500 |
| 6 | USBハブ | 1,500 | 1,650 |
| A | B | C | D | |
|---|---|---|---|---|
| 1 | 商品名 | 単価 | 数量 | 判定 |
| 2 | ノートPC | 80,000 | 3 | ✅高額 |
| 3 | マウス | 2,500 | 10 | 通常 |
| 4 | キーボード | 5,000 | 8 | 通常 |
| 5 | モニター | 35,000 | 2 | 通常 |
| 6 | USBハブ | 1,500 | 15 | 通常 |
=ARRAYFORMULA(B2:B*C2:C) と入力するだけで、D3以降にも自動で計算結果が展開されます。各行にコピーする必要はありません。=ARRAYFORMULA(B2:B*1.1) で全行の税込価格を一括計算。新しい行が追加されても自動で計算が反映されます。IF(B2:B="","",...) で空行を除外するのがベストプラクティスです。ARRAYFORMULA関数とは?1つの数式で列全体を処理
GoogleスプレッドシートのARRAYFORMULA関数は、1つのセルに入力した数式を列全体(または行全体)に一括で適用できる関数です。通常であれば各行にコピーしなければならない数式を、先頭セルに1つ書くだけで自動的に展開してくれます。
たとえば「B列の単価 × C列の数量」を全行に計算したい場合、通常は =B2*C2 と入力してから下方向にコピーしますが、ARRAYFORMULAなら =ARRAYFORMULA(B2:B*C2:C) と1つ書くだけで済みます。新しい行が追加されても自動で計算が反映される点も大きなメリットです。
ARRAYFORMULA関数の構文と仕組み
ARRAYFORMULA関数の構文は非常にシンプルです。
=ARRAYFORMULA(配列数式)
| 引数 | 説明 | 例 |
|---|---|---|
| 配列数式 | 範囲を使った数式や関数の組み合わせ | B2:B*C2:C、IF(A2:A=””,””,A2:A&”様”) |
ポイントは、通常のセル参照(B2)ではなく範囲参照(B2:B)を使うことです。範囲参照にすることで、ARRAYFORMULAが「この範囲の全行に数式を適用してください」と解釈し、結果を配列として展開します。
範囲の指定方法には2つのパターンがあります。
| 指定方法 | 意味 | 使い分け |
|---|---|---|
| B2:B | B2から列の最終行まで(無限範囲) | 行数が増減するデータ向き |
| B2:B100 | B2からB100まで(固定範囲) | 行数が決まっている場合、パフォーマンス重視 |
通常の数式との違い(図解)
通常の数式とARRAYFORMULAの違いを比較してみましょう。
| 比較項目 | 通常の数式 | ARRAYFORMULA |
|---|---|---|
| 入力セル数 | 各行に1つずつ入力 | 先頭セルに1つだけ |
| 新しい行の追加時 | 手動で数式をコピーする必要あり | 自動的に計算が反映される |
| 数式の管理 | 行ごとに異なる数式が入る可能性 | 1つの数式で統一管理 |
| 処理速度(大量行) | 行数に比例して重くなる | 一括処理のため比較的高速 |
| 他のユーザーの編集 | 数式を上書き・削除されるリスクあり | 先頭セル以外は編集不可で安全 |
特に共有シートでの運用では、他のメンバーが誤って数式を消してしまうリスクを防げるため、ARRAYFORMULAの方が安全です。
Excelとの違い — Ctrl+Shift+Enter不要
Excelにも配列数式(CSE数式)がありますが、Ctrl+Shift+Enterで確定する必要があり、操作を知らないと使えません。GoogleスプレッドシートではARRAYFORMULAで囲むだけで配列処理が実行されるため、直感的に使えます。
| 比較項目 | Excel(CSE数式) | Excel(スピル) | スプレッドシート(ARRAYFORMULA) |
|---|---|---|---|
| 入力方法 | Ctrl+Shift+Enter | 通常のEnter | 通常のEnter |
| 展開方向 | 事前に範囲選択が必要 | 自動展開 | 自動展開 |
| 対応関数 | 限定的 | Dynamic Array対応関数のみ | ほぼ全ての数式に対応 |
| バージョン | 全バージョン | Microsoft 365以降 | すべてのスプレッドシート |
なお、Excel 365以降の「スピル」機能はARRAYFORMULAに近い動作をしますが、対応関数が限定的です。ARRAYFORMULAの方が幅広い関数と組み合わせることができます。
基本編|ARRAYFORMULAの基本パターン4選
ここからは実際の数式例を使って、ARRAYFORMULAの基本的な使い方を4つのパターンで紹介します。
四則演算を列全体に適用
最も基本的な使い方は、四則演算を列全体に適用するパターンです。売上表の「単価 × 数量 = 合計」を一括計算する例を見てみましょう。
// D2セルに入力 → D列全体に結果が展開される
=ARRAYFORMULA(B2:B * C2:C)
// 税込価格を一括計算(10%の消費税)
=ARRAYFORMULA(B2:B * 1.1)
// 割引後の価格を計算(C列が割引率)
=ARRAYFORMULA(B2:B * (1 - C2:C))
B列やC列にデータが入っている行だけ計算結果が表示されます。空行には0が表示されることがありますが、後述するIFとの組み合わせで空行を除外できます。
文字列結合を一括処理
文字列の結合も列全体に適用できます。「姓」と「名」を結合してフルネームを作ったり、敬称をつけたりする例です。
// 姓(A列)+ 名(B列)を結合してフルネーム作成
=ARRAYFORMULA(A2:A & " " & B2:B)
// メールアドレスを一括生成
=ARRAYFORMULA(A2:A & "@example.com")
// 空行を除外して結合
=ARRAYFORMULA(IF(A2:A="", "", A2:A & " " & B2:B))
&演算子による文字列結合はARRAYFORMULAと非常に相性が良く、データクレンジングや表記統一の場面で活躍します。
条件式(IF)との組み合わせ
ARRAYFORMULAとIF関数の組み合わせは、最も頻繁に使われるパターンです。空行の制御や条件分岐を一括で処理できます。
// 空行には何も表示しない + 合計計算
=ARRAYFORMULA(IF(B2:B="", "", B2:B * C2:C))
// 売上が10万円以上なら「達成」、未満なら「未達」
=ARRAYFORMULA(IF(D2:D="", "", IF(D2:D>=100000, "達成", "未達")))
// 複数条件の組み合わせ(IFS関数的な使い方)
=ARRAYFORMULA(IF(A2:A="","",(IF(D2:D>=200000,"S",IF(D2:D>=100000,"A",IF(D2:D>=50000,"B","C"))))))
最初のIF条件で空行チェックを入れるのがベストプラクティスです。これを省略すると、データがない行にも「未達」「C」などの値が表示されてしまいます。
日付計算を一括処理
日付データに対する計算もARRAYFORMULAで一括処理できます。期限管理や経過日数の計算に便利です。
// 納期(A列)までの残日数を一括計算
=ARRAYFORMULA(IF(A2:A="", "", A2:A - TODAY()))
// 30日後の日付を一括計算
=ARRAYFORMULA(IF(A2:A="", "", A2:A + 30))
// 年月を抽出して「2026年3月」形式に変換
=ARRAYFORMULA(IF(A2:A="", "", YEAR(A2:A) & "年" & MONTH(A2:A) & "月"))
日付計算の結果が数値(シリアル値)で表示される場合は、セルの表示形式を「日付」に変更してください。
ARRAYFORMULAの基本パターンで最も重要なのは「空行チェックのIF」を必ずセットにすることです。実務では =ARRAYFORMULA(IF(A2:A="","",計算式)) をテンプレートとして覚えておくと、どんな場面でもスムーズに数式を組めます。Excelのスピル機能と違い、ARRAYFORMULAは明示的に空行制御できるため、共有シートで他メンバーが見ても「なぜ空行に値が出るの?」という混乱を防げます。
Q: ARRAYFORMULAの範囲を「B2:B100」のように限定すべき?それとも「B2:B」で列全体にすべき?
A: 基本的には「B2:B」で列全体を指定するのがおすすめです。行が増えても数式を修正する必要がありません。ただし、数万行を超える大規模データの場合はパフォーマンスに影響することがあるため、その場合は範囲を限定するか、GAS(Google Apps Script)での処理を検討してください。
応用編|他の関数との組み合わせテクニック
ARRAYFORMULAの真価は、他の関数と組み合わせたときに発揮されます。ここでは実務で特に役立つ4つの組み合わせを紹介します。
ARRAYFORMULA × VLOOKUP(自動VLOOKUP)
VLOOKUPを各行にコピーする作業は、ARRAYFORMULAで不要になります。商品コードから商品名を自動取得する例を見てみましょう。
// A列の商品コードを使って、マスターシートから商品名を一括取得
=ARRAYFORMULA(
IF(A2:A="", "",
VLOOKUP(A2:A, マスター!A:C, 2, FALSE)
)
)
// 第3引数を変えれば価格なども同様に取得可能
=ARRAYFORMULA(
IF(A2:A="", "",
VLOOKUP(A2:A, マスター!A:C, 3, FALSE)
)
)
重要なポイントは、VLOOKUPの第1引数(検索値)に範囲(A2:A)を指定することです。単一セル(A2)のままだと配列展開されません。詳しいVLOOKUPの使い方はVLOOKUP関数の使い方ガイドも参考にしてください。
ARRAYFORMULA × SUMIFS / COUNTIFS
SUMIFS・COUNTIFSとの組み合わせは、カテゴリ別の集計を一括で行う場面で活躍します。
// 担当者ごとの売上合計を一括計算
// G列に担当者名の一覧がある場合
=ARRAYFORMULA(
IF(G2:G="", "",
SUMIFS(D2:D, B2:B, G2:G)
)
)
// 担当者ごとの案件数を一括カウント
=ARRAYFORMULA(
IF(G2:G="", "",
COUNTIFS(B2:B, G2:G)
)
)
注意点として、SUMIFS / COUNTIFSをARRAYFORMULAで使う場合、条件範囲と合計範囲は同じ行数にする必要があります。B2:BとD2:D100のように行数が異なるとエラーになります。
ARRAYFORMULA × IFERROR(エラー処理付き一括処理)
VLOOKUPやSUMIFSで検索対象が見つからない場合、#N/A エラーが表示されます。IFERRORと組み合わせることで、エラーをスマートに処理できます。
// VLOOKUPでエラーの場合は「該当なし」と表示
=ARRAYFORMULA(
IF(A2:A="", "",
IFERROR(VLOOKUP(A2:A, マスター!A:C, 2, FALSE), "該当なし")
)
)
// 割り算でゼロ除算エラーを回避
=ARRAYFORMULA(
IF(A2:A="", "",
IFERROR(B2:B / C2:C, 0)
)
)
IFERRORはARRAYFORMULAの内側に配置します。外側に置くと、配列全体のうち1つでもエラーがあった場合に全ての結果がエラー扱いになってしまいます。
ARRAYFORMULA × REGEXMATCH / REGEXEXTRACT
Googleスプレッドシート独自の正規表現関数も、ARRAYFORMULAと組み合わせて一括処理できます。テキストデータのパターンマッチや抽出に強力です。
// メールアドレスからドメイン部分を一括抽出
=ARRAYFORMULA(
IF(A2:A="", "",
REGEXEXTRACT(A2:A, "@(.+)$")
)
)
// 電話番号のハイフンを一括除去
=ARRAYFORMULA(
IF(A2:A="", "",
REGEXREPLACE(A2:A, "-", "")
)
)
// テキストに「東京」を含むかチェック
=ARRAYFORMULA(
IF(A2:A="", "",
IF(REGEXMATCH(A2:A, "東京"), "対象", "対象外")
)
)
REGEX系関数はExcelにはない関数のため、Googleスプレッドシートならではのテクニックです。データクレンジングで特に威力を発揮します。
ARRAYFORMULA × VLOOKUPの組み合わせは実務で最も使用頻度が高いパターンです。ただし、参照先のマスターデータが数千行を超える場合、VLOOKUPよりINDEX+MATCHの方が高速に動作します。また、IFERRORは必ずARRAYFORMULAの「内側」に配置するのが鉄則です。外側に置くと1つのエラーで全行が巻き込まれ、原因特定が困難になります。
Q: ARRAYFORMULA × VLOOKUPが遅くなったときはどうすればいい?
A: まずVLOOKUPの検索範囲を必要最小限に絞りましょう(例: A:CをA1:C500に変更)。それでも改善しない場合はINDEX+MATCHへの書き換えが効果的です。さらに大規模データならGASでキャッシュを使った検索処理に切り替えることで劇的に高速化できます。
実践編|業務で使えるARRAYFORMULAの活用例
ここからは実際の業務シーンで使える、ARRAYFORMULAの実践的な活用例を3つ紹介します。
自動連番(空行はスキップ)
データ入力時に自動で連番を振る仕組みは、業務シートで非常に重宝します。ただし単純にROW関数を使うと空行にも番号が振られてしまうため、IF関数で制御します。
// A1セルに入力 → B列にデータがある行だけ連番を振る
=ARRAYFORMULA(
IF(B2:B="", "",
ROW(B2:B) - ROW(B2) + 1
)
)
この数式のポイントは ROW(B2:B) - ROW(B2) + 1 の部分です。ROW関数は行番号を返すため、データの開始行(2行目)を基準にして1から始まる連番を作っています。途中の行を削除しても連番が自動で振り直されます。
ステータス自動判定(完了/未完了/期限切れ)
タスク管理シートで、期限日と完了フラグからステータスを自動判定する例です。手動でのステータス更新忘れを防げます。
// A列: タスク名、B列: 期限日、C列: 完了日(空欄なら未完了)
// D2セルに入力
=ARRAYFORMULA(
IF(A2:A="", "",
IF(C2:C<>"", "完了",
IF(B2:B
この数式は以下の優先順位で判定しています。
- 完了日が入力済み → 「完了」
- 期限日が今日より前 → 「期限切れ」
- 期限日まで3日以内 → 「もうすぐ期限」
- それ以外 → 「未完了」
条件付き書式と組み合わせれば、「期限切れ」を赤、「もうすぐ期限」を黄色で表示するなど、視覚的にもわかりやすいタスク管理シートが作れます。
売上集計ダッシュボード
売上データから、担当者別・月別の集計を自動化する例です。ARRAYFORMULAとSUMIFSを組み合わせて、ダッシュボードシートに集計結果を表示します。
// ダッシュボードシートのA列に担当者名一覧
// B2セルに入力 → 担当者ごとの売上合計
=ARRAYFORMULA(
IF(A2:A10="", "",
SUMIFS(売上データ!D:D, 売上データ!B:B, A2:A10)
)
)
// C2セルに入力 → 担当者ごとの案件数
=ARRAYFORMULA(
IF(A2:A10="", "",
COUNTIFS(売上データ!B:B, A2:A10)
)
)
// D2セルに入力 → 担当者ごとの平均単価
=ARRAYFORMULA(
IF(A2:A10="", "",
IFERROR(SUMIFS(売上データ!D:D, 売上データ!B:B, A2:A10) / COUNTIFS(売上データ!B:B, A2:A10), 0)
)
)
この方法であれば、売上データシートにデータが追加されるたびに、ダッシュボードの集計結果も自動で更新されます。ピボットテーブルを使わずに、数式だけで動的なダッシュボードを構築できるのがARRAYFORMULAの強みです。
Q: ARRAYFORMULAで作ったダッシュボードとピボットテーブル、どちらを使うべき?
A: リアルタイム更新が必要で、レイアウトを自由にカスタマイズしたい場合はARRAYFORMULA方式が向いています。一方、大量データの多軸分析やドリルダウンが必要な場合はピボットテーブルが便利です。実務では両方を併用し、経営ダッシュボードはARRAYFORMULA、詳細分析はピボットテーブルと使い分けるのがおすすめです。
よくあるエラーと対処法
ARRAYFORMULAを使い始めると、いくつかのエラーに遭遇します。ここでは代表的なエラーと対処法を解説します。
「配列の結果はマージされたセルに展開されません」
このエラーは、ARRAYFORMULAの展開先に結合セルが含まれている場合に表示されます。
対処法: 展開先の列にセル結合がないか確認し、結合を解除してください。「書式」→「セルを結合」→「結合を解除」で解除できます。ARRAYFORMULAを使う列では、原則としてセル結合を使わないようにしましょう。
展開先にデータがある場合のエラー
ARRAYFORMULAの結果を展開しようとした先のセルに、すでにデータや数式が入っている場合、数式が正しく展開されません。結果が先頭セルの1行分しか表示されない場合は、このケースを疑ってください。
対処法: 展開先のセルを空にしてください。ARRAYFORMULAを入力する列は、先頭セル以外を空欄にしておく必要があります。展開先にデータが入っていると、エラーは出ずに静かに1行分だけ表示されるケースが多いため、見落としやすいポイントです。
ARRAYFORMULA非対応の関数一覧
ARRAYFORMULAは多くの関数と組み合わせられますが、一部の関数は配列展開に対応していません。以下の関数はARRAYFORMULAで囲んでも各行に展開されないため注意が必要です。
| 非対応関数 | 代替方法 |
|---|---|
| GOOGLETRANSLATE | GASで翻訳処理を実装 |
| IMPORTXML / IMPORTHTML | GASでスクレイピング処理を実装 |
| INDIRECT | 固定範囲参照に書き換え、またはGAS |
| QUERY | QUERY関数自体が配列処理のため不要 |
| FILTER / SORT / UNIQUE | これらの関数自体が配列を返すため不要 |
| IMAGE | 各セルに個別入力 |
QUERY関数やFILTER関数は、それ自体が配列を返す関数のためARRAYFORMULAで囲む必要はありません。QUERY関数の使い方についてはQUERY関数の使い方ガイドで詳しく解説しています。
GASでARRAYFORMULA相当の処理を実装
ARRAYFORMULAでは対応できない処理や、数万行を超える大規模データの処理には、Google Apps Script(GAS)が有効です。ここではGASで配列処理を行う方法を紹介します。
GASで配列処理するコード例
以下のGASコードは、B列の単価 × C列の数量をD列に一括出力する処理です。ARRAYFORMULAと同じ結果を、スクリプトで実現しています。
function calculateTotal() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName('売上データ');
const lastRow = sheet.getLastRow();
// B列(単価)とC列(数量)を一括取得
const prices = sheet.getRange(2, 2, lastRow - 1).getValues();
const quantities = sheet.getRange(2, 3, lastRow - 1).getValues();
// 計算結果を配列で作成
const results = prices.map((price, i) => {
if (price[0] === '' || quantities[i][0] === '') return [''];
return [price[0] * quantities[i][0]];
});
// D列に一括出力
sheet.getRange(2, 4, results.length, 1).setValues(results);
}
このコードのポイントは、getValues() で一括取得し、setValues() で一括出力している点です。セルを1つずつ読み書きするよりも圧倒的に高速で、数万行のデータでも数秒で処理が完了します。
もう1つ、VLOOKUPの代わりにGASでマスターデータ参照を行う例も紹介します。
function vlookupByGAS() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const dataSheet = ss.getSheetByName('受注データ');
const masterSheet = ss.getSheetByName('商品マスター');
// マスターデータをMapに変換(高速検索用)
const masterData = masterSheet.getDataRange().getValues();
const masterMap = new Map();
masterData.forEach(row => masterMap.set(row[0], row[1]));
// 受注データのA列(商品コード)を取得
const lastRow = dataSheet.getLastRow();
const codes = dataSheet.getRange(2, 1, lastRow - 1).getValues();
// 商品名を一括検索して配列作成
const results = codes.map(code => {
if (code[0] === '') return [''];
return [masterMap.get(code[0]) || '該当なし'];
});
// B列に一括出力
dataSheet.getRange(2, 2, results.length, 1).setValues(results);
}
Mapオブジェクトを使うことで、VLOOKUPよりも高速な検索が可能です。マスターデータが数千件を超える場合に特に効果を発揮します。GASの基本についてはGAS入門ガイドを参照してください。
GASとARRAYFORMULAの使い分け
どちらを使うべきかは、処理の内容とデータ量で判断しましょう。
| 比較項目 | ARRAYFORMULA | GAS |
|---|---|---|
| リアルタイム更新 | データ変更時に自動再計算 | 手動実行またはトリガー設定が必要 |
| 大量データ | 数千行まで快適、数万行で重くなる | 数万行でも高速処理可能 |
| 対応処理 | 計算・文字列操作・条件分岐 | API連携・メール送信・ファイル操作なども可能 |
| 学習コスト | スプレッドシート関数の知識でOK | JavaScriptの知識が必要 |
| メンテナンス性 | 数式を見れば処理内容がわかる | コードの管理が必要 |
基本的にはARRAYFORMULAを優先し、ARRAYFORMULAでは対応できない処理(外部API連携、ARRAYFORMULA非対応関数の一括処理、超大量データ)に限りGASを使うのがおすすめです。
よくある質問(FAQ)
Q. ARRAYFORMULAとExcelのスピル機能の違いは?
A. ExcelのスピルはDynamic Array対応関数(FILTER、SORT、UNIQUEなど)で自動展開されますが、ARRAYFORMULAは明示的に関数で囲む必要があります。一方で、ARRAYFORMULAは四則演算やIF関数など、対応範囲がスピルよりも広いのが特徴です。Excelのスピルは Microsoft 365以降でのみ利用可能ですが、ARRAYFORMULAはすべてのGoogleスプレッドシートで使えます。
Q. ARRAYFORMULAは動作が重くなりますか?
A. 数百行程度では問題ありません。数万行以上の場合は計算に時間がかかることがあります。パフォーマンスを改善するには、無限範囲(B2:B)ではなく固定範囲(B2:B1000)に変更する、不要なARRAYFORMULAを削除する、といった対策が有効です。それでも重い場合はGASでの処理を検討してください。
Q. ARRAYFORMULA内でVLOOKUPが動かない場合は?
A. VLOOKUPの検索値に範囲(A2:A)を指定し、ARRAYFORMULAで囲む必要があります。検索値がセル参照1つ(A2)だと配列展開されません。また、空行チェック(IF(A2:A="", "", ...))を追加しないとエラーが大量に表示されることがあるため、IFまたはIFERRORで空行・エラーを制御しましょう。
Q. ARRAYFORMULAを削除すると値はどうなりますか?
A. 数式が削除されると展開されていた全ての値が消えます。値として残したい場合は、事前に展開された範囲をコピーし、「編集」→「特殊貼り付け」→「値のみ貼り付け」で値に変換してください。その後でARRAYFORMULA数式を削除すれば、値はそのまま残ります。
Q. QUERY関数とARRAYFORMULAはどちらを使うべき?
A. データの抽出・フィルタリング・並び替えにはQUERY関数、列全体への一括計算・変換にはARRAYFORMULAが適しています。たとえば「東京支店の売上だけ抽出」ならQUERY関数、「全行の税込価格を計算」ならARRAYFORMULAです。目的に応じて使い分けましょう。
まとめ
この記事では、GoogleスプレッドシートのARRAYFORMULA関数の使い方を基本から応用まで解説しました。
- 1つの数式で列全体を処理できるため、数式のコピー作業が不要になる
- IF関数との組み合わせで空行制御が必須 — これがARRAYFORMULAの基本パターン
- VLOOKUP・SUMIFSと組み合わせれば、マスターデータ参照や集計を自動化できる
- IFERRORをARRAYFORMULAの内側に配置して、エラーをスマートに処理する
- パフォーマンスが問題になったら固定範囲の指定やGASでの処理を検討する
- 非対応関数(GOOGLETRANSLATE、INDIRECTなど)にはGASで代替する
ARRAYFORMULAを使いこなせるようになると、共有シートでの数式管理が格段に楽になります。まずは「IF + 四則演算」の基本パターンから始めて、慣れてきたらVLOOKUPやSUMIFSとの組み合わせに挑戦してみてください。
大規模データや高度な自動化が必要な場合は、GAS入門ガイドもあわせて活用し、スプレッドシートの可能性を最大限に引き出しましょう。
「ARRAYFORMULAやGASを活用して業務を自動化したいけど、自分では難しい...」という方へ。スプレッドシートの自動化からGAS開発まで、業務効率化をサポートします。
LINEでExcelを気軽に学べる
