Excelで集計作業をしていると、「特定の条件に当てはまるデータだけを合計したい」という場面はとても多いものです。
たとえば、特定の商品の売上だけを合計したい、特定の担当者かつ特定の期間のデータだけを抽出して集計したい、といったケースが該当します。
そんなときに活躍するのが、SUMIF関数やSUMIFS関数です。
この記事では「【Excel】エクセルで条件に合う場合だけ合計する(SUMIF・SUMIFS・複数条件・抽出)方法」をテーマに、基本的な使い方から複数条件の設定、よくあるエラーへの対処法まで丁寧に解説していきます。
初心者の方でも理解しやすいよう、具体的な例や表を交えながら説明しますので、ぜひ最後までお読みください。
条件付き合計の基本はSUMIF・SUMIFSで解決できる
それではまず、条件に合う場合だけ合計するための基本的な考え方と、SUMIF・SUMIFS関数の概要について解説していきます。
Excelには通常のSUM関数がありますが、これはすべてのセルを合計するため、条件を絞った集計には対応していません。
条件付きで合計するには、SUMIF関数またはSUMIFS関数を使うのが基本です。
この2つの関数は似ていますが、対応できる条件の数が異なります。
SUMIF関数は「1つの条件」に合うデータだけを合計する関数です。
SUMIFS関数は「複数の条件」すべてに合うデータだけを合計する関数です。
まずはSUMIF関数の基本構文を確認しましょう。
SUMIF(範囲, 検索条件, 合計範囲)
例:=SUMIF(A2:A10, “りんご”, B2:B10)
→ A列が「りんご」のときに、対応するB列の値を合計する
次にSUMIFS関数の基本構文です。
SUMIFS(合計範囲, 条件範囲1, 条件1, 条件範囲2, 条件2, …)
例:=SUMIFS(C2:C10, A2:A10, “りんご”, B2:B10, “東京”)
→ A列が「りんご」かつB列が「東京」のときに、C列の値を合計する
SUMIFとSUMIFSで引数の順番が異なる点に注意が必要です。
SUMIFは「範囲→条件→合計範囲」の順ですが、SUMIFSは「合計範囲→条件範囲→条件」の順になっています。
この違いを押さえておくと、入力ミスを防ぐことができるでしょう。
SUMIF関数の基本的な使い方
SUMIF関数は、1つの条件に一致するデータを合計したいときに使います。
たとえば以下のような売上データがあるとします。
| 商品名 | 売上金額 |
|---|---|
| りんご | 1,000 |
| バナナ | 2,000 |
| りんご | 1,500 |
| みかん | 800 |
| バナナ | 1,200 |
この場合、=SUMIF(A2:A6, “りんご”, B2:B6) と入力すると、りんごの売上合計「2,500」が返ってきます。
条件にはセル参照を使うこともできるため、条件をセルに入力しておいて関数でそのセルを参照する方法も便利です。
SUMIF関数でワイルドカードを使う方法
SUMIF関数では、条件にワイルドカード(* や ?)を使った部分一致の検索が可能です。
たとえば「りんご」を含むすべてのセルを対象にしたい場合は、条件を「”*りんご*”」と指定します。
=SUMIF(A2:A10, “*りんご*”, B2:B10)
→「青りんご」「りんごジュース」なども含めて合計できる
「*」は任意の文字列を表し、「?」は任意の1文字を表します。
部分一致や前方一致、後方一致の条件を柔軟に設定できる便利な機能です。
SUMIF関数で数値条件を使う方法
条件には文字列だけでなく、数値や比較演算子も使用できます。
=SUMIF(B2:B10, “>1000”, B2:B10)
→ B列の値が1000より大きいデータだけを合計する
「>(大なり)」「<(小なり)」「>=」「<=」「<>(等しくない)」などの比較演算子が使えます。
数値条件を設定する際は、演算子と数値をダブルクォーテーションで囲むことを忘れないようにしましょう。
SUMIFS関数で複数条件を使った合計を行う方法
続いては、複数条件に対応したSUMIFS関数の使い方を確認していきます。
実務では「商品がりんご、かつ担当者が山田さんのデータだけを合計したい」というように、2つ以上の条件を組み合わせたい場面が多くあります。
そのような場合にSUMIFS関数が非常に役立ちます。
SUMIFSで2つの条件を設定する
以下のようなデータを例に説明します。
| 商品名 | 担当者 | 売上金額 |
|---|---|---|
| りんご | 山田 | 1,000 |
| バナナ | 山田 | 2,000 |
| りんご | 鈴木 | 1,500 |
| りんご | 山田 | 1,200 |
| みかん | 鈴木 | 800 |
「りんご」かつ「山田」のデータの合計を出したい場合は、以下のように記述します。
=SUMIFS(C2:C6, A2:A6, “りんご”, B2:B6, “山田”)
→ 結果:2,200(1,000 + 1,200)
SUMIFSは条件をいくつでも追加できるため、3つ以上の条件も同じ形式で記述するだけです。
条件範囲と条件をペアで並べていくイメージで記述しましょう。
SUMIFSで日付範囲を条件にする
日付を条件にする場合も、SUMIFS関数が便利です。
たとえば「2024年1月1日から2024年1月31日の間」のデータを合計したい場合は、以下のように記述します。
=SUMIFS(B2:B100, A2:A100, “>=”&DATE(2024,1,1), A2:A100, “<="&DATE(2024,1,31))
→ 2024年1月の売上合計を算出できる
比較演算子と日付をアンパサンド(&)でつなぐのがポイントです。
DATE関数を組み合わせることで、年月日を正確に指定した日付範囲の集計が可能になります。
SUMIFSでOR条件(どちらかに該当)を実現する方法
SUMIFS関数はAND条件(すべてに合致)が基本ですが、OR条件(いずれかに合致)を実現したい場合は少し工夫が必要です。
最もシンプルな方法は、複数のSUMIFS関数の結果を足し合わせるやり方です。
=SUMIFS(C2:C10, A2:A10, “りんご”) + SUMIFS(C2:C10, A2:A10, “バナナ”)
→「りんご」または「バナナ」に該当するデータの合計を算出できる
また、SUMPRODUCT関数と組み合わせることで、より柔軟なOR条件の集計も実現可能です。
条件が増えてくるとやや複雑になりますが、基本のパターンを覚えておくと応用しやすいでしょう。
SUMIF・SUMIFSを使う際のよくあるエラーと対処法
続いては、SUMIF・SUMIFS関数を使う際に発生しやすいエラーとその対処法を確認していきます。
関数を正しく入力したつもりでも、思った通りに結果が出ないことがあります。
よくある原因を把握しておくことで、トラブルシューティングの時間を大幅に短縮できます。
結果が0になってしまう場合の原因
SUMIF・SUMIFSで結果が「0」になってしまうケースはよくあります。
主な原因は以下の通りです。
| 原因 | 内容 |
|---|---|
| セルの書式が文字列 | 数値として認識されずに合計されない |
| スペースが混入している | 「りんご 」のように余分なスペースが入っていると一致しない |
| 全角・半角の違い | 「riんご」と「りんご」は別物として扱われる |
| 範囲の指定ミス | 条件範囲と合計範囲のサイズが一致していない |
スペースの混入や書式の問題は特に見落としやすいポイントです。
TRIM関数で余分なスペースを除去したり、セルの書式を「数値」に変更したりして対処しましょう。
VALUE!エラーが出る場合の対処法
#VALUE!エラーは、引数の型が正しくない場合に表示されます。
SUMIFS関数で特に多いのは、条件範囲と合計範囲のサイズが一致していないケースです。
SUMIFS関数では、合計範囲・各条件範囲のセル数(行数と列数)がすべて一致している必要があります。
範囲がずれているとエラーになるため、必ず同じ大きさの範囲を指定してください。
また、条件に使用する比較演算子(>や<など)をダブルクォーテーションで囲まずに入力してしまった場合もエラーになります。
数式を見直す際は、引数の型と範囲のサイズを必ず確認してみましょう。
条件に他のセルを参照する場合の注意点
条件にセル参照を使う場合は、比較演算子と組み合わせるときに書き方を工夫する必要があります。
条件がセルE1に入力されている場合
誤:=SUMIF(A2:A10, “>E1”, B2:B10)
正:=SUMIF(A2:A10, “>”&E1, B2:B10)
演算子を文字列として記述し、アンパサンド(&)でセル参照とつなぐのが正しい書き方です。
セル参照をクォーテーションの中に書いてしまうと、文字列の「E1」として扱われてしまうため、正しく動作しません。
SUMIF・SUMIFSを応用した便利な使い方
続いては、SUMIF・SUMIFSをさらに活用するための応用テクニックを確認していきます。
基本的な使い方に慣れてきたら、他の関数と組み合わせることで集計作業の幅が広がります。
実務でよく使われる応用パターンをいくつか紹介します。
SUMIF関数とINDIRECT関数を組み合わせる
INDIRECT関数を組み合わせると、シート名や範囲を動的に切り替えた集計が可能になります。
たとえば複数のシートにある同じ形式のデータをまとめて集計したいときに役立ちます。
=SUMIF(INDIRECT(“Sheet1!A2:A10”), “りんご”, INDIRECT(“Sheet1!B2:B10”))
→ Sheet1の特定範囲に対してSUMIFを適用できる
シート名をセルに入力しておき、そのセルをINDIRECTで参照する構成にすると、シートを切り替えるだけで集計対象が変わる動的な表が作れます。
SUMPRODUCT関数でより柔軟な条件集計を行う
SUMPRODUCT関数は、配列計算ができるため、SUMIFS関数では対応しにくい複雑な条件にも対応できます。
=SUMPRODUCT((A2:A10=”りんご”)*(B2:B10=”山田”)*C2:C10)
→ A列が「りんご」かつB列が「山田」のC列の値を合計する
OR条件を含む複雑な集計や、配列を使った高度な抽出にも対応できる点がSUMPRODUCTの強みです。
SUMIFSで対応しきれない場面ではSUMPRODUCTを検討してみましょう。
SUMIF関数で縦横のクロス集計を行う
クロス集計(行・列の2軸で集計する表)を作りたい場合も、SUMIF・SUMIFSを応用できます。
行に商品名、列に担当者名を配置した集計表をSUMIFSで作ると、どの担当者がどの商品をいくら売ったかが一目でわかる表になります。
=SUMIFS($C$2:$C$100, $A$2:$A$100, $E3, $B$2:$B$100, F$2)
→ 行は商品名(E列)、列は担当者名(2行目)で参照するクロス集計式
(絶対参照と相対参照を組み合わせることで、コピーしても崩れない数式になる)
絶対参照($マーク)の使い方を工夫することで、数式を縦横にコピーするだけで集計表が完成します。
これは実務でも非常によく使われるテクニックのひとつです。
まとめ
この記事では「【Excel】エクセルで条件に合う場合だけ合計する(SUMIF・SUMIFS・複数条件・抽出)方法」について解説しました。
SUMIF関数は1つの条件に合うデータを合計する関数、SUMIFS関数は複数の条件をすべて満たすデータを合計する関数です。
この2つの関数を使いこなすことで、Excelの集計作業は格段に効率化されます。
また、ワイルドカードや日付条件、セル参照との組み合わせなど、応用的な使い方を覚えるとさらに便利になるでしょう。
エラーが出た際はセルの書式・スペースの混入・範囲のサイズなどを確認するのが基本的な対処法です。
SUMPRODUCT関数やINDIRECT関数との組み合わせも覚えておくと、複雑な条件集計にも対応できるようになります。
ぜひ今回紹介した内容を実際の業務でも活用して、Excelの集計スキルを高めてください。