SUMIF関数の使い方!条件の範囲内を合計
SUMIF関数とは、「ある条件を満たすデータだけを検索して合計を算出する」関数です。
SUMIF関数(画像はエクセルの使い方 ガイド緑川吉行氏作成)
下のような売上実績データから、大阪支店の売上金額だけ合計して算出することができたり、支出額データから特定の用途を指定して金額を合計したりと、ビジネスから家庭用まで幅広く役立つSUMIF関数。今回は、そんなSUMIF関数の基本的な使い方と、様々な場面で使いやすい応用法をご紹介します。

(画像はガイド記事「条件を満たすデータの平均値を算出するAVERAGEIF関数」より引用)
- SUMIF関数の使い方
- 応用1.特定の文字を含むデータを合計したい場合
- 応用2.日付を条件に指定する場合
- 応用3.”以外”を条件にしたい場合
- 応用4.OR条件を入れたい場合
- 複数条件を同時に満たすデータの合計を出すにはSUMIFS関数
SUMIF関数の使い方
それでは、実際にSUMIF関数を使って特定のデータの合計を算出してみましょう。例として、下の「4月の支出額リスト」から「用途」が「食費」の「金額」だけを合計します。

このデータから「用途」が「食費」の「金額」を合計して算出したい
このときの数式は、
=SUMIF(B3:B14,”食費”,C3:C14)
です。これをC16のセルに入力します。

「検索条件」を「””(ダブルクオーテーション)」で囲むのを忘れずに
すると、「金額」データの中から「用途」が「食費」のものだけが合計され、C16セルに「7010」と表示されました。

「用途」が「食費」のデータだけを合計できた
数式を直接入力する以外にも、数式タブの「関数の挿入」ボタンからSUMIF関数を選択して使用することもできます。

数式タブにある「関数を挿入」ボタン

引数を入力する画面が表示される
これで「OK」を押しても、先ほどと同じように「7010」と表示されます。
応用1.特定の文字を含むデータを合計したい場合
ここからは、SUMIF関数の応用法について解説していきます。まずは、特定の文字を含むデータを合計したい場合について。例として、以下の購入リストの中から「チョコ」という文字を含むものの金額を合計したいとします。
ここから「チョコ」を含む商品の金額を合計したい
このとき、数式の「検索条件」には「*チョコ*」と入力します。「チョコ」の前後を「*(アスタリスク)」で囲みましょう。したがって、入力する数式は、
=SUMIF(B2:B8,”*チョコ*”,C2:C8)
となります。

「検索条件」には「*チョコ*」と記入
すると、C11セルに「370」と表示されます。

「イチゴチョコ」「チョコレート」「ホワイトチョコ」の合計
この「*(アスタリスク)」はワイルドカードといって、特定の文字列を抽出したいときに使用します。抽出したい文字列の前後両方にワイルドカードをつけると、その文字を含む文字列が抽出されます。
「*チョコ」のように、文字の前にワイルドカードをつけると末尾が「チョコ」の文字列が抽出され、逆に「チョコ*」とすると先頭に「チョコ」がつく文字列が抽出されます。

末尾が「チョコ」の文字列を抽出するとき
「検索条件」に「*チョコ」と入力すると……

「検索条件」を「*チョコ」にした場合の表示
「イチゴチョコ(200円)」と「ホワイトチョコ(90円)」の合計が算出されました。「チョコレート(80円)」は含まれていないことが分かりますね。
応用2.日付を条件に指定する場合
条件に日付を指定することも可能です。条件が日付のとき、以下の3つに場合分けされると思います。1、特定の日付以降の合計を算出
=SUMIF(日付範囲,">=yyyy/mm/dd",合計範囲)
たとえば4月10日以降のデータを合計したいとき、数式は
=SUMIF(A3:A14,">=2017/4/10",C3:C14)
となります。

4月10日以降の支出合計は「85010」と表示された
2、今日以前の合計を算出
条件として指定したい日付が今日の場合、以下のような数式でも合計を出すことができます。
=SUMIF(日付範囲,"<="&TODAY(),合計範囲)
3、日付セル以前の合計を算出
日付セルを指定して、それ以前の合計を算出することもできます。例えば、4月7日よりも前の合計を出す場合、A4セルを指定して次のような数式を入力します。
=SUMIF(日付範囲,"<="&A4,合計範囲)

4月7日以前の支出額の合計
応用3.”以外”を条件にしたい場合
「検索条件」に「<>○〇(検索対象外に指定するもの)」と入力します。例えば、「交通費」以外の金額合計を算出したい場合、「検索条件」には「”<>交通費”」と入力。全体の数式は、=SUMIF(B3:B14,"<>交通費",C3:C14)
となります。

「〇〇以外」を検索条件にしたいときは「<>〇〇」とする

交通費以外の支出額が算出できた
応用4.OR条件を入れたい場合
最後に、検索条件にOR条件を入れたい場合について。SUMIF関数を用いて「AもしくはB」を検索条件に指定できるのは、AとBに重複するデータが存在しない場合のみです。
たとえば今回の例なら、「用途」が「食費」または「交通費」の金額の合計を算出することはできます。この場合、「食費」の合計を導く数式と「交通費」の合計を導く数式を合計しましょう。入力する数式は、
=SUMIF(B3:B14,”食費”,C3:C14)+ SUMIF(B3:B14,”交通費”,C3:C14)
です。簡単ですね。
しかし、「4月10日以前」または「食費」の合計を算出というように、複数の条件を同時に満たすデータが存在する場合、SUMIF関数を使うとかなり面倒な数式になってしまうので、先にIF関数で「4月10日以前」かつ「用途」が「食費」であるデータを導いてからSUM関数を使用した方がよいでしょう。

「4月10日以前」と「食費」を同時に満たすデータが存在するのでSUMIF関数では合計できない
複数条件を同時に満たすデータの合計を出すにはSUMIFS関数
SUMIF関数は基本的に1つの条件を指定して合計を算出する関数ですが、Excel2007より追加されたSUMIFS関数を使えば、複数条件を同時に満たすデータの合計を出すことができます。
画像はガイド記事「SUMIFS関数で複数条件を満たすデータの合計を算出」より引用
上の例では、支店が「東京」で営業した人が「佐藤」、そして得意先が「株式会社エクセル」という3つの条件を同時に満たすデータが3行目と12行目に存在しますね。このような複数条件を同時に満たすデータの合計を出すときにSUMIFS関数が使えます。
SUMIFS関数については、ガイド記事「SUMIFS関数で複数条件を満たすデータの合計を算出」で詳しく解説しているので、そちらをご覧ください。
【関連記事】