Excelで複数条件の合計を出したいときはないでしょうか。
けど、そんな中で悩むことは、
・SUMIF関数では条件を1つしか指定できない
・「以上」「以下」やワイルドカードの指定方法がわからない
ですよね。
今回はそんなお悩みを解決する
についてまとめます!
完成イメージ
売上明細から「支店」と「商品」のような複数の条件をすべて満たす行だけを合計したいとき、条件を1つしか指定できないSUMIF関数では対応できません。
今回は
・複数条件をすべて満たす行だけを合計する方法(=SUMIFS(合計対象範囲, 条件範囲1, 条件1, 条件範囲2, 条件2, …))
をゴールにします。
条件が増えても、引数を続けて書くだけで合計できるようになります。
なお、毎回数式を組み立てるのが手間な方向けにVBAで条件を指定して一括集計する方法と、うまくいかないときの対処法(トラブルシュート)もあわせてご紹介します。
早速実装して試してみましょう!

上の画像が完成形です。2条件・3条件・比較条件・ワイルドカードの4パターンの合計が、SUMIFSで一発で求められています。
もくじ
STEP1. 元データを用意する
まずは集計したい売上明細を用意します。
1行目が見出しで、A列が支店、B列が商品、C列が月、D列が金額です。
2行目以降に12件のデータが入っています。
金額はすでに計算済みの数値なので、そのまま合計に使えます。
下の表をコピーして貼り付ければ、同じデータをすぐに用意できます。

下の表をコピーして、Excelのシートに貼り付けるとそのまま試せます。
| 支店 | 商品 | 月 | 金額 |
|---|---|---|---|
| 東京 | ノートPC | 4月 | 128000 |
| 大阪 | モニター | 4月 | 32000 |
| 東京 | キーボード | 4月 | 48000 |
| 名古屋 | ノートPC | 5月 | 128000 |
| 東京 | ノートPC | 5月 | 256000 |
| 大阪 | キーボード | 5月 | 24000 |
| 東京 | モニター | 6月 | 64000 |
| 福岡 | プリンタ | 5月 | 29800 |
| 東京 | ノートPC | 6月 | 128000 |
| 名古屋 | キーボード | 6月 | 36000 |
| 大阪 | ノートPC | 6月 | 128000 |
| 東京 | プリンタ | 4月 | 59600 |
※ 数式で求める列は空にしています。すでに値が入っている列はそのまま残して試せます。
STEP2. 集計エリアを用意する
合計を出す場所を、データの下に用意します。
今回は「2条件」「3条件」「比較条件」「ワイルドカード」の4パターンを並べて確認します。
あわせてSUMIF関数との違いを見る行も用意しておきます。
15行目が見出し、16行目以降が各パターンの条件欄です。
条件はB列・C列・D列に入力し、E列の合計金額にSUMIFSの数式を入れていきます。

STEP3. 2つの条件で合計する
まずは「支店=東京」かつ「商品=ノートPC」の合計を出します。
合計を入れるセルはE16です。
数式バーに次のように入力します。
=SUMIFS($D$2:$D$13, $A$2:$A$13, B16, $B$2:$B$13, C16)
SUMIFSは合計したい範囲を最初に書きます。
そのあとに「条件範囲, 条件」のペアを、条件の数だけ続けます。
1つめの条件が「支店=東京」(A列とB16)、2つめが「商品=ノートPC」(B列とC16)です。
条件の値は直接書かずセルを参照しておくと、あとから条件を変えるだけで使い回せます。

E16セルに合計が表示されました。
「東京」かつ「ノートPC」の3件が合計され、512,000になりました。
条件に合わない行は合計に含まれていません。
カンタンですね。

STEP4. 条件を3つに増やす
条件はいくつでも増やせます。
「支店=東京」「商品=ノートPC」に加えて「月=4月」も指定してみましょう。
合計を入れるセルはE17です。
=SUMIFS($D$2:$D$13, $A$2:$A$13, B17, $B$2:$B$13, C17, $C$2:$C$13, D17)
3つめの条件「月=4月」は、C列の条件範囲とD17をペアで追加しただけです。
条件を増やすときは、この「条件範囲, 条件」のペアを足すだけでOKです。
最大127個まで指定できます。

3条件の合計は128,000になりました。
条件が3つになっても、数式の考え方は2条件のときと同じです。

STEP5. 「以上」「以下」の比較条件で絞る
数値の大小で絞りたいときは、条件に比較演算子を付けます。
ここではB18セルに「>=50000」と入力し、金額が50,000以上の合計をE18に出します。
=SUMIFS($D$2:$D$13, $D$2:$D$13, B18)
比較条件は半角のダブルクォーテーションで囲むのがポイントです。
今回は条件セルに「>=50000」と直接書いているので、数式側はセルを参照するだけです。
「50,000以上」の合計は891,600になりました。
「<=」で以下、「>」「<」で大小の絞り込みもできます。

STEP6. ワイルドカードで部分一致にする
文字の一部だけを条件にしたいときは、ワイルドカードの「*」を使います。
B19セルに「*PC」と入力すると、「PC」で終わる商品が対象になります。
=SUMIFS($D$2:$D$13, $B$2:$B$13, B19)
「*」は0文字以上の任意の文字を表します。
そのため「ノートPC」のようにPCで終わる商品がまとめて合計され、結果は768,000になりました。
ワイルドカードは半角で入力しましょう。
全角の「*」では正しく動きませんので注意してください。

STEP7. SUMIF関数との違いを押さえる
似た関数にSUMIF関数がありますが、引数の順番と条件の数が違います。
SUMIFは合計範囲が最後、SUMIFSは合計範囲が最初です。
またSUMIFは条件を1つしか指定できませんが、SUMIFSは複数指定できます。
参考として、E20にはSUMIFで「支店=東京」を合計した結果を入れてあります。
=SUMIF($A$2:$A$13, "東京", $D$2:$D$13)
| 項目 | SUMIF関数 | SUMIFS関数 |
|---|---|---|
| 書式 | =SUMIF(条件範囲, 条件, 合計範囲) | =SUMIFS(合計範囲, 条件範囲1, 条件1, …) |
| 合計範囲の位置 | 最後 | 最初 |
| 指定できる条件 | 1つだけ | 最大127個 |
| 複数条件 | できない | できる(すべて満たす=AND条件) |
| 使いどころ | 条件が1つのとき | 条件が2つ以上のとき |
SUMIFの結果は683,600で、SUMIFSで「支店=東京」だけを条件にしたときと同じ値です。
VBAで条件を指定して一括集計する
条件を変えながら何度も集計するときは、VBAでボタン化しておくとラクです。
下のコードは「東京」かつ「ノートPC」の合計をE16に書き出す例です。
Sub SumIfsDemo()
Dim ws As Worksheet
Set ws = ActiveSheet
ws.Range("E16").Value = Application.WorksheetFunction.SumIfs( _
ws.Range("D2:D13"), ws.Range("A2:A13"), "東京", ws.Range("B2:B13"), "ノートPC")
End Sub
毎月の集計など、決まった条件で繰り返し集計するときに向いています。
うまくいかないときの対処法(トラブルシュート)
実際に試すと、思ったとおりの結果にならないこともあります。
よくあるつまずきと対処法をまとめました。
| 症状 | 原因 | 対処 |
|---|---|---|
| 合計が0になる | 条件範囲と合計範囲の行数がズレている | すべての範囲を$D$2:$D$13のように行数を揃える |
| #VALUE!になる | 合計範囲と条件範囲のサイズが違う | 各範囲の開始行・終了行を同じにする |
| 比較条件が効かない | 数値をそのまま >50000 と書いている | 「>=50000」のようにダブルクォーテーションで囲む |
| ワイルドカードが効かない | 全角の「*」を使っている | 半角の * で入力する |
| 条件を増やしたら0件になった | SUMIFSはAND条件のため | 条件の組み合わせを見直す(OR条件は別々に集計して合算) |
| 合計が二重になる | 参照範囲に合計行まで含めている | データ行だけを指定する(例:$D$2:$D$13) |
関数の説明
今回使う2つの関数の概要です。
引数の順番の違いを押さえておきましょう。
SUMIFS関数(サムイフズ)
| 書式 | =SUMIFS(合計対象範囲, 条件範囲1, 条件1, [条件範囲2, 条件2], …) |
|---|---|
| できること | 複数の条件をすべて満たす行の数値を合計します。 |
| 戻り値 | 合計値(数値) |
| こんなときに | 「支店」と「商品」など、2つ以上の条件で合計したいとき。 |
| 注意 | 合計対象範囲が最初の引数です。条件範囲と合計範囲の行数は揃えてください。 |
=SUMIFS($D$2:$D$13, $A$2:$A$13, "東京", $B$2:$B$13, "ノートPC")
SUMIF関数(サムイフ)
| 書式 | =SUMIF(条件範囲, 条件, [合計範囲]) |
|---|---|
| できること | 1つの条件を満たす行の数値を合計します。 |
| 戻り値 | 合計値(数値) |
| こんなときに | 条件が1つだけのとき。 |
| 注意 | 合計範囲が最後の引数です。条件を2つ以上にしたいときはSUMIFSを使います。 |
=SUMIF($A$2:$A$13, "東京", $D$2:$D$13)
完成
4つのパターンの合計がすべて求まりました。
「東京×ノートPC」が512,000、そこに「4月」を加えると128,000です。
金額50,000以上は891,600、商品「*PC」は768,000になりました。
条件を変えるときは、条件欄のセルを書き換えるだけです。
数式はそのまま使い回せるので、集計作業がぐっとラクになります。

さいごに
いかがでしょうか。
今回は、
についてまとめました。
まずは今回のサンプル表で、ぜひ一度試してみてください。
条件をセル参照にしておくと、条件を差し替えるだけで何度でも集計できます。
また、他にも便利なExcelの時短テクニックがありますので、よろしければご参照頂ければと思います。
ぜひ試してみてください。










コメントを残す