SUMIFS関数の使い方|複数条件で合計を求める方法
SUMIFS関数は、複数の条件に一致するデータの合計を求める関数です。「東京支店の4月の売上合計」のように、2つ以上の条件を指定して集計できます。SUMIF関数の拡張版として、実務で非常によく使われます。
この記事では、SUMIFS関数の基本から、さまざまな条件指定のテクニックを解説します。
SUMIFS関数の基本構文
=SUMIFS(合計対象範囲, 条件範囲1, 条件1, [条件範囲2, 条件2], ...)
引数の説明
| 引数 | 説明 | 必須/任意 |
|---|---|---|
| 合計対象範囲 | 合計を求めるセル範囲 | 必須 |
| 条件範囲1 | 最初の条件を適用する範囲 | 必須 |
| 条件1 | 条件範囲1に適用する条件 | 必須 |
| 条件範囲2 | 2番目の条件を適用する範囲 | 任意 |
| 条件2 | 条件範囲2に適用する条件 | 任意 |
| … | 最大127組の条件範囲と条件を指定可能 | 任意 |
SUMIF関数との大きな違いは、引数の順序です。SUMIFでは合計対象範囲が最後ですが、SUMIFSでは最初に指定します。
SUMIF関数との比較
| 項目 | SUMIF | SUMIFS |
|---|---|---|
| 条件の数 | 1つのみ | 複数指定可 |
| 合計対象範囲の位置 | 第3引数 | 第1引数 |
| 範囲サイズの制約 | 合計範囲は条件範囲と異なるサイズ可 | すべての範囲が同じサイズ |
実践例1:支店と月を指定した売上合計
以下の売上データから、特定の支店・月の売上合計を求めます。
| 支店 | 月 | 売上 |
|---|---|---|
| 東京 | 4月 | 500000 |
| 大阪 | 4月 | 300000 |
| 東京 | 5月 | 550000 |
| 大阪 | 5月 | 320000 |
| 東京 | 4月 | 480000 |
東京支店の4月の売上合計を求めます。
=SUMIFS(C2:C6, A2:A6, "東京", B2:B6, "4月")
結果は980000(500000 + 480000)です。A列が「東京」かつB列が「4月」の行のC列を合計しています。
実践例2:セル参照で条件を指定
条件をセル参照で指定すると、セルの値を変更するだけで集計対象を切り替えられます。
=SUMIFS(C2:C6, A2:A6, E2, B2:B6, F2)
E2に支店名、F2に月名を入力すると、対応する売上合計が表示されます。
実践例3:比較演算子を使った条件
数値の条件に比較演算子を使う例です。売上が50万円以上のデータだけを合計します。
=SUMIFS(C2:C6, C2:C6, ">=500000")
比較演算子を使う場合は、演算子と数値を文字列として結合して指定します。
セル参照と組み合わせる場合は、以下のように記述します。
=SUMIFS(C2:C6, C2:C6, ">=" & E2)
実践例4:日付範囲を条件に指定
特定の期間のデータを合計する例です。2026年4月1日から4月30日までの売上を合計します。
=SUMIFS(C2:C100, B2:B100, ">=" & DATE(2026,4,1), B2:B100, "<=" & DATE(2026,4,30))
同じ条件範囲に対して2つの条件(以上と以下)を指定することで、範囲指定を実現しています。DATE関数で日付を生成することで、日付の書式に依存しない安定した数式になります。
実践例5:ワイルドカードを使った部分一致
条件にワイルドカードを使って部分一致で集計する例です。
=SUMIFS(C2:C100, A2:A100, "*東京*")
支店名に「東京」を含むデータ(東京本店、東京支店など)の売上を合計します。
アスタリスク(*)は任意の文字列、クエスチョンマーク(?)は任意の1文字を表します。
# 「東」で始まるデータ
=SUMIFS(C2:C100, A2:A100, "東*")
# 3文字の支店名のデータ
=SUMIFS(C2:C100, A2:A100, "???")
よくあるエラーと対処法
結果が0になる
条件に一致するデータがない場合、SUMIFSは0を返します。エラーではなく正常な動作ですが、意図しない場合は以下を確認してください。
- 条件の文字列が正確か(全角半角、スペースの有無)
- 条件範囲と合計対象範囲のサイズが一致しているか
- 日付の書式が適切か
#VALUE!エラー
条件範囲と合計対象範囲の行数が異なる場合に発生します。すべての範囲が同じ行数であることを確認してください。
# エラーになる(行数が異なる)
=SUMIFS(C2:C10, A2:A5, "東京")
# 正しい(行数が一致)
=SUMIFS(C2:C10, A2:A10, "東京")
比較演算子の記述ミス
比較演算子を条件に含める場合、演算子を文字列として記述する必要があります。
# 間違い
=SUMIFS(C2:C10, C2:C10, >=500000)
# 正しい
=SUMIFS(C2:C10, C2:C10, ">=500000")
実務でのテクニック
テーブル機能との組み合わせ
Excelのテーブル機能を使うと、範囲が自動拡張されるため、データが追加されても数式の修正が不要です。
=SUMIFS(テーブル1[売上], テーブル1[支店], "東京", テーブル1[月], "4月")
空白以外を条件にする
空白でないセルの合計を求める場合は、「<>」を使います。
=SUMIFS(C2:C100, A2:A100, "<>")
条件付きの平均や個数
SUMIFS関数と同じ構文で、AVERAGEIFS関数(条件付き平均)やCOUNTIFS関数(条件付き個数)も利用できます。集計の目的に応じて使い分けてください。
Google スプレッドシートでの互換性
SUMIFS関数はGoogle スプレッドシートでも同じ構文で利用できます。動作もExcelと同一です。ワイルドカードや比較演算子の使い方も共通しています。
まとめ
SUMIFS関数は複数条件でデータを合計する関数です。
- 合計対象範囲を第1引数に指定する点に注意
- 比較演算子を使う場合は文字列として記述する
- DATE関数と組み合わせて日付範囲を指定できる
- ワイルドカードで部分一致の集計が可能
- すべての範囲は同じサイズにする必要がある
売上集計や経費分析など、業務データの集計で頻繁に使う関数です。条件の指定方法をマスターして、効率的なデータ分析に役立てましょう。