GoogleスプレッドシートのSUMIF・SUMIFS関数の使い方|条件の書き方から応用テクニックまで徹底解説
「担当者ごとの売上合計を出したい」「特定の期間だけを集計したい」「複数の条件を同時に満たす行だけを足したい」——そんなときに役立つのがSUMIF・SUMIFS関数です。条件が1つならSUMIF、2つ以上ならSUMIFSを使います。この記事では基本の構文から、日付・ワイルドカード・OR条件などの応用テクニックまで実例付きで解説します。
SUMIF・SUMIFS関数とは?
SUMIF・SUMIFS関数は、指定した条件に一致するセルの合計を求める関数です。GoogleスプレッドシートでもExcelとほぼ同じ書き方で使えます。
| 関数 | 条件の数 | 使うタイミング |
|---|---|---|
| SUMIF | 1つだけ | 「A列が〇〇のB列を合計したい」など、条件が1種類のとき |
| SUMIFS | 2つ以上(最大127組) | 「A列が〇〇 かつ B列が△△の場合」など、AND条件で絞り込むとき |
SUMIF関数の書き方(条件が1つの場合)
=SUMIF(条件範囲, 条件, 合計範囲)
| 引数 | 説明 | 省略 |
|---|---|---|
| 条件範囲 | 条件を確認するセル範囲(例: A2:A100) | 必須 |
| 条件 | 一致させたい値・数式・文字列(例: “東京”, “>100”, E1) | 必須 |
| 合計範囲 | 合計したい数値が入っている範囲(例: B2:B100) 省略すると条件範囲そのものを合計する |
省略可 |
例:A列が「東京」の行のB列を合計する
=SUMIF(A2:A100, "東京", B2:B100)
SUMIFS関数の書き方(条件が複数の場合)
=SUMIFS(合計範囲, 条件範囲1, 条件1, 条件範囲2, 条件2, ...)
⚠️ SUMIFとSUMIFSは引数の順序が違います。SUMIFSは最初に「合計範囲」を指定します。
| 引数 | 説明 |
|---|---|
| 合計範囲 | 合計したい数値の範囲(最初に指定する) |
| 条件範囲1 | 1つ目の条件を確認するセル範囲 |
| 条件1 | 1つ目の条件 |
| 条件範囲2, 条件2 | 2つ目以降の条件(省略可・最大127組) |
例:A列が「東京」かつC列が「2025」の行のB列を合計する
=SUMIFS(B2:B100, A2:A100, "東京", C2:C100, 2025)

条件の書き方一覧
| 条件の種類 | 書き方 | 使用例 |
|---|---|---|
| 文字列と完全一致 | “東京” | =SUMIF(A:A, “東京”, B:B) |
| 100以上 | “>=100” | =SUMIF(C:C, “>=100”, D:D) |
| 100以下 | “<=100” | =SUMIF(C:C, “<=100”, D:D) |
| 100以外 | “<>100” | =SUMIF(C:C, “<>100”, D:D) |
| 空白 | “” | =SUMIF(A:A, “”, B:B) |
| 空白以外 | “<>” | =SUMIF(A:A, “<>”, B:B) |
| 〇〇を含む(ワイルドカード) | “*東京*” | =SUMIF(A:A, “*東京*”, B:B) |
| 〇〇で始まる | “東京*” | =SUMIF(A:A, “東京*”, B:B) |
| 〇〇で終わる | “*都” | =SUMIF(A:A, “*都”, B:B) |
| ちょうど3文字 | “???” | =SUMIF(A:A, “???”, B:B) |
| セルの値を条件にする | “>=”&E1 | =SUMIF(C:C, “>=”&E1, D:D) |
| 日付以降 | “>=”&DATE(2025,1,1) | =SUMIF(A:A, “>=”&DATE(2025,1,1), B:B) |
応用テクニック①:日付範囲での集計
特定の期間だけのデータを集計するときは、同じ日付列に対して2つの条件(以上・以下)を使います。
当月のデータだけを集計する
=SUMIFS(B2:B100, A2:A100, ">="&DATE(YEAR(TODAY()),MONTH(TODAY()),1), A2:A100, "<="&EOMONTH(TODAY(),0))
TODAY()で今日の日付を自動取得するため、毎月自動で当月のみを集計できます。
過去3ヶ月を集計する
=SUMIFS(B2:B100, A2:A100, ">="&EDATE(TODAY(),-3), A2:A100, "<="&TODAY())
特定年月のデータを集計する
=SUMIFS(B2:B100, A2:A100, ">="&DATE(2025,4,1), A2:A100, "<="&DATE(2025,4,30))

応用テクニック②:数値範囲で絞り込む
同じ列に複数の条件を指定して、数値の「範囲」でデータを絞り込めます。
=SUMIFS(D2:D100, B2:B100, "東京支店", D2:D100, ">=100000", D2:D100, "<500000")
「東京支店」かつ「売上が10万円以上50万円未満」の合計を求める例です。
応用テクニック③:OR条件(〜または〜)で合計する
SUMIFS関数はすべての条件を「AND(かつ)」で評価します。「〜または〜」のOR条件で合計したい場合は、複数のSUMIFS関数を足し合わせます。
=SUMIFS(B2:B100, A2:A100, "東京") + SUMIFS(B2:B100, A2:A100, "大阪")
「東京」または「大阪」の行のB列を合計する例です。3つ以上の条件でも同様に+で繋ぎます。
応用テクニック④:ワイルドカード(部分一致)
条件に *(0文字以上の任意の文字)や ?(任意の1文字)を使うと部分一致で集計できます。
| ワイルドカード | 意味 | 使用例 |
|---|---|---|
| * | 0文字以上の任意の文字列 | “*Pro*”(Proを含む文字列) |
| ? | 任意の1文字 | “A-???”(A-に続く3文字) |
| ~* | *を文字として検索 | “~*”(*そのものを検索) |
=SUMIFS(B2:B100, A2:A100, "*Pro*")
商品名に「Pro」を含む行のB列を合計する例です。「Pro」「ProMax」「MacBook Pro」など部分一致するすべての行が対象になります。
応用テクニック⑤:セル参照と組み合わせて動的に条件を変える
条件に直接文字を書く代わりに、セル参照を使うと集計表やダッシュボードを簡単に作れます。
=SUMIFS(B2:B100, A2:A100, E1, C2:C100, ">="&F1, C2:C100, "<="&G1)
E1に地域名、F1に集計開始日、G1に集計終了日を入力するだけで条件が切り替わる集計表を作れます。
ExcelとGoogleスプレッドシートの違い
| 項目 | Googleスプレッドシート | Excel |
|---|---|---|
| 基本的な書き方 | 同じ | 同じ |
| ワイルドカード(*・?) | ✅ 使用可 | ✅ 使用可 |
| 正規表現(REGEXMATCH) | ✅ スプレッドシート独自機能 | ❌ 使用不可 |
| QUERY関数との代替 | ✅ QUERYで同等集計可 | ❌ なし |
| 引数の最大条件数 | 127組 | 127組(同じ) |
よくあるミス・エラーと対処法
| 症状 | 原因 | 対処法 |
|---|---|---|
| 結果が0になる | 条件の文字列をダブルクォートで囲んでいない | “東京” のようにダブルクォートで囲む |
| #VALUE!エラー | 合計範囲と条件範囲の行数が違う | 各範囲の行数を揃える(例: A2:A100 と B2:B100) |
| 比較演算子が効かない | >=などを直接書いている | “>=”&E1 のように文字列と結合する形式で記述 |
| 日付条件が効かない | 日付をテキストとして記述している | DATE関数を使う:”>=”&DATE(2025,1,1) |
| SUMIF と SUMIFS を混同 | SUMIFS で合計範囲を最後に書いてしまう | SUMIFS は合計範囲が最初(SUMIF と引数順序が逆) |
SUMIF・SUMIFS・QUERYの使い分け
| 関数 | 向いているケース |
|---|---|
| SUMIF | 条件が1つだけのシンプルな集計 |
| SUMIFS | 条件が2〜数個のAND集計。日付範囲・数値範囲の指定 |
| QUERY | GROUP BY や ORDER BY も含む複雑な集計。複数列を一度に処理したい場合 |
まとめ
SUMIF・SUMIFS関数のポイントをまとめます。
- 条件が1つ→ SUMIF / 条件が2つ以上→ SUMIFS
- SUMIFSは引数の順序に注意:合計範囲を最初に書く(SUMIFと逆)
- 日付集計はTODAY()・DATE()・EDATE()・EOMONTH()と組み合わせると自動更新できる
- OR条件はSUMIFS同士を足し算で対応する
- 部分一致はワイルドカード(*・?)で対応できる
- 集計条件を動的に変えたいときはセル参照と組み合わせると便利
まずは =SUMIF(条件1つ)から使い始め、複数条件が必要になったら =SUMIFS に移行するとスムーズです。さらに複雑な集計が必要な場合はQUERY関数も検討してみてください。