どうも、くまおやぢです。
「この担当者の売上だけ合計したいんだけど、いちいちフィルターかけて電卓で足すしかないの?」
――わたしが以前の職場で後輩から受けた相談です。その後輩は、毎月の売上集計で「部署フィルター → 手計算 → フィルター解除 → 次の部署……」を繰り返していました。30分以上かけて。
ですが、ご安心を。
SUMIF関数とCOUNTIF関数を覚えれば、こうした「条件付きの集計」はセルに数式を1つ入れるだけで終わります。さらに、複数の条件を同時に指定できるSUMIFS・COUNTIFSを使えば、「営業部の、4月分の、売上合計」といった複雑な集計も一発です。
この記事では、SUMIF / COUNTIF の基本から、SUMIFS / COUNTIFS の複数条件指定、ワイルドカード、日付条件、OR条件の実現方法、よくあるエラーの対処法まで、この1記事で完全網羅します!
この記事でできること
対象者:Excel初心者〜中級者(SUM関数は使えるが、条件付き集計は未経験 or 苦手な方)
読み方ガイド:
| あなたの状態 | 読むべき章 |
|---|---|
| SUMIF / COUNTIF を触ったことがない | → 03章・04章から |
| 単一条件はできるが複数条件が分からない | → 05章から |
| 日付条件やOR条件で困っている | → 06章へ直行 |
| エラーが出て原因が分からない | → 07章へ直行 |
急いでいる人へ|最短手順
条件付き合計(SUMIF):
=SUMIF(条件を調べる範囲, 条件, 合計する範囲)例:
=SUMIF(A2:A100,"佐藤",C2:C100)→ A列が「佐藤」の行のC列を合計条件付きカウント(COUNTIF):
=COUNTIF(範囲, 条件)例:
=COUNTIF(A2:A100,"佐藤")→ A列に「佐藤」がいくつあるか
次の章では、4つの関数の関係性を整理してから、順番に解説していきます。
03. まず全体像をつかもう|4つの関数の関係マップ
SUMIF系・COUNTIF系の関数は全部で4つあります。まずは全体像を押さえましょう。
| 関数名 | 条件の数 | 何をする? | 構文 |
|---|---|---|---|
| SUMIF | 1つ | 条件に合う数値を合計 | =SUMIF(範囲, 条件, 合計範囲) |
| SUMIFS | 複数 | 複数条件に合う数値を合計 | =SUMIFS(合計範囲, 範囲1, 条件1, 範囲2, 条件2, …) |
| COUNTIF | 1つ | 条件に合うセルをカウント | =COUNTIF(範囲, 条件) |
| COUNTIFS | 複数 | 複数条件に合うセルをカウント | =COUNTIFS(範囲1, 条件1, 範囲2, 条件2, …) |
覚え方はシンプル:末尾に「S」がつくと複数条件対応。SはpluralのS(複数形)と覚えてください。
SUMIFとSUMIFSで引数の順番が違う!
- SUMIF →
=SUMIF(範囲, 条件, **合計範囲**)← 合計範囲が最後- SUMIFS →
=SUMIFS(**合計範囲**, 範囲1, 条件1, …)← 合計範囲が最初この違いは初心者がつまずく最大のポイントです。SUMIFSは「まず何を合計するか宣言してから、条件を並べる」と覚えるとスムーズです。
【ここに図を入れる】4つの関数の関係図 — 縦軸に「合計 / カウント」、横軸に「1条件 / 複数条件」の2×2マトリクス。左上にSUMIF、右上にSUMIFS、左下にCOUNTIF、右下にCOUNTIFS。矢印で「Sが付くと複数条件対応」を示す。
次の章では、まず基本のSUMIF・COUNTIFから解説します。
04. 基本編|SUMIF・COUNTIFで単一条件の集計をマスター
SUMIF関数:条件に合う数値を合計する
構文:
=SUMIF(範囲, 条件, 合計範囲)
| 引数 | 意味 | 例 |
|---|---|---|
| 範囲 | 条件をチェックするセル範囲 | A2:A100(担当者名の列) |
| 条件 | どのデータを対象にするか | “佐藤” |
| 合計範囲 | 合計したい数値のセル範囲 | C2:C100(売上金額の列) |
使用例:「担当者が佐藤の売上合計」を求める
=SUMIF(A2:A100, "佐藤", C2:C100)
A列が「佐藤」と一致する行のC列の数値を合計します。
セル参照で条件を指定する方法:
条件を直接文字列で書く代わりに、セルの値を参照することもできます。
=SUMIF(A2:A100, E1, C2:C100)
E1セルに「佐藤」と入力しておけば、E1の値を変えるだけで集計対象を切り替えられます。ダッシュボード的な使い方に便利です。
比較演算子を使った条件指定:
| 条件の書き方 | 意味 |
|---|---|
">=100" | 100以上 |
"<500" | 500未満 |
"<>" | 空白でない |
"<>完了" | 「完了」以外 |
=SUMIF(C2:C100, ">=10000", C2:C100)
この例では、C列の値が10,000以上のセルだけを合計します。範囲と合計範囲が同じ列になっている点に注目してください。「この列の中で○○以上だけ合計」というパターンです。
COUNTIF関数:条件に合うセルの個数を数える
構文:
=COUNTIF(範囲, 条件)
SUMIFと違い、引数は2つだけ。合計範囲が不要です(数えるだけなので)。
使用例:「佐藤という名前が何件あるか」を数える
=COUNTIF(A2:A100, "佐藤")
ワイルドカードで部分一致:
| ワイルドカード | 意味 | 例 |
|---|---|---|
*(アスタリスク) | 任意の文字列(0文字以上) | "佐藤*" → 佐藤で始まる |
?(クエスチョン) | 任意の1文字 | "佐??" → 佐+2文字 |
=COUNTIF(A2:A100, "*株式会社*")
この例では、「株式会社」という文字を含むセルをすべてカウントします。前後にアスタリスクを付けることで、位置を問わない部分一致になります。
ワイルドカードはSUMIFでも使えます。
=SUMIF(A2:A100,"佐藤*",C2:C100)とすれば、「佐藤一郎」「佐藤美咲」など佐藤で始まる全員の売上を合計できます。
よくあるミス:範囲と合計範囲のサイズが違う
SUMIFで最も多い失敗が、範囲と合計範囲の行数が一致していないケースです。
❌ =SUMIF(A2:A100, "佐藤", C2:C50) ← 範囲は100行なのに合計範囲は50行
⭕ =SUMIF(A2:A100, "佐藤", C2:C100) ← 両方100行で一致
関数は「1行目は1行目同士、2行目は2行目同士」で照合しています。サイズがズレていると、意図しない結果になるか、エラーにはならないまま間違った数値が返ってくるため発見が遅れます。
やってはいけないこと:範囲を
A:Aのように列全体で指定すると、空白セルも含めて100万行以上を走査するため、動作が重くなります。データがある範囲に絞って指定しましょう。
次の章では、複数条件に対応したSUMIFS・COUNTIFSを解説します。ここからが実務で本当に役立つパートです!
05. 応用編|SUMIFS・COUNTIFSで複数条件を同時に指定する
SUMIFS関数:複数条件で合計する
構文:
=SUMIFS(合計範囲, 条件範囲1, 条件1, 条件範囲2, 条件2, …)
重要:SUMIFと引数の順番が違います。合計範囲が最初に来ます。
| 引数 | 意味 |
|---|---|
| 合計範囲 | 合計したい数値のセル範囲 |
| 条件範囲1 | 1つ目の条件をチェックする範囲 |
| 条件1 | 1つ目の条件 |
| 条件範囲2 | 2つ目の条件をチェックする範囲 |
| 条件2 | 2つ目の条件 |
条件のペアは最大127組まで追加できます(実務では2〜3組で十分です)。
使用例:「営業部の、4月の売上合計」を求める
以下のようなデータを想定します。
| A列:日付 | B列:部署 | C列:売上金額 |
|---|---|---|
| 2025/4/1 | 営業部 | 150,000 |
| 2025/4/5 | 総務部 | 30,000 |
| 2025/4/10 | 営業部 | 200,000 |
| 2025/5/1 | 営業部 | 180,000 |
=SUMIFS(C2:C100, B2:B100, "営業部", A2:A100, ">=2025/4/1", A2:A100, "<=2025/4/30")
この数式では3つの条件を同時に指定しています。
- B列が「営業部」
- A列が2025/4/1以降
- A列が2025/4/30以下
すべてをAND条件(すべて満たす)で判定し、該当する行のC列を合計します。
セル参照を使って条件を柔軟にする:
=SUMIFS(C2:C100, B2:B100, E1, A2:A100, ">="&F1, A2:A100, "<="&G1)
E1に部署名、F1に開始日、G1に終了日を入れておけば、セルを変えるだけで集計条件を切り替えられます。
ポイント:日付や数値を演算子と組み合わせるときは、
">="&F1のように演算子を文字列で書いてからセル参照を&で結合します。
COUNTIFS関数:複数条件でカウントする
構文:
=COUNTIFS(範囲1, 条件1, 範囲2, 条件2, …)
SUMIFSと同じ考え方で、条件のペアを並べるだけ。合計範囲が不要な分、さらにシンプルです。
使用例:「東京で、文房具カテゴリの売上が何件あるか」
=COUNTIFS(D2:D100, "東京", B2:B100, "文房具")
D列が「東京」かつB列が「文房具」の行をカウントします。
SUMIFSとCOUNTIFSの使い分け早見表
| やりたいこと | 使う関数 | 例 |
|---|---|---|
| 佐藤の売上合計 | SUMIF | =SUMIF(A:A,"佐藤",C:C) |
| 営業部の4月の売上合計 | SUMIFS | =SUMIFS(C:C,B:B,"営業部",A:A,">=2025/4/1",A:A,"<=2025/4/30") |
| 佐藤の件数 | COUNTIF | =COUNTIF(A:A,"佐藤") |
| 東京の文房具の件数 | COUNTIFS | =COUNTIFS(D:D,"東京",B:B,"文房具") |
次の章では、実務でつまずきやすい「日付条件」「OR条件」「SUMPRODUCT」を解説します。
06. 実務で差がつく応用テクニック|日付条件・OR条件・SUMPRODUCT
日付を条件にする3つのパターン
日付条件はSUMIFS/COUNTIFSで最も使用頻度が高く、かつ最もミスが起きやすい部分です。
パターン①:特定の期間を指定する
=SUMIFS(C2:C100, A2:A100, ">=2025/4/1", A2:A100, "<=2025/4/30")
開始日と終了日の2つの条件で範囲を挟みます。同じ列(A列)に対して2つの条件を指定している点がポイント。
パターン②:TODAY関数で「今月分」を自動集計する
=SUMIFS(C2:C100, A2:A100, ">="&DATE(YEAR(TODAY()),MONTH(TODAY()),1), A2:A100, "<="&TODAY())
DATE(YEAR(TODAY()),MONTH(TODAY()),1)→ 今月1日TODAY()→ 今日の日付
この数式なら、月が変わっても自動で集計期間が更新されます。
パターン③:年や月だけで集計する
「2025年の売上合計」のように年単位で集計したい場合は、YEAR関数と組み合わせる方法もありますが、SUMIFS単体では関数を条件に使えません。この場合はSUMPRODUCTが便利です(後述)。
シンプルに対応するなら、日付範囲で指定する方法が確実です。
=SUMIFS(C2:C100, A2:A100, ">=2025/1/1", A2:A100, "<=2025/12/31")
OR条件(「AまたはB」)を実現する方法
SUMIFS/COUNTIFSはすべてAND条件(すべて満たす)です。「営業部または企画部」のようなOR条件には直接対応していません。
方法①:複数のSUMIFSを足す(最もシンプル)
=SUMIFS(C2:C100, B2:B100, "営業部") + SUMIFS(C2:C100, B2:B100, "企画部")
条件が2〜3個ならこの方法で十分。ただし、条件が増えると数式が長くなります。
方法②:SUMPRODUCTを使う(柔軟性◎)
=SUMPRODUCT((B2:B100="営業部")+(B2:B100="企画部"), C2:C100)
SUMPRODUCT内で + を使うとOR条件、* を使うとAND条件になります。
注意:SUMPRODUCT内のOR条件では、両方の条件を同時に満たすデータがあると二重カウントされる場合があります。二重カウントを防ぐには、以下のように書きます。
=SUMPRODUCT(((B2:B100="営業部")+(B2:B100="企画部")>0)*1, C2:C100)
>0で「1つ以上の条件を満たす」をTRUE/FALSEに変換し、*1で数値化しています。
AVERAGEIFS:条件付き平均も同じ考え方
SUMIFS/COUNTIFSと同じ構文で、条件付きの平均値を求める関数もあります。
=AVERAGEIFS(C2:C100, B2:B100, "営業部", A2:A100, ">=2025/4/1", A2:A100, "<=2025/4/30")
「営業部の4月の売上平均」を1行で求められます。構文はSUMIFSとまったく同じです。
ピボットテーブルとの使い分け
「条件付き集計」という意味ではピボットテーブルも強力なツールです。どちらを使うべきかの判断基準を整理します。
| 比較項目 | SUMIFS / COUNTIFS | ピボットテーブル |
|---|---|---|
| 向いている場面 | 特定の条件の集計を定位置に表示したい | データ全体を多角的に分析したい |
| 更新の手間 | 数式なので自動更新 | データ変更後に「更新」ボタンが必要 |
| 柔軟性 | 条件を変えるにはセル参照の変更が必要 | ドラッグ&ドロップで自由に切り口を変更 |
| 学習コスト | 関数の構文を覚えればOK | 操作方法の理解が必要 |
| 他の数式との連携 | そのまま数式で参照可能 | GETPIVOTDATA関数が必要 |
おすすめの使い分け:
- 「この数字をこのセルに常に表示したい」 → SUMIFS / COUNTIFS
- 「データを自由に切り替えながら傾向を見たい」 → ピボットテーブル
両方を使えると、集計の幅がグッと広がります。
次の章では、「数式を入れたのに正しい結果にならない」ときの原因と対処法を整理していきましょう。
07. よくあるエラーと対処法|5つのトラブルパターン
SUMIF系/COUNTIF系の関数は構文がシンプルな反面、エラーが出ないまま間違った結果を返すケースがあるため厄介です。ここでは実務で遭遇しやすい5つのパターンを「症状→原因→対処」の形で整理します。
パターン①:結果が0になる(本当は0じゃないはず)
| 症状 | 条件に合うデータがあるのに、結果が0になる |
|---|---|
| 原因A | 条件のセルに余分なスペースが入っている |
| 対処 | TRIM関数でスペースを除去する → =SUMIF(A2:A100, TRIM(E1), C2:C100) |
| 原因B | 数値が「文字列として入力された数値」になっている |
| 対処 | セルの左上に緑の三角マークが出ていないか確認。出ていたら「数値に変換」を実行 |
パターン②:#VALUE! エラーが出る
| 症状 | 数式を入れると #VALUE! エラーが表示される |
|---|---|
| 原因 | 条件範囲と合計範囲(または他の条件範囲)の行数が一致していない |
| 対処 | すべての範囲の行数を揃える。A2:A100 と C2:C100 のように開始行・終了行を統一する |
SUMIF では #VALUE! が出にくいのに対し、SUMIFS / COUNTIFS では範囲サイズ不一致で即エラーになります。実はSUMIFは範囲がズレていてもエラーにならず、間違った結果を返すだけなので、かえって発見が遅れることがあります。SUMIFSのほうがエラーで教えてくれる分、むしろ安全とも言えます。
パターン③:日付条件が効かない
| 症状 | 日付で期間を指定しているのに、結果が0または全件になる |
|---|---|
| 原因A | 日付が文字列として入力されている(セルの表示形式が「文字列」) |
| 対処 | 該当セルの表示形式を「日付」に変更し、データを再入力する |
| 原因B | 演算子とセル参照の結合が間違っている |
| 対処 | ">="&F1 のように、演算子を "" で囲み、& でセルを結合する |
パターン④:ワイルドカードが効かない
| 症状 | "*佐藤*" と書いているのに、ヒットしない |
|---|---|
| 原因 | 数値データに対してワイルドカードを使っている |
| 対処 | ワイルドカード(*, ?)は文字列にしか使えません。数値の範囲指定は比較演算子(">=100")を使ってください |
パターン⑤:OR条件ができない
| 症状 | 「営業部または企画部」の合計を1つの式で出したい |
|---|---|
| 原因 | SUMIFS / COUNTIFS はAND条件専用。OR条件には対応していない |
| 対処 | 06章で解説した「複数のSUMIFSを足す方法」または「SUMPRODUCT」を使う |
08. 実務での活用例3選
活用例①:売上管理表(担当者×月×商品の集計)
場面:月次の売上レポートで、「担当者ごと・商品カテゴリごと・月ごと」の売上を集計したい。
=SUMIFS(売上金額, 担当者列, "佐藤", 商品列, "文房具", 日付列, ">=2025/4/1", 日付列, "<=2025/4/30")
ダッシュボードシートにこの数式を並べれば、元データが更新されるたびに集計が自動で更新されます。
活用例②:出勤簿(特定の勤務形態の回数を集計)
場面:月間の出勤簿で、「遅刻」「早退」「有休」の回数をそれぞれカウントしたい。
=COUNTIF(B2:B32, "遅刻")
=COUNTIF(B2:B32, "早退")
=COUNTIF(B2:B32, "有休")
COUNTIFなら1行で完了。フィルターをかけて手で数える必要はありません。
さらに「4月の遅刻回数」のように月を絞りたい場合は、COUNTIFSを使います。
=COUNTIFS(A2:A32, ">=2025/4/1", A2:A32, "<=2025/4/30", B2:B32, "遅刻")
活用例③:アンケート集計(特定の回答の割合を算出)
場面:社内アンケートで「満足」「やや満足」「不満」の回答数と割合を出したい。
=COUNTIF(C2:C200, "満足")
=COUNTIF(C2:C200, "やや満足")
=COUNTIF(C2:C200, "不満")
割合を出すには、COUNTIFの結果をCOUNTA(回答総数)で割ります。
=COUNTIF(C2:C200, "満足") / COUNTA(C2:C200)
セルの書式をパーセント表示にすれば、そのまま報告書に使える数値になります。
09. まとめ|振り返りチェックリスト+今日の一歩
おつかれさまでした!この記事で解説した内容を振り返ります。
振り返りチェックリスト
- [ ] SUMIF / COUNTIF の構文を理解し、単一条件の集計ができる
- [ ] SUMIFS / COUNTIFS で複数条件(AND条件)を指定できる
- [ ] SUMIFとSUMIFSの引数の順番の違いを把握している
- [ ] 日付条件の書き方(
">="&セル参照)が分かった - [ ] OR条件はSUMIFS単体ではできないこと、代替方法を理解した
- [ ] よくあるエラー(範囲ズレ・文字列数値・スペース混入)の対処ができる
今日やるべき最小アクション
まずは、今日使っている集計表に SUMIF を1つだけ入れてみてください。
「この列のこの値だけ合計したい」――そんな場面があれば、=SUMIF(範囲, 条件, 合計範囲) を試すチャンス。フィルターをかけて電卓を叩く時間が、数式1つでゼロになります。
関連記事
- 「SUM関数でカンタン合計計算|初心者向けにやさしく解説」— SUMIFの前にSUM関数をおさらいしたい方に
- 「VLOOKUP関数の基本と応用パターン」— 「条件に合うデータを探して値を返す」ならVLOOKUP
- 「FILTER・UNIQUEで自動抽出&重複排除」— Microsoft 365なら、FILTER関数で条件付き抽出がさらに簡単に
- 「SUBTOTAL・AGGREGATE関数を業務で使いこなす方法」— フィルター状態でも正しく集計したいなら
あせらず、くさらず、あきらめず。SUMIF → SUMIFS → SUMPRODUCT と、段階を踏んで覚えていけば大丈夫です。一度にすべてを覚える必要はありません。まずは今日1つ、明日もう1つ。そうやって「できる」を少しずつ増やしていきましょう。
あなたのフィードバックが次の記事のヒントになります。「ここが分からなかった」「こういう条件の集計はどうやるの?」があれば、ぜひコメントで教えてください。

コメント