Trace Id is missing

Excel SUMIFS 関数で複雑な集計に対応! 便利な使い方解説

2021 年 9 月 13 日

Microsoft Excel の「SUMIF」関数は、ある範囲の検索条件に合う値の合計を求められる便利な関数ですが、検索条件が複数あると対応できないという問題があります。そこで今回は、複数の条件でも取扱い可能な関数である「SUMIFS」関数について、使い方や注意点などを解説します。

1. 複数の条件で集計できる SUMIFS 関数とは

Excel では、複数の条件に合致したものだけを集計する「SUMIFS」関数がありますが、その前提として「~IF」関数と「~IFS」関数を理解しておく必要があります。まずはそれぞれの特徴から説明します。

1-1. 「〜IF」関数、「〜IFS」関数とは

条件を入れて真であった場合と偽であった場合に表示を変えることができる Excel 関数として、「IF」関数があります。

【使い方】 =IF(論理式, 値が真の場合, [値が偽の場合])

たとえば、次のような場合に IF 関数を用いて表示することができます。

  1. 売上額が 100 万円以上であれば「達成」、100 万円未満であれば「未達」と表示する
  2. 値が「1」であれば「会社員」、「2」であれば「自営業」、その他の値であれば「その他」と表示する

そして、条件に応じた計算のために「〜IF」という関数もあります。

たとえば「売上額が 100 万円以上の部署の売上額を合計したい」などの条件に合った売上額のセルを合計する場合は、「SUMIF」関数を使うと便利です。

以下の表は、「浅草商会」という会社の部署別の売上額を表したものです。
SUMIF 関数を使うことによって、「売上額が 100 万円以上の部署」の「売上額の合計」「売上額の平均」「部署の数」をそれぞれ求めることができます。

SUMIF 関数を用いた「売上額が 100 万円以上の部署」の「売上額の合計」

SUMIF 関数 : 検索条件に合う値の合計を出したい場合

【使い方】 =SUMIF(検索範囲,検索条件,合計範囲)

ただし、SUMIF 関数には、「検索条件が 1 つしか設定できない」という制限があります。
たとえば「売上額が 100 万円以上 300 万円未満」といった「○から×まで」の範囲を条件にしたい場合や、複数の行や列から条件を満たすものを選択して計算したい場合には対応できません。

そこで、2 つ以上の条件がある場合のために、SUMIF の複数条件版ともいえる関数、SUMIFS 関数が用意されています。これらは同じように見えますが、末尾に「S」がついている点が特徴です。

SUMIFS 関数 : 複数の検索条件に合う値の合計を出したい場合

また、似たように複数の検索条件に合う値の平均値を求める AVERAGEIFS 関数、COUNTIFS 関数もあります。

AVERAGEIFS 関数 : 複数の検索条件に合う値の平均値を出したい場合

COUNTIFS 関数 : 複数の検索条件に合うデータの数をカウントしたい場合

それぞれ検索範囲と検索条件をカンマ区切りで続けて書くことにより、複数の条件に合うセルが計算されます。
検索範囲と検索条件の組み合わせについては、最大 127 ペアまで指定することができます。

1-2. 複数の条件に合うデータを集計する SUMIFS 関数

SUMIFS 関数で「検索条件」に指定できるものは、基本的に SUMIF 関数と共通で、文字、数値、日付などを使用することができます。
たとえば、以下のような場合に使用すると効率的です。

  • 会社名が「ABC商会」かつ支店名が「新宿支店」であるものの売上額を合計したい
  • 売上日が 2021 年 5 月から 2021 年 6 月の売上額を合計したい
  • 売上額が「1 億円」以上「2 億円」未満の企業の純利益額を合計したい
  • 会社名に「ABC」を含み、売上額が「1 億円」以上の顧客の売上額を合計したい

SUMIF 関数と同じく最終的に表示されるのは「合計値」ですから、合計する範囲には数値を入れておく必要があります。

2. SUMIFS 関数の使い方〜基本編〜

まず、SUMIFS 関数の基本的な使い方と手順を解説します。SUMIFS 関数を使う際は、以下のように記述します。

SUMIFS 関数 :

【使い方】 =SUMIFS(合計範囲,検索範囲1,検索条件1,検索範囲2,検索条件2・・・)

「合計範囲」「検索範囲」「検索条件」のそれぞれの定義については SUMIF 関数と同じです。

合計範囲 : 合計したい値が含まれている範囲
検索範囲 : 検索したい条件が含まれているリストの範囲
検索条件 : 検索したい条件

「検索範囲 2, 検索条件 2」以降は任意の値です。検索条件が 1 つなのに SUMIFS 関数を使うことはあまりないかもしれませんが、理論上は 1 つ以上 127 個以下の検索条件を指定することができます。

注意すべき点は、SUMIFS 関数では、SUMIF 関数と合計範囲を書く順番が違うということです。SUMIF 関数の場合は「検索範囲→検索条件→合計範囲」の順番でした。一方、SUMIFS 関数の場合は、「合計範囲→検索範囲1 →検索条件1→検索範囲2→検索条件2…」のように合計範囲を最初に書きます。

例として、以下のような表を使って計算してみましょう。

顧客名が「ABC商会」で支店名が「新宿支店」の売上額を合計したい場合の例

上の表は、「浅草商会」という企業における 2021 年度の売上一覧です。

顧客名が「ABC商会」で支店名が「新宿支店」の売上額を合計する場合、条件は 2 つあるので以下のような考え方になります。

合計範囲 : 売上額の入っている D4 セルから D18 セルを合計する
検索範囲1 : 顧客名が入っている B4 セルから B18 セルを調べる
検索条件1 : 「ABC商会」であること (文字列の場合は「”」でくくって表記する必要あり)
検索範囲2 : 支店名が入っている C4 セルから C18 セルを調べる
検索条件2 : 「新宿支店」であること (文字列の場合は「”」でくくって表記する必要あり)

関数の書き方は次のようになり、ABC商会新宿支店の売上額合計は「585,670 円」であることがわかります。

=SUMIFS(D4:D18, B4:B18, "ABC商会", C4:C18, "新宿支店")

また、SUMIF 関数と同様に、検索条件は直接文字列や数値で記載せずにセル名で記載することもできます。

検索条件をセル名で記載した例

=SUMIFS(D4:D18, B4:B18, B4, C4:C18, C4)

ここでは「ABC商会」の代わりにセル名「B4」、「新宿支店」の代わりにセル名「C4」を指定することで、同じ結果を得ています。

後々の修正や変更を簡単にするために、直接の文字列を利用するよりもセル名を利用したほうが良い場合もあるので、状況に応じて適した方法を選ぶとよいでしょう。

Excel 作業を高速化するテクニックを厳選!

無料ガイドブック
Excel ショートカット 30 選
Microsoft 公式  PC作業をスピードアップ! 超時短仕事術  Excel ショートカット編

3. SUMIFS 関数の使い方〜応用編〜

ここでは SUMIFS 関数の応用的な使い方や、SUMIFS 関数が使えない場合の解決法、SUMPRODUCT 関数について解説します。

3-1. SUMIFS 関数の応用的な使い方

ここでは SUMIFS 関数の応用的な使い方や、SUMIFS 関数が使えない場合の解決法、SUMPRODUCT 関数について解説します。

3-1-1. 行や列全体を検索範囲に指定する場合

検索範囲や合計範囲にセル名を指定してしまうと、後からデータが増えた場合などに式を変更する必要があります。そのようなケースの対応策としては、行全体 (または列全体) を検索範囲や合計範囲とするとよいでしょう。

検索範囲や合計範囲を列全体 (あるいは行全体) で指定した場合の例

=SUMIFS(D:D, B:B, B4, C:C, C4)

このように検索範囲や合計範囲を列全体 (あるいは行全体) で指定することもできます。
ただし、その場合は、Excel のシートの同じ列に別の表が入っていて、合計が間違ってしまうことがないよう注意が必要です。

3-1-2. 検索条件に不等号を指定する場合

数値や日付など、「○から×まで」のような条件で範囲を絞って計算をしたい場合は、不等号を検索条件に入れることができます。

検索条件に不等号を指定した場合の例

SUMIF 関数では、「○から×まで」のような検索条件は使えませんでしたが、SUMIFS 関数では「日付が 2021 年 5 月 1 日以降 2021 年 6 月 30 日までの売上額を合計する」という検索条件を以下のように記述することができます。

=SUMIFS(D:D, A:A, ">=2021/5/1", A:A, "<=2021/6/30")

なお、不等号を検索条件に使う場合には、数値でも日付でも必ずダブル クォーテーション (””) で囲む必要があります。

3-1-3. 部分一致の検索を行う場合

検索条件にアスタリスク (*) を使うことで、部分一致の検索ができることも SUMIF 関数と共通しています。文字列の前後にアスタリスクを入れることで、任意の値を表します。

部分一致の検索を行う場合の例

たとえば、以下のようなケースに適しています。

  • 「ABC商会」と「ABCエンタープライズ」は同じ「ABCグループ」内の企業のため、ABCグループの売上額を計算したい
  • ただし、新宿支店だけは独自の営業部が担当しているので、「新宿支店以外」の売上額を計算したい

このような場合はアスタリスクを使用して「”ABC” から始まる企業名」で、「”新宿” から始まらない支店名」を指定します。

=SUMIFS(D:D, B:B, "ABC*", C:C, "<>新宿*")

このように、アスタリスクを使うことによって部分一致の文字列も検索条件にすることが可能です。

3-1-4. クロス集計で、縦/横に条件を設定して合計する場合

クロス集計とは、縦軸と横軸に項目を置き、2 つの項目の重なりによって結果を分析する方法です。

クロス集計を利用すると、たとえば複数の顧客に複数の営業担当者がいる場合に「どの担当者が多く売り上げているか」と「どの顧客に対して売り上げているか」という 2 点をひとめで見やすくすることができます。

今回は左側のデータを基に、クロス集計を用いて新たな表を右側に作成しました。SUMIFS 関数を利用することで、顧客と担当者を指定して集計した表を作成することができます。

クロス集計で、縦/横に条件を設定して合計する場合の例

Excel で上記のような表を作る場合、現在ではピボット テーブルの機能を利用するほうが一般的ですが、SUMIFS 関数で柔軟に条件を設定する方法も選択肢として知っておくと便利です。

3-2. SUMPRODUCT 関数とは

SUMIFS 関数を使用する場合は、合計範囲と検索範囲で指定する行や列の数を一致させることが必要です。たとえば合計範囲が 3 列であれば、検索範囲も 3 列を指定する必要があります。

そのため、たとえば以下の表で顧客名が「ABC商会」かつ支店名が「新宿支店」の売上を合計したくても、合計したい数字が D 列から H 列の 5 列にまたがっていると、合計範囲が 5 列、検索範囲が 1 列ずつとなり列数が一致せず、エラーになってしまいます。

合計範囲と検索範囲の列数が一致せずエラーとなった例

このようなときは、代わりに「SUMPRODUCT」という関数を使う必要があります。

SUMPRODUCT 関数 : 複数の掛け算の結果を合計した値を求める場合

【使い方】 =SUMPRODUCT((検索範囲1=検索条件1)*( 検索範囲2=検索条件2)[*検索範囲3=検索条件3…]*(合計する数値範囲))

先ほどの例では、「ABC商会」かつ「新宿支店」である売上を 4 月から 8 月までまとめて合計したいので、顧客名が「ABC商会」であることを「B3:B10=B3」、支店名が「新宿支店」であることを「C3:C10=C3」と表し、合計する数値範囲は「D3:H10」と表します。式にすると以下のような形になります。 

=SUMPRODUCT((B3:B10=B3)*(C3:C10=C3)*(D3:H10)) 」

SUMPRODUCT 関数を用いた複数条件での合計値を求める場合の例

複数の検索範囲、検索条件と合計する数値の範囲をすべてアスタリスク (*) でつなぐことで計算することが可能です。

4. SUMIFS 関数でエラーにならないために

SUMIFS 関数でエラーになる原因の多くは、SUMIF 関数と共通しています。
ここではよくある間違いについて解説します。

4-1. 「合計範囲」と「検索範囲」の指定が逆になっている場合

SUMIFS 関数では、「=SUMIFS(合計範囲,検索範囲1,検索条件1,検索範囲2, 検索条件2…)」と書くべきところを、最初の引数に検索範囲を書いてしまうといった誤入力がよく起こります。

特に SUMIF 関数の場合、「=SUMIF(検索範囲,検索条件,合計範囲)」となっていて順番が異なるため、注意が必要です。

「合計範囲」と「検索範囲」の指定が逆になっている例

4-2. (””) の付け方が間違っている場合

検索条件を記述するときは、基本的に数値にはダブル クォーテーションが不要、文字列には必要です。また、数値であっても等号や不等号を入れている場合はダブル クォーテーションが必要です。

(””) のつけかたが間違っている例

複数の検索条件があるうち、1 つでもダブル クォーテーションの付け方が間違っていると正しく計算されないので注意しましょう。

4-3. 合計範囲に数値がない場合

SUMIFS 関数も SUMIF 関数と同じく、合計できるものは数値のみです。したがって、合計範囲には必ず数値が入力されている必要があります。
数値以外のものが入っていてもエラーにはなりませんが、計算はされません。

4-4. 合計範囲にエラーの値がある場合

SUMIFS 関数では、合計範囲となっているセルの中にエラーの値があると、合計結果もエラーになってしまいます。

以下の例では、「ABC商会 新宿支店」の売上合計額を集計するため合計範囲に D 列を指定していますが、集計対象の 1 つとなる D4 のセルにエラーがあるため、結果がエラーとなってしまいます。

合計範囲にエラーの値がある例

厳密には、合計範囲にエラーがあっても集計対象外の値である場合は計算できますが、後で条件を修正したり追加したりすることを考えると、合計範囲すべてにおいてエラーがないようにしておくほうが賢明といえるでしょう。

5. まとめ 

今回は、SUMIF 関数よりも複雑な条件式を扱うことができる SUMIFS 関数を解説しました。

日付の「◯日から×日まで」や数字の「◯以上×未満」といったものから、もっと複雑な条件が重なったものでも、SUMIFS 関数なら対応可能で、SUMIF 関数と使い方の手順や注意すべき点も似ているので、一緒に覚えておくと便利です。

「~IF」がつく関数をうまく使いこなして、今後もさらなる仕事の効率化を図っていきましょう。

リモートワーク・ハイブリッドワークに適した環境設置のために

リモートワーク・テレワーク・在宅勤務環境を安全・快適に実現するためには、「セキュリティの確保」「Web 会議のためのデバイス選択」「グループワークのためのアプリケーション」など検討する課題も多く、またこれらを潤沢な資金で準備するのではなくコスト削減につなげることが大切です。

これらの達成のための Microsoft 365、Excel の使い方や、リモートワーク・ハイブリッドワーク環境を充実させるために以下の記事が参考になります。

他にも Excel 作業を高速化するテクニックを厳選! 無料ガイドブック

Microsoft 公式  PC作業をスピードアップ! 超時短仕事術  Excel ショートカット編

Excel ショートカット 30 選

Microsoft 公式の超時短仕事術 Excel ショートカット 30 選です。

マウスなしで快適に Excel を使いこなしたい、より効率に作業したいという方必見!

ご購入検討の問い合わせ先

電話アイコン

お電話で購入相談

受付時間: 9:00 - 17:30 (土日祝日、弊社指定休業日を除く)

封筒アイコン

Web フォームで購入相談

本情報の内容 (添付文書、リンク先などを含む) は、作成日時点でのものであり、予告なく変更される場合があります。