「担当者ごとの売上を出しただけなのに、全体の合計と1円も合わない」
SUMIF関数を使い始めたばかりの頃、そんな数字のズレに何度も頭を抱えたことがあります。関数の書き方自体は合っているはずなのに、なぜか合計が違う。原因を確認してみると、たいてい「条件を見る範囲」と「合計する範囲」の行数がわずかにズレている、というのが正体でした。
SUMIF関数は、指定した条件に一致するセルに対応する数値だけを合計する関数です。COUNTIF関数が「件数」を数えるのに対して、SUMIF関数は「合計」を求める関数だと考えると整理しやすくなります。名前も書式もCOUNTIF関数とよく似ているため、条件を指定する仕組み自体はすでにイメージがつかみやすいはずです。今回は基本の書き方から、実務で本当によく起きる「条件付き合計が合わない」というトラブルの原因まで、一通りまとめていきます。
1. SUMIF関数とは
SUMIF関数は、指定した条件に一致するセルに対応する数値の合計を求める関数です。書式は次の通りです。
=SUMIF(条件範囲, 検索条件, 合計範囲)
- 条件範囲:検索条件と照らし合わせる範囲を指定します。
- 検索条件:合計したいデータを絞り込む条件を指定します。
- 合計範囲:実際に合計したい数値が入っている範囲を指定します。
たとえば、A列に部署名、B列に売上金額が入っている表で、「営業部」の売上だけを合計したい場合は次のように書きます。
=SUMIF(A2:A100, "営業部", B2:B100)
A2からA100の中で「営業部」となっている行の、B列の数値だけを合計します。合計範囲を省略すると、条件範囲そのものが合計対象になりますが、実務では条件と合計する数値が別の列にあることがほとんどなので、3つの引数をきちんと指定する書き方に慣れておくことをおすすめします。
2. 実務でよくある使用例
2-1. 部署別・担当者別の売上を集計する
=SUMIF(A2:A200, "営業一課", C2:C200)
もっとも典型的な使い方です。部署名や担当者名が入った列を条件範囲にして、対応する売上金額の列を合計範囲に指定します。担当者ごとの一覧表を作りたい場合は、条件のセルを固定せずにセル参照にしておくと、担当者名を変えるだけで各自の合計がすぐに確認できます。
2-2. 期日を過ぎた請求だけを合計する
=SUMIF(D2:D200, "<"&TODAY(), E2:E200)
D列に支払期日、E列に金額が入っている表で、今日より前の日付(つまり期日超過)の請求額だけを合計する例です。TODAY関数と組み合わせることで、ファイルを開くたびに「今日時点で期日を過ぎている金額」が自動的に更新されます。日付を条件にする場合は、比較演算子と関数をアンパサンド(&)でつなげて書く、という形を覚えておくと応用が利きます。
2-3. 特定の商品カテゴリーの売上だけを合計する
=SUMIF(F2:F300, "文房具", G2:G300)
商品カテゴリー別の売上集計でよく使われる形です。カテゴリーの数が多い場合は、SUMIF関数を並べるよりもピボットテーブルの方が効率的なこともありますが、既存の表のレイアウトを崩さずに集計欄だけを追加したい場合には、SUMIF関数の方が使いやすい場面も多くあります。
2-4. 特定の金額以上の取引だけを合計する
=SUMIF(H2:H150, ">=100000", H2:H150)
10万円以上の取引だけを合計したい場合の書き方です。この例のように、条件範囲と合計範囲が同じ列になることもあります。高額取引の合計だけを別枠で把握したいときに使われます。与信管理や、大口取引先への対応優先度を検討する際の一次チェックとしてもよく使われる集計です。
2-5. ワイルドカードを使って部分一致で合計する
=SUMIF(I2:I100, "*本店*", J2:J100)
「新宿本店」「渋谷本店」のように、店舗名の一部に「本店」という文字が含まれる行だけを合計したい場合に使います。COUNTIF関数と同じく、アスタリスク(*)を使うことで、完全に同じ文字列でなくても部分一致で条件を絞り込めます。
2-6. 複数の条件候補を配列でまとめて合計する
=SUM(SUMIF(A2:A100, {"営業部","開発部"}, B2:B100))
「営業部」と「開発部」のどちらかに一致する行をまとめて合計したい、という場面もあります。条件を波かっこ(配列定数)で複数まとめて指定し、外側をSUM関数で囲むことで、OR条件に近い合計を1つの数式で表現できます。慣れないうちは複雑に見えますが、条件候補が増えたときにSUMIF関数を何個も足し算する手間を省ける書き方です。
3. SUMIF関数でよくある間違い
3-1. 条件範囲と合計範囲の行数がズレている
SUMIF関数のトラブルの中でも、圧倒的に多いのがこのパターンです。条件範囲をA2:A100にしたのに、合計範囲はB2:B99のように1行短く指定してしまうと、Excelはエラーを出さずにそのまま計算を進めてしまいます。結果として、最後の1行分がこっそり合計から抜け落ちる、という静かな間違いにつながります。範囲を指定するときは、条件範囲と合計範囲の開始行・終了行が完全に一致しているかを、必ず見比べる習慣をつけておくと安心です。
3-2. 条件に指定した文字列に表記ゆれがある
COUNTIF関数と同様に、SUMIF関数も全角・半角の違いや余分なスペースを別のデータとして扱います。「営業部」のつもりで入力したセルに「営業部 」と末尾にスペースが入っていると、条件が一致せず、その行の売上が合計から漏れてしまいます。合計結果が想定より少ないと感じたときは、条件範囲のデータをまず目視で確認してみてください。
3-3. 合計したいセルが文字列として入力されている
売上金額が「50000」ではなく「50,000円」のように単位付きの文字列で入力されていると、SUMIF関数はそのセルを数値として認識できず、計算対象から静かに除外してしまいます。エラーメッセージが出ないため、合計が少ないことにしばらく気づかないまま報告書が作られてしまう、というケースも実務では起こり得ます。
3-4. 条件範囲に集計行や小計行が混ざっている
条件範囲の中に、データ行だけでなく小計行や見出し行が混ざっていると、意図しない形でその行まで条件に一致してしまうことがあります。とくに「表の途中に小計を入れる」という表の作り方をしていると、SUMIF関数でも二重計算に近い現象が起こりやすくなります。データ行と集計行は分けて管理しておくのが、SUMIF関数を安全に使うための前提になります。
3-5. 複数条件を1つのSUMIFに無理に詰め込もうとする
SUMIF関数は、条件を1つしか指定できません。「営業部かつ4月分」のように条件が2つ以上になる場合は、SUMIF関数を工夫するのではなく、次の章で紹介するSUMIFS関数に切り替えるのが正しい対処法です。
3-6. マイナスの値が交じっていることに気づかない
返品や値引きの処理で、マイナスの金額が同じ列に混在していることがあります。SUMIF関数はプラスの値もマイナスの値もそのまま合計してしまうため、「思ったより売上が少ない」と感じたら、実は返品分のマイナスがそのまま反映されていた、ということもあります。純粋な売上だけを見たいのか、返品も加味した金額を見たいのかを最初に整理しておくと、集計結果の解釈で迷わずに済みます。
3-7. フィルターをかけた状態で合計を確認して勘違いする
SUMIF関数の結果は、表示・非表示に関わらず、条件範囲全体を対象に計算されます。フィルターをかけて一部の行だけを表示している状態で「あれ、合計が思ったより多い」と感じることがありますが、これはSUMIF関数が非表示の行も含めて計算しているためで、故障や間違いではありません。表示されている行だけを合計したい場合は、SUBTOTAL関数やAGGREGATE関数を使う必要があります。
4. 条件が2つ以上になったら:SUMIFS関数へ
SUMIF関数は条件を1つしか扱えないため、複数条件で合計したい場合はSUMIFS関数を使います。書き方は似ていますが、SUMIFSは合計範囲を一番最初に書く、という引数の順番の違いがあるため、SUMIFから乗り換えるときに混同しやすいポイントです。
=SUMIFS(合計範囲, 条件範囲1, 検索条件1, 条件範囲2, 検索条件2)
SUMIFSでは、複数の範囲を同時に扱う分、範囲の行数がズレている場合の集計事故がさらに起きやすくなります。実務でSUMIFSの集計が合わないときによくある3つの原因(範囲ズレ・文字のズレ・数値形式の違い)については、以下の記事で具体例つきで詳しく解説しています。
SUMIFSで数字が合わない原因と対処法|実務で多い3つの確認ポイント https://www.excel-laboratory.online/sumifs-not-match/

よくある質問
Q. SUMIFとSUMの組み合わせで代用できますか?
条件が単純な場合は、IF関数とSUM関数を組み合わせた配列数式でも似たような結果を得られますが、書き方が複雑になり、他の人が見て理解しにくくなります。条件付きで合計したいと分かっている時点で、素直にSUMIF関数(または条件が複数ならSUMIFS関数)を使う方が、数式の見通しがよくなります。
Q. 条件範囲と合計範囲は同じシートにある必要がありますか?
同じシートである必要はありません。別のシートを条件範囲や合計範囲に指定することもできます。ただし、シート名を変更したり、シートの並び順を大きく変えたりすると、参照がずれてしまうことがあるため、複数シートをまたいで集計する場合はシート構成をできるだけ固定しておくことをおすすめします。月次で新しいシートを追加していく運用をしている場合は、集計用のシートだけは別に固定しておき、そこから各月のシートを参照する形にしておくと、シート構成が変わっても集計式を壊さずに済みます。
Q. 合計結果が0になってしまいます。原因は何が考えられますか?
もっとも多い原因は、検索条件に完全に一致するデータが条件範囲の中に存在しないことです。文字列の表記ゆれ、余分なスペース、全角・半角の違いがないか確認してください。次に多いのは、合計範囲の数値が文字列として入力されているケースです。この2つを順番に確認すれば、多くの場合原因が見つかります。
Q. 日付を条件にするとき、うまく一致してくれません。なぜですか?
日付が「2026/4/1」のように見た目は日付でも、実際にはセルの中で文字列として入力されている場合、比較演算子を使った条件が正しく機能しないことがあります。日付として認識されているセルは通常、右揃えで表示されます。左揃えになっている場合は、文字列として入力されている可能性が高いので、まずそこを確認してみてください。
まとめ
SUMIF関数は、条件付きで合計を求める実務での定番関数です。ただし「合計が合わない」というトラブルの多くは、関数の書き方の間違いというより、範囲のズレやデータの表記ゆれが原因になっています。
- 条件範囲と合計範囲の行数が完全に一致しているか確認する
- 条件に指定する文字列の表記ゆれ(全角・半角・スペース)を疑う
- 合計対象のセルが数値として入力されているか確認する
- 条件が2つ以上になったらSUMIFS関数に切り替える
合計が合わないと感じたときほど、関数そのものを疑うのではなく、まず範囲とデータの中身を一つずつ確認する。この順番を意識しておくだけで、SUMIF関数まわりのトラブルはぐっと減らせます。焦って数式を書き直す前に、範囲の行数・条件の表記・数値の形式という3つのチェックポイントを、この順番で見ていく癖をつけておくと、原因の切り分けがぐっと早くなります。

コメント