月次の売上集計、部署別の経費集計、担当者別の件数集計など、「表の中から条件に合う行だけを取り出して合計する」作業は経理・営業事務の定番業務です。この作業を手作業でやろうとすると、フィルターをかけて範囲選択して合計、という手順を条件の数だけ繰り返すことになり、時間もかかれば範囲選択ミスも起きやすくなります。SUMIF関数とSUMIFS関数を使えば、この集計を数式1本で自動化できますが、名前が似ているため「どちらを使えばいいのか」「引数の順番が覚えられない」と迷う方が多い関数でもあります。
SUMIFとSUMIFSの基本的な違い
どちらも「条件に合う行の数値を合計する」という目的は同じですが、対応できる条件の数と引数の並び順が異なります。
SUMIF
- 条件は1つだけ指定できる
- 引数の順番は「条件範囲・条件・合計範囲」
- 合計範囲を省略すると条件範囲自体を合計する
- 複数条件(AND条件)には対応できない
SUMIFS
- 条件を複数(2つ以上)指定できる
- 引数の順番は「合計範囲」が先頭に来る
- 条件範囲と条件のペアを増やせばAND条件を追加できる
- 条件が1つのときもそのまま使える
特に注意したいのが引数の順番です。SUMIFは「条件範囲、条件、合計範囲」の順ですが、SUMIFSは「合計範囲、条件範囲1、条件1、条件範囲2、条件2…」と、合計範囲が先頭に来ます。SUMIFの感覚のままSUMIFSを書こうとすると、合計したい列と条件の列を逆に指定してしまうミスが起きやすいので、この順番の違いは意識しておく価値があります。
実務でのよくある使用シーン
経理担当者であれば「勘定科目が『交通費』の行だけを合計して月次の交通費総額を出す」場面ではSUMIFで十分ですが、「部署が『営業部』、かつ月が『4月』の行だけを合計する」というように条件が2つ以上になるとSUMIFSが必要になります。営業事務であれば「担当者ごと・商品カテゴリごとの売上を集計する」場面、総務担当者であれば「申請区分が『承認済み』、かつ支払月が今月の経費だけを合計する」場面などが典型例です。実務では条件が1つで済むケースより、複数条件になるケースのほうが多いため、最初からSUMIFSに慣れておくと応用が利きます。
条件付き集計でよくあるエラー・トラブルと対処法
エラー表示は出ないのに答えが0になるケースで、原因は主に次の2つです。
- 条件に指定した文字列が、表側のセルの内容と完全に一致していない(表記ゆれ、全角半角、余分な空白)
- 合計したい範囲の数値が、実は「文字列としての数字」になっている(他システムから取り込んだデータに多い)
対処法として、条件側の文字列はセルを直接参照する形にして手入力の表記ゆれを防ぐこと、また合計範囲の数値がセル左寄せで表示されていないか(=文字列扱いになっていないか)を確認し、必要であれば「区切り位置」機能や「値を数値に変換」の操作で数値化してから集計してください。
SUMIFS特有のエラーで、条件範囲と合計範囲の行数(サイズ)が一致していない場合に発生します。
複数の範囲をコピー&修正しながら数式を組み立てるときに起きやすいミスです。すべての範囲(合計範囲・条件範囲1・条件範囲2…)の行数がそろっているか、数式バーで見比べて確認しましょう。
条件の書き方が原因で、想定と違う範囲が集計対象になっているケースです。特に日付やワイルドカードを使うときに起きやすくなります。
日付を条件にする場合は、文字列としての「4月」ではなく、日付の範囲(4月1日以上、4月30日以下など)として比較演算子付きで条件を指定する必要があります。SUMIFSであれば同じ日付列に対して「以上」「以下」の2条件を追加することで期間集計ができます。
初心者がつまずきやすいポイントとコツ
- SUMIFSは「合計範囲」が一番最初にくることを覚える。SUMIFとは引数の並びが違うため、混同しないよう意識するだけでミスがかなり減ります。
- 条件範囲・合計範囲は絶対参照($)で固定する。数式を他のセルにコピーしたときに範囲がズレるのを防げます。
- 条件が今後増える可能性があるなら、最初からSUMIFSで作っておく。あとからSUMIFに条件を追加することはできないため、SUMIFSへの書き換えが必要になります。
- ワイルドカード(*や?)は文字列の条件にのみ使える。「営業*」のように部分一致で集計したい場合に便利ですが、数値や日付の条件には使えません。
まとめ
SUMIFとSUMIFSはどちらも「条件に合う数値だけを合計する」関数ですが、条件が1つならSUMIF、2つ以上ならSUMIFSという使い分けが基本です。ただしSUMIFSは条件が1つのときもそのまま使えるため、実務では最初からSUMIFSで統一してしまう方が、後から条件を追加する際に数式を書き直さずに済みます。引数の並び順の違い(合計範囲が先頭に来るかどうか)だけ意識しておけば、複雑な条件付き集計も自動化できます。数式を一から組み立てるのが不安な方は、下のツールで日本語の空欄を埋めるだけで数式を作成できます。
よくある質問
関連記事
- COUNTIFS関数で複数条件を数える方法
- SUBTOTAL関数でフィルター後の合計を正しく出す方法
- LARGE・SMALL関数で上位・下位ランキングを抽出する方法
- AVERAGEIF関数で条件付き平均を出す方法|SUMIFとの関係とよくあるエラー