SUMIFS関数は複数の条件に一致するデータを集計できる便利な関数ですが、標準ではAND条件(すべての条件を満たす)でしか動作しません。「AまたはB」というOR条件で集計したい場合、工夫が必要です。この記事では、ExcelとGoogleスプレッドシートそれぞれでOR条件を実現する具体的な方法を解説します。
SUMIFS関数の基本(AND条件の動作)
SUMIFS関数は、複数の条件をすべて満たす行の数値を合計する関数です。
=SUMIFS(合計範囲, 条件範囲1, 条件1, 条件範囲2, 条件2, ...)
▼ 基本的な使用例(AND条件)
以下のようなデータで、「担当者が田中」かつ「エリアが関東」の売上合計を求める場合:
=SUMIFS(C2:C10, A2:A10, "田中", B2:B10, "関東")
この数式は「田中かつ関東」という2つの条件を同時に満たす行のみを集計します。
OR条件が必要になる場面
実務では、「エリアが関東または関西」「商品AまたはB」といった「いずれかの条件を満たす」OR条件での集計が必要になるケースがあります。
SUMIFS関数で同じ列に対して複数の条件を指定しようとすると、結果は「0」になります。
=SUMIFS(C2:C10, B2:B10, "関東", B2:B10, "関西")
この数式は「関東かつ関西」という矛盾する条件になるため、該当するデータが存在せず0を返します。
ExcelでOR条件を実現する方法
方法1:SUM関数と配列定数を組み合わせる
最も効率的な方法は、SUM関数でSUMIFS関数を包み、配列定数を使う方法です。
▼ 基本構文
=SUM(SUMIFS(合計範囲, 条件範囲, {"条件A", "条件B"}))
▼ 実践例:エリアが関東または関西の売上合計
=SUM(SUMIFS(C2:C10, B2:B10, {"関東", "関西"}))
▼ 動作の仕組み
- SUMIFS関数が「関東」と「関西」それぞれの合計を計算
- 結果は配列 {950, 300} のような形式で返される
- SUM関数がその配列を合計して最終結果を出力
方法2:複数のSUMIFS関数を足す
シンプルに複数のSUMIFS関数を加算する方法もあります。
=SUMIFS(C2:C10, B2:B10, "関東") + SUMIFS(C2:C10, B2:B10, "関西")
この方法は直感的ですが、条件が増えると数式が長くなります。
3つ以上のOR条件を指定する
配列定数を使えば、3つ以上の条件も簡単に指定できます。
=SUM(SUMIFS(C2:C10, B2:B10, {"関東", "関西", "中部"}))
AND条件とOR条件を組み合わせる
「エリアが関東または関西」かつ「売上が500以上」のような複合条件も実現できます。
=SUM(SUMIFS(C2:C10, B2:B10, {"関東", "関西"}, C2:C10, ">=500"))
▼ 条件の組み合わせパターン
- 配列定数で指定した条件:OR条件として動作
- 通常の引数で指定した条件:AND条件として動作
Googleスプレッドシートでの実装方法
Googleスプレッドシートでは、SUMPRODUCT関数を使う方法が確実です。
SUMPRODUCT関数を使ったOR条件
▼ 基本構文
=SUMPRODUCT((条件範囲="条件A")+(条件範囲="条件B"), 合計範囲)
▼ 実践例:担当者が田中または佐藤の売上合計
=SUMPRODUCT((A2:A10="田中")+(A2:A10="佐藤"), C2:C10)
▼ 記号の意味
- +:OR条件(どちらか一方を満たす)
- *:AND条件(両方を満たす)
AND条件とOR条件を組み合わせる
「担当者が田中」かつ「エリアが関東または関西」の場合:
=SUMPRODUCT((A2:A10="田中")*((B2:B10="関東")+(B2:B10="関西")), C2:C10)
実践例:営業データの集計
▼ データ例
| 担当者 | エリア | 売上 |
|---|---|---|
| 田中 | 関東 | 500 |
| 佐藤 | 関西 | 300 |
| 鈴木 | 関東 | 450 |
▼ ケース1:エリアが関東または関西の売上合計(Excel)
=SUM(SUMIFS(C2:C10, B2:B10, {"関東", "関西"}))
結果:500 + 300 + 450 = 1,250
▼ ケース2:担当者が田中または佐藤の売上合計(Googleスプレッドシート)
=SUMPRODUCT((A2:A10="田中")+(A2:A10="佐藤"), C2:C10)
結果:500 + 300 = 800
よくある間違いと対処法
SUM関数を忘れる
配列定数を使う場合、SUM関数で包まないと結果が横に展開されてしまいます。
▼ 間違った例
=SUMIFS(C2:C10, B2:B10, {"関東", "関西"})
この数式では、「関東」の合計と「関西」の合計が別々のセルに表示されます。
▼ 正しい例
=SUM(SUMIFS(C2:C10, B2:B10, {"関東", "関西"}))
セル参照ができない
配列定数 {} 内では、セル参照が使えません。条件を直接入力する必要があります。
▼ 動作しない例
=SUM(SUMIFS(C2:C10, B2:B10, {E2, F2}))
セル参照を使いたい場合は、TEXTSPLIT関数やINDIRECT関数を組み合わせる高度なテクニックが必要になります。
条件範囲のサイズ不一致
合計範囲と条件範囲のサイズが異なると、#VALUE!エラーが発生します。
=SUM(SUMIFS(C2:C10, B2:B5, {"関東", "関西"}))
すべての範囲を統一してください。
DSUM関数という選択肢
ExcelではDSUM関数を使うことで、OR条件を直感的に指定できます。
▼ DSUM関数の構文
=DSUM(データベース範囲, 集計列, 条件範囲)
DSUM関数は条件表を別途作成する必要がありますが、複雑な条件を視覚的に管理できるメリットがあります。
まとめ
SUMIFS関数でOR条件を実現する方法は、ExcelとGoogleスプレッドシートで異なります。
▼ Excel
- SUM関数と配列定数を組み合わせる
- 書式:=SUM(SUMIFS(合計範囲, 条件範囲, {“条件A”, “条件B”}))
- 配列定数内ではセル参照不可
▼ Googleスプレッドシート
- SUMPRODUCT関数を使用
- 書式:=SUMPRODUCT((条件範囲=”条件A”)+(条件範囲=”条件B”), 合計範囲)
- 「+」がOR条件、「*」がAND条件
▼ 使い分けのポイント
- 条件が2〜3個:配列定数やSUMPRODUCT関数が効率的
- 条件が複雑:DSUM関数や補助列の活用を検討
- 頻繁に変更する条件:条件表を作成してDSUM関数を活用
OR条件での集計は一見複雑に見えますが、仕組みを理解すれば様々な集計業務で活用できます。
コメント