【エクセル】条件に合う数値を合計するSUMIF関数の使い方。パターン別の集計方法を解説

エクセルのSUMIF関数の使い方と条件の設定方法

Excel(エクセル)の表で、特定の条件に合う数値だけを合計したい時は、どの関数を利用しますか?

特定の条件の数値を合計するときは、「SUMIF関数」を利用すると大変便利です。

エクセルで膨大なデータを取り扱う人にとっては、大きな武器となるExcel定番関数の一つです。

今回は、「SUMIF関数の使い方と手順」、「SUMIF関数のパターン別の使い方」を紹介します。

それ以外にも、エラーが発生する原因や複数条件での利用方法など、SUMIF関数に関するテクニックを幅広く紹介します。

SUMIF関数とは

エクセルのSUMIF関数は、サム・イフと読みます。

SUM関数が合計する関数なので、その関数に「IF(もし)」という条件を設定出来る機能が加わった関数ということです。

例えば、下の表から「A製品」の数量だけを合計したい、といった場合に利用します。

SUMIF関数を使うことで、F列の中から「A製品」の数量を合計することができます。

図解.SUMIF関数とは条件に合った数を合計する関数
図解.SUMIF関数とは条件に合った数を合計する関数

上の例では、「A製品」という文字と完全一致する項目だけを集計しました。

それ以外にも「北という文字から始まる」ものを集計する、といった部分一致による集計。

「2月1日以降」のものを集計する、といった範囲指定による集計もSUMIF関数で可能です。

SUMIF関数の条件設定

・完全一致

・部分一致

・範囲

基本的に、SUMIF関数で設定出来る条件は1つだけです。

SUMIF関数を複数条件で使う応用の使い方を後半に紹介しますが、2つ以上の条件を設定したい場合は、SUMIFS関数を利用した方が便利です。

SUMIFS関数の使い方は以下の記事を参考にしてください。

SUMIF関数の構文と引数

SUMIF関数の構文と引数を紹介します。

引数とは、関数が使用する上で必要な設定項目のことです。関数名の後の「()」内に入力します。

構文(書式)

SUMIF関数の構文は、「範囲」「検索条件」「合計範囲」の3つの引数で構成されています。

=SUMIF(範囲,検索条件,[合計範囲])

引数

SUMIF関数では、「範囲」「検索条件」「合計範囲」の3つの引数を指定します。

具体的には、以下のように構文を完成させる必要があります。

=SUMIF(C3:C12,"A製品",F3:F12)

第1引数「範囲:検索の対象とするセル範囲を指定します。(例:C3:C12)

第2引数「検索条件:セルを検索するための条件を数値や文字列で指定します。文字や範囲を指定する場合はダブルクォーテーション「”」で囲みます。(例:5、C4、”A製品”、”*リスト”、”=>1000”、”<500”、”<>土”  など)

第3引数「合計範囲:合計したい値が入力されているセル範囲を指定します。(例:F3:F12)

比較演算子(記号)

SUMIF関数の検索条件で『以上』『以下』『より上』『未満』などの条件を設定する際は、比較演算子を利用します。

『以上』『より上』『以下』『未満』『以外』などの条件をつけて合計するには、『>=』『>』『<=』『<』『<>を引数の指定の際に使用します。記号は半角で使用します。

番号記号意味使用例
1>=以上”=>100”
2>より上”>100”
3<=以下<=100”
4<未満<100”
5<>以外<>0”

SUMIF関数の使い方と手順を紹介

それでは実際にSUMIF関数を使ってみましょう。

以下の表から「A製品」の「数量」をSUMIF関数で挿入する手順を5つのステップに分けて解説します。

SUMIF関数でA製品だけの数量を合計したい
SUMIF関数でA製品だけの数量を合計したい

第1ステップ:SUMIF関数を挿入

集計結果を表示したいセルに、『=SUMIF(』と入力します。

=SUMIF(

手順1.SUMIF関数を挿入
手順1.SUMIF関数を挿入

第2ステップ:第1引数(範囲)を指定

続いて、第1引数「範囲」を指定します。

製品が入力されているC3からC8までの範囲をドラッグして、検索条件を探す範囲を指定します。

指定したあとは、「,」(カンマ)を入力して第1引数を区切ってください。

=SUMIF(C3:C8,

手順2.SUMIF関数の第1引数「範囲」を指定
手順2.SUMIF関数の第1引数「範囲」を指定

第3ステップ:第2引数(検索条件)を指定する

続いて、2つ目の引数「検索条件」を指定します。

今回は「A製品」という文字が入力された数量を集計したいので、「A製品」と入力されたE11セルをクリックします。

=SUMIF(C3:C8,E11,

指定したあとは、「,」(カンマ)を入力して第1引数を区切ってください。

セルを指定せずに、ダブルクォーテーションを使って、「=SUMIF(C3:C8,”A製品”,」と入力してもいいです。

手順3.SUMIF関数の第2引数「検索条件」を指定
手順3.SUMIF関数の第2引数「検索条件」を指定

第4ステップ:第3引数(合計範囲)を指定する

3つ目の引数「合計範囲」を指定します。

数量が入力されているF3からF8までの範囲をドラッグして、集計する範囲を指定します。

=SUMIF(C3:C8,E11,F3:F8)

手順4.SUMIF関数の第3引数「合計範囲」を指定
手順4.SUMIF関数の第3引数「合計範囲」を指定

第5ステップ:確定する

「Enter」キーを押して関数を確定させてください。

そうすると表の中に「A製品」の合計数量は「55」であることが分かりました。

手順5.SUMIF関数で特定の条件の合計が表示
手順5.SUMIF関数で特定の条件の合計が表示

SUMIF関数を使った実例(検索条件パターン別)

SUMIF関数の使い方の一番のポイントは2つ目の引数「検索条件」です。

検索条件は、「完全一致」「部分一致」「範囲指定」の3つの設定パターンがあります。

それぞれのパターン別のSUMIF関数を使った実例を紹介します。

検索条件:完全一致

「C製品」の売上数量を合計するSUMIF関数の使い方を紹介します。

下のSUMIF関数を挿入することで合計することが出来ます。

=SUMIF(C3:C8,"C製品",F3:F8)

SUMIF関数の実例(完全一致)
SUMIF関数の実例(完全一致)

引数「検索条件」は、表内の「C製品」と入力されているC7セルを指定することも出来ます。

=SUMIF(C3:C8,C7,F3:F8)

検索条件:部分一致

2つ目は検索条件を「部分一致」で利用する方法です。

「部分一致」とは、例えば、「Aから始まる文字」「Aで終わる文字」「Aを含む文字」といった検索条件のことをいいます。

このような検索条件を設定する時は、ワイルドカード文字という特殊文字を利用します。

このワイルドカードは、「*(アスタリスク)””「?」(疑問符)です。

ワイルドカード文字説明
*(アスタリスク)0文字以上の任意の文字列
(疑問符)任意の1文字

商品コードが「DE」から始まる売上数量を合計する場合は、以下のSUMIF関数を挿入します。

下のSUMIF関数を挿入することで合計することが出来ます。

=SUMIF(B3:B8,"DE*",F3:F8)

SUMIF関数の実例(部分一致)
SUMIF関数の実例(部分一致)

商品コードに「A」を含む場合は以下のように設定します。

=SUMIF(B3:B8,"*A*",F3:F8)

SUMIF関数の実例(部分一致) アスタリスク2つ
SUMIF関数の実例(部分一致) アスタリスク2つ

ワイルドカードの使い方は、以下の記事でも詳しく紹介しています。

「?」の使い方など、合わせて参考にしてみてください。

検索条件:範囲指定

3つ目は検索条件を「範囲指定」で利用する方法です。

例えば、「2月1日以前」や「2月15日以降」といった条件を設定できます。

検索条件の入力方法は、以下の表を参考にしてください。

条件直接入力 (日付)直接入力 (数値)セル指定
〇〇以上">=yyyy/mm/dd"">=30"">="&E11
〇〇より大きい">yyyy/mm/dd"">30"">"&E11
〇〇未満"<yyyy/mm/dd""<30"“<"&E11
〇〇以下"<=yyyy/mm/dd""<=30"“<="&E11
〇〇と等しい"=yyyy/mm/dd“ or
"yyyy/mm/dd“
"=30“ or
"30“
“=”&E11 or
E11
〇〇以外"<>yyyy/mm/dd“"<>30“"<>"&E11
今日以降“>="&TODAY()--
今日以前"<="&TODAY()--

ただし、「2月1日から2月15日まで」といった範囲を上限と下限ともに絞るような条件設定は出来ません。

その場合は、SUMIFS関数を使用して複数条件で合計する必要があります。

売上日が「3月1日以降」の販売数量を合計したい場合は、SUMIF関数を以下のように設定します。

=SUMIF(E3:E8,">=2023/3/1",F3:F8)

SUMIF関数の実例(範囲指定)
SUMIF関数の実例(範囲指定)

検索条件をセル番号を指定して設定することも可能です。

=SUMIF(E3:E8,">="&E6,F3:F8)

SUMIF関数の合計が「0」やエラー「VALUE!」が発生する原因

SUMIF関数の構文はシンプルですが、合計値が「0」になったり、エラーが発生する場合があります。

そんな時、ぜひチェックしてほしい3つの項目をご紹介します。

原因1:数値が文字列になってる

合計値が「0」となる場合は、数値の入ったセルが『文字列』になっている可能性があります。

例えば、下の表に「C製品」の売上を合計するために、以下のSUMIF関数を挿入していますが、結果は「0」です。

=SUMIF(C3:C8,"C製品",F3:F8)

文字列が原因でSUMIF関数の結果が「0」
文字列が原因でSUMIF関数の結果が「0」

確認するために、数値が入ったセルを右クリックして、右クリックメニューの「セルの書式設定」を押すと、「文字列」になっていることが分かります。

セルの書式設定が「文字列」の影響でSUMIF関数でエラー
セルの書式設定が「文字列」の影響でSUMIF関数でエラー

この場合は、セルの書式設定を「文字列」から「標準」に変更する必要があります。

変更方法が分からない方は、以下の記事で詳しく紹介していますので、参考にしてみてください。

原因2:比較演算子やワイルドカードが全角になっている

「>」「=<」などの比較演算子や、「*」「?」のワイルドカードが全角になっていると、値が「0」になります。

数式バーで数式を再確認して、全角が混ざっていないか再確認し、半角に変更しましょう。

全角が含まれていると、以下のようにSUMIF関数の合計は「0」となります。

=SUMIF(B3:B8,"DE",F3:F8)

全角が原因でSUMIF関数の結果が「0」
全角が原因でSUMIF関数の結果が「0」

原因3:別のExcelブックを参照している

SUMIF関数を使って、別のExcelブックの表を合計することも出来ます。

しかし、SUMIF関数で別のExcelブックの合計を利用するのはお勧めしません。

というのも、2つのExcelファイルを共に開いた状態にしていないと、エラー「VALUE!」が発生してしまうからです。

どういうことか図解で説明します。

まず、SUMIF関数を使って、別のExcelファイルの表の値を合計します。

=SUMIF([元表.xlsx]使い方!$C$3:$C$8,"C製品",[元表.xlsx]使い方!$F$3:$F$8)

別のExcelブックをSUMIF関数で合計
別のExcelブックをSUMIF関数で合計

この2つのExcelファイルを一度上書き保存してから閉じて、再度SUMIF関数を挿入したExcelファイルを開きます。

そうすると、SUMIF関数の結果がVALUE!と表示されてしまいます。

SUMIF関数の結果が「#VALUE!」と表示
SUMIF関数の結果が「#VALUE!」と表示

元表のExcelを開くことで、このエラーは解消します。

しかし、元表のExcelファイルを削除したり、ファイルの保存場所を変更するとエラーを解消することは出来ません。

SUMIF関数の検索条件と合計範囲を自動で変更する方法

下の表のように、「A製品」「B製品」「C製品」の5月売上数量の合計を、赤枠のセルに表示したい場合があります。

この場合、3つのSUMIF関数を赤枠のセルに挿入する必要がありますが、SUMIF関数の検索条件と合計範囲を、セルごとに設定していると手間がかかります。

SUMIF関数を簡単に設定するためには?
SUMIF関数を簡単に設定するためには?

こんな時には、OFFSET関数とMATCH関数を組み合わせて、以下のSUMIF関数を挿入します。

=SUMIF($B$3:$B$8,I2,OFFSET($B$3:$B$8,,MATCH($H$3,$C$2:$F$2,0)))

SUMIF関数にOFFSET関数とMATCH関数を組み合わせる
SUMIF関数にOFFSET関数とMATCH関数を組み合わせる

上のSUMIF関数をI3、J3、K3セルのどのセルに挿入しても、検索条件に合う数値を合計することが出来ます。

検索条件と合計範囲を可変にするSUMIF関数の使い方
検索条件と合計範囲を可変にするSUMIF関数の使い方

OFFSET関数は、基準のセルから指定された行数と列数だけシフトした位置にあるセル範囲の参照を返す関数です。構文は「=OFFSET(基準, 行数, 列数)」で作成します。

MATCH関数(マッチ関数)は、指定した検索範囲内で、数値や文字列などの検索値(検査値)が、どの位置にあるかを数値(〇〇列目、▲▲行目)で返す関数です。構文は、「=MATCH(検査値,検査範囲,[照合の型])」で作成します。

SUMIF関数で複数の条件で合計する方法

SUMIF関数で複数条件を指定することも可能です。

OR(または)条件とAND(かつ)条件で2通りの使い方に分けられます。

図解.SUMIF関数の複数条件は2パターン
図解.SUMIF関数の複数条件は2パターン

OR条件で合計する

まずは、「A製品」もしくは「B製品」の販売数量を合計する、といった場合は、OR条件でSUMIF関数を利用します。

図解.AもしくはB
図解.AもしくはB

今回は、下の表から「A製品」もしくは「B製品」の販売数量を合計する方法を紹介します。

A製品とB製品の売上数量を合計する場合
A製品とB製品の売上数量を合計する場合

この場合は、一つのセルにSUMIF関数を2つ挿入し、「A製品」と「B製品」の合計をそれぞれ加算します。

=SUMIF(C3:C8,"A製品",F3:F8)+SUMIF(C3:C8,"B製品",F3:F8)

SUMIF関数をOR条件で合計する
SUMIF関数をOR条件で合計する

AND条件で合計する

続いて、「A製品」でかつ「南区」で販売された数量を合計する、といった場合は、AND条件でSUMIF関数を利用します。

図解.AかつB
図解.AかつB

今回は、下の表から「A製品」でかつ「南区」の販売数量を合計する方法を紹介します。

A製品かつ南区の売上数量を合計する場合
A製品かつ南区の売上数量を合計する場合

仮に、SUMIF関数で「A製品」を合計しても「南区」以外の数量も混ざってしまいます。

同様に、SUMIF関数で「南区」を合計しても「A製品」以外の数量が混ざってしまいます。

このような場合は、「表にそれぞれの条件を結合したSUMIF関数用のキー列を挿入する」ことで実現が可能です。

それでは実際に手順を紹介します。

手順1.キー列を追加

「販売区域」列の右側に新規に1列を追加し、「分類」列と「販売区域」列の文字を「&」演算子で結合します。

=B3&C3

「&」演算子で検索条件を結合
「&」演算子で検索条件を結合

手順2.キー列を完成

手順1で作成した数式を、下のセルにもコピペして、検索条件用の「キー列」を完成させます。

「&」演算子を下のセルにもコピー
「&」演算子を下のセルにもコピー

手順3.SUMIF関数を挿入

「キー列」を検索条件に利用して、以下のSUMIF関数を挿入します。

=SUMIF(D3:D8,"A製品南区",F3:F8)

SUMIF関数を複数条件で利用(AND条件)
SUMIF関数を複数条件で利用(AND条件)

そうすると、キー列が「A製品南区」のものだけが合計されるので、結果として「A製品」でかつ「南区」のものが合計されたことになります。

引数「検索条件」をセル番号を指定して利用することも可能です。

その場合も「検索条件」を「&」演算子で文字を結合し、以下のようにSUMIF関数を挿入します。

=SUMIF(D3:D8,D11&E11,F3:F8)

SUMIF関数の検索条件に「&」演算子を利用
SUMIF関数の検索条件に「&」演算子を利用

SUMIF関数の「範囲」「合計範囲」を複数行で利用

SUMIF関数の引数「範囲」と引数「合計範囲」は1行でしか使えない、というわけでありません。

下の構文や図のように、2行の「範囲」と2行の「合計範囲」でSUMIF関数を利用することも可能です。

=SUMIF(B3:C7,"A",D3:E7)

SUMIF関数の「範囲」「合計範囲」が複数行
SUMIF関数の「範囲」「合計範囲」が複数行

ただし、引数「範囲」と引数「合計範囲」の行数と列数は必ず同じである必要があります。

エクセルが自動で範囲と合計範囲の相対位置を読みにいっているので、互いの選択範囲の形が異なっていると、想定した値が表示されません。

SUMIF関数の使い方のポイントは「検索条件」

今回は条件で数値を合計することが出来るSUMIF関数の使い方を紹介しました。使い方のポイントは2つ目の引数「検索条件」の設定方法です。

セル番号を指定する場合と、関数の中に直接条件を設定する場合の2パターンがありますので、使いやすい方法を利用しましょう。

3つの引数「範囲」「検索条件」「範囲」の順番も覚えづらいかもしれませんが、慣れれば自然と使いこなせます。