「部署ごとの売上を合計したい」「特定の期間だけ集計したい」。条件をつけて数値を合計する場面、仕事でよくありますよね。
SUMIF関数なら条件を1つ指定して合計できます。でも「営業部の、4月の売上」のように条件が2つ以上になると対応できません。
そんなときに使うのがSUMIFS関数です。この記事では、SUMIFS関数の基本から応用まで実例付きで解説します。ワイルドカード・比較演算子・日付条件に加え、「0になる」ときの対処法もカバーしています。
SUMIFS関数とは?SUMIF関数との違い
SUMIFS関数は、複数の条件を同時に満たすデータだけを合計する関数です。
読み方は「サムイフエス」です。SUM(合計)+ IF(もし)+ S(複数形)で、「複数の”もし”で合計する」という意味になっています。IF関数が条件分岐に使う関数なのに対し、SUMIFS関数は条件付きの合計に特化しています。
たとえば「営業部の、4月の売上合計」のように、部署と月の2つの条件を同時に指定できます。条件はすべてAND条件(かつ)で評価されます。
対応バージョンはExcel 2016以降、Microsoft 365です。Excel Web AppおよびGoogleスプレッドシートでも同じ書き方で使えます。
SUMIFS関数の基本構文(引数の構造)
SUMIFS関数の構文は次のとおりです。
=SUMIFS(合計対象範囲, 条件範囲1, 条件1, 条件範囲2, 条件2, ...)
引数を表で整理します。
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 合計対象範囲 | 必須 | 合計したい数値が入っている範囲 |
| 条件範囲1 | 必須 | 1つ目の条件を判定する範囲 |
| 条件1 | 必須 | 1つ目の条件(例: “営業部”) |
| 条件範囲2 | 省略可 | 2つ目の条件を判定する範囲 |
| 条件2 | 省略可 | 2つ目の条件 |
条件のペア(条件範囲と条件)は最大127組まで追加できます。
大事なポイントは、合計対象範囲が第1引数にくることです。SUMIF関数とは順番が違うので、混同しないように注意しましょう。
SUMIF関数との違い|条件1つ vs 複数条件
SUMIF関数とSUMIFS関数の一番の違いは、指定できる条件の数です。構文を並べて見比べてみましょう。
=SUMIF(条件範囲, 条件, 合計対象範囲)
=SUMIFS(合計対象範囲, 条件範囲1, 条件1, 条件範囲2, 条件2, ...)
| 比較項目 | SUMIF | SUMIFS |
|---|---|---|
| 指定できる条件数 | 1つだけ | 複数(最大127組) |
| 引数の順番 | 合計対象範囲が最後(第3引数) | 合計対象範囲が最初(第1引数) |
| 合計対象範囲の省略 | 省略可(条件範囲を合計) | 省略不可 |
SUMIF関数と引数の順番が逆なので、つまずきやすいポイントです。SUMIFS関数では合計対象範囲が最初にくると覚えておきましょう。
条件が1つだけならSUMIF関数で十分です。2つ以上ならSUMIFS関数を使いましょう。実はSUMIFS関数は条件1つでも使えます。最初からSUMIFS関数に統一するのも一つの方法ですよ。
SUMIFS関数の基本的な使い方
ここからは、次の売上データを使って具体的な使い方を見ていきます。
| A列: 日付 | B列: 部署 | C列: 担当者 | D列: 商品 | E列: 金額 |
|---|---|---|---|---|
| 2024/4/1 | 営業部 | 田中 | プランA | 50000 |
| 2024/4/3 | 総務部 | 鈴木 | プランB | 30000 |
| 2024/4/5 | 営業部 | 佐藤 | プランA | 80000 |
| 2024/4/10 | 営業部 | 田中 | プランC | 45000 |
| 2024/5/2 | 総務部 | 鈴木 | プランA | 60000 |
| 2024/5/8 | 営業部 | 佐藤 | プランB | 35000 |
文字列を条件に合計する
まずは条件が1つのシンプルな例からです。「営業部」の売上合計を求めてみましょう。
=SUMIFS(E2:E7, B2:B7, "営業部")
B列が「営業部」の行だけをピックアップして、E列の金額を合計します。結果は210,000(50000+80000+45000+35000)です。
条件に文字列を指定するときは、ダブルクォーテーション(”)で囲みます。セルの値を条件にしたい場合は、引用符なしでセル参照を書けばOKです。
=SUMIFS(E2:E7, B2:B7, G1)
G1セルに「営業部」と入れておけば、同じ結果が返ります。条件を変えるたびに数式を書き直す必要がなくなって便利です。
複数条件(AND条件)を組み合わせて合計する
SUMIFS関数の本領は、複数条件の指定です。「営業部」かつ「プランA」の売上合計を求めてみましょう。
=SUMIFS(E2:E7, B2:B7, "営業部", D2:D7, "プランA")
B列が「営業部」で、なおかつD列が「プランA」の行だけを合計します。結果は130,000(50000+80000)です。
条件をさらに追加することもできます。「営業部」「プランA」「田中」の3条件なら次のように書きます。
=SUMIFS(E2:E7, B2:B7, "営業部", D2:D7, "プランA", C2:C7, "田中")
結果は50,000です。条件範囲と条件のペアを増やしていくだけなので、仕組みはシンプルですよ。
応用1 ワイルドカードで部分一致の条件を指定する
SUMIFS関数では、ワイルドカードを使って「部分一致」の条件を指定できます。完全一致ではなく、一部が一致するデータを合計したいときに便利です。
*(アスタリスク)で任意の文字列に一致させる
*(アスタリスク)は、0文字以上の任意の文字列に一致します。
商品名に「プラン」を含むデータの合計を求めるには、次のように書きます。
=SUMIFS(E2:E7, D2:D7, "プラン*")
「プラン」で始まるすべてのデータが合計対象になります。プランA、プランB、プランCのすべてが一致するわけです。
*の位置を変えると、一致のパターンも変わります。
| 書き方 | 意味 | 一致する例 |
|---|---|---|
| “プラン*” | 「プラン」で始まる | プランA、プランB |
| “*プラン” | 「プラン」で終わる | 年間プラン、月額プラン |
| “プラン“ | 「プラン」を含む | お試しプランA |
?(クエスチョン)で任意の1文字に一致させる
?(クエスチョンマーク)は、任意の1文字に一致します。文字数が決まっているときに使いましょう。
=SUMIFS(E2:E7, D2:D7, "プラン?")
「プラン」のあとにちょうど1文字が続くデータだけが対象です。「プランA」「プランB」は一致しますが、「プランAA」のように2文字以上続くものは一致しません。
なお、 や ? そのものを検索したい場合はどうするかというと、~ や ~? のようにチルダ(~)を前につけてエスケープします。
応用2 比較演算子で「以上・以下・等しくない」を指定する
SUMIFS関数では、比較演算子を使った条件も指定できます。「○○以上」「○○以下」「○○と等しくない」を表現できます。
以上・以下・超・未満の書き方
比較演算子は、ダブルクォーテーションで囲んで文字列として指定します。
| 演算子 | 意味 | 書き方の例 |
|---|---|---|
| >= | 以上 | “>=50000” |
| <= | 以下 | “<=100000" |
| > | より大きい(超) | “>50000” |
| < | より小さい(未満) | “<50000" |
| = | 等しい | “=50000” |
| <> | 等しくない | “<>営業部” |
金額が50,000以上のデータだけ合計するには、次のように書きます。
=SUMIFS(E2:E7, E2:E7, ">=50000")
合計対象範囲と条件範囲に同じ範囲を指定しているのがポイントです。「E列の値のうち、50,000以上のものだけ合計する」という意味になります。
「営業部以外」の合計を求めたい場合は、<>を使います。
=SUMIFS(E2:E7, B2:B7, "<>営業部")
セル参照と比較演算子を組み合わせる(& 演算子)
条件の値をセルから参照したいときは、&(アンパサンド)で演算子と連結します。
G1セルに入力した金額以上のデータを合計する例です。
=SUMIFS(E2:E7, E2:E7, ">="&G1)
">=" という文字列と、G1セルの値を & でつなげています。G1に50000と入力すれば、">=50000" と同じ動きです。
この書き方は日付条件でもよく使います。覚えておくと便利ですよ。
応用3 日付を条件に使う
SUMIFS関数は、日付を条件に指定することもできます。期間を区切って集計したいときに重宝する書き方です。
特定の日付・期間で合計する
特定の日付のデータを合計するには、DATE関数で条件を指定します。
2024年4月5日の売上合計を求める数式がこちらです。
=SUMIFS(E2:E7, A2:A7, DATE(2024,4,5))
期間を指定したいときは、比較演算子と組み合わせます。2024年4月の売上合計を求めてみましょう。
=SUMIFS(E2:E7, A2:A7, ">="&DATE(2024,4,1), A2:A7, "<="&DATE(2024,4,30))
同じ条件範囲(A2:A7)に対して「4/1以上」「4/30以下」の2つの条件を指定しています。結果は205,000(4月の4件の合計)です。
セルに開始日と終了日を入力しておけば、さらに柔軟に使えます。
=SUMIFS(E2:E7, A2:A7, ">="&G1, A2:A7, "<="&G2)
G1に開始日、G2に終了日を入れるだけで集計期間を変更できます。月次レポートや四半期集計の作成に便利です。
NOTE
日付を文字列で直接指定すること(例: “>=2024/4/1″)もできます。ただし地域設定によっては正しく認識されないことがあるため、DATE関数を使う方が確実です。
SUMIFS関数が0になる・合計されないときの原因と対処法
SUMIFS関数を使っていて「結果が0になる」「合計されない」というトラブルに遭うことがあります。エラーは出ないのに0になるケースが特に厄介です。
よくある原因(表で整理)
| 原因 | 具体例 | 対処法 |
|---|---|---|
| 全角・半角の不一致 | データが「営業部」で条件が全角混じり | ASC関数(半角に統一)またはJIS関数(全角に統一)を使う |
| 数値がテキスト形式 | セルの数値が「文字列」書式で入力されている | 「区切り位置」機能やVALUE関数で数値に変換する |
| 比較演算子の引用符忘れ | >=50000 と書いて ” で囲んでいない | 必ず “>=50000” のように引用符で囲む |
| 前後にスペースが混入 | セルの値の前後に見えない空白がある | TRIM関数で前後の空白を除去する |
| 日付がテキスト形式 | 日付に見えるがテキストとして入力されている | DATEVALUE関数で日付に変換する |
デバッグの手順
0になったときは、次の手順で原因を切り分けましょう。
1. 条件を1つだけにして試す
まず条件を1つだけにして、合計されるか確認します。
=SUMIFS(E2:E7, B2:B7, "営業部")
これで正しい値が返るなら、2つ目以降の条件に問題があります。条件を1つずつ追加して、どこで0になるか特定しましょう。
2. COUNTIFS関数で一致データの有無を確認する
合計ではなく件数を返すCOUNTIFS関数で、条件に一致するデータがあるか調べます。
=COUNTIFS(B2:B7, "営業部", D2:D7, "プランA")
0件なら、条件に合うデータが存在しないということです。条件値の文字や全角半角を見直してください。
3. セルの書式を確認する
数値がテキストとして入力されていると、SUMIFS関数は0を返します。セルを選択して「ホーム」タブの表示形式を確認しましょう。「文字列」になっていたら「数値」に変更します。変更後はセルをダブルクリックしてEnterで確定し直してください。
NOTE
#VALUE! エラーが出る場合は、範囲のサイズを確認してください。合計対象範囲と条件範囲の行数・列数が異なるとこのエラーが発生します。すべての範囲の行数を揃えて修正しましょう。
SUMIFS・SUMIF・COUNTIFS・SUMPRODUCTの使い分け(比較表)
条件付きの集計関数はいくつかあります。どれを使うか迷ったときは、次の表を参考にしてください。
| 関数 | できること | 条件数 | 条件の結合 |
|---|---|---|---|
| SUMIF | 1つの条件で合計 | 1つ | — |
| SUMIFS | 複数条件で合計 | 最大127組 | AND(かつ) |
| COUNTIFS | 複数条件でカウント | 最大127組 | AND(かつ) |
| SUMPRODUCT | 複数条件で合計(OR対応) | 制限なし | AND・OR両方 |
SUMIFS関数の条件はすべてAND(かつ)で結合されます。「条件AまたはB」のようなOR条件には対応していません。
OR条件で合計したい場合は、2つの方法があります。
方法1: SUMIFS関数を足し算する
=SUMIFS(E2:E7, B2:B7, "営業部") + SUMIFS(E2:E7, B2:B7, "総務部")
「営業部または総務部」の合計を求められます。ただし両方に一致するデータがあると二重カウントになるので注意してください。
方法2: SUMPRODUCT関数を使う
=SUMPRODUCT((B2:B7="営業部")+(B2:B7="総務部"), E2:E7)
SUMPRODUCT関数なら、OR条件もAND条件も柔軟に組み合わせられます。書き方に少しクセがありますが、複雑な集計には強力な味方です。
まとめ
この記事では、ExcelのSUMIFS関数の使い方を解説しました。
- SUMIFS関数は、複数の条件をAND(かつ)で指定して合計する関数
- 合計対象範囲が第1引数(SUMIF関数とは順番が違う)
- ワイルドカード(
*,?)で部分一致の条件も指定できる - 比較演算子(
>=,<=,<>など)で数値や日付の範囲指定ができる - セル参照と組み合わせるときは
&演算子で連結する - 結果が0になるときは、全角半角・テキスト形式・引用符忘れを確認する
月次の売上集計や部署別の経費まとめなど、条件付きの合計は業務で頻繁に使います。SUMIFS関数をマスターすれば、フィルタをかけて手計算する手間がなくなりますよ。
条件付き集計をさらに深めたい方には、次の記事もおすすめです。AVERAGEIF関数で条件付きの平均、IFS関数で複数条件の分岐ができます。

コメント