Introduction
Ver. all 2013 2016 2019 2021 365
条件を付けて合計するDSUM関数とSUMIFとSUMIFS関数。どれを使えば良いのだろう?それぞれの特徴を説明します。
これら関数の共通点は条件を付けたものに絞って合計を算出することができること。
その設定したい条件によって使用すべき関数が異なります。
最初に簡単にまとめておきます。
- 設定したい条件が1つ・・・SUMIF
- 設定したい条件が複数・・・SUMIFS、DSUM
さらに、設定したい条件が複数ある場合どちらを選ぶか
- 単純な複数条件・・・SUMIFS(バージョン2007以降)
- 複雑な複数条件・・・DSUM
ざっくり言うとこんな感じです。
SUMIFS関数はバージョン2003以前では使えません。
細かく考えると、必ずしも上記が正しいとは言えません。あくまで目安です。
では、もう少し詳しくみていきましょう。
必要に応じて選ぶ必要があるにゃ
形(引数)からみる違い
まず、設定する引数の内容をざっと見比べてみましょう。
SUMIF関数・・・指定した範囲の中で、条件に合ったデータを合計する
=SUMIF(範囲,検索条件,[合計範囲])
- 範囲・・・検索する範囲全体を指定
- 検索条件・・・「範囲」で指定したデータと一致させる検索条件を指定
- 合計範囲・・・合計したいデータ範囲全体を指定(合計場所が「範囲」と共通の場合は省略可能)
SUMIFS関数・・・指定した範囲の中で、複数の条件に合ったデータを合計する
=SUMIFS(合計対象範囲,条件範囲1,条件1,[条件範囲2],[条件2],…)
- 合計対象範囲・・・合計したいデータ範囲全体を指定
- 条件範囲1・・・検索する範囲全体を指定
- 条件1・・・「条件範囲1」の中で検索する条件(セル)を指定
- 条件範囲2、条件2…・・・追加の範囲と追加の条件を指定
DSUM関数・・・条件を満たす列の合計を返す
=DSUM(データベース , フィールド , 検索条件)
- データベース・・・見出しを含めた表全体を指定
- フィールド・・・合計する列を指定(左からの列番号か見出しの文字列を指定)
- 検索条件・・・検索条件を作成した表を指定
それぞれ異なりますね。
この中で一番簡単なのはSUMIF関数です。
下の画像は「商品区分」ごとに「売上金額」の合計を算出しようとしています。
[範囲][検索条件][合計範囲]それぞれ、説明通りに指定すれば良いので、何となくでも設定できるはずです。
欠点としては、[検索条件]が1つしか設定できないこと。
そうなると、複数の条件設定が必要になった場合は他の関数を選ぶしかありません。
DSUM関数かSUMIFS関数になるのですが、簡単なのはSUMIFS関数の方。
先に[合計対象範囲]を指定して、条件と、その条件を適用する範囲を指定していきます。
その条件は、どんどん追加していくことができます。
引数を指定する順番は異なりますが、基本的な使い方はSUMIF関数と同じと言ってよいでしょう。
そして、これら2つと大きく異なるのがDSUM関数です。
DSUM関数は、条件を引数で指定しません。
条件のための別表を作成します。
例えば下の表から「商品区分」が「おもちゃ」の「金額」合計を算出したい場合は、
どこか別の場所に、下画像のような検索条件のための表を作成します。
そしてその表をDSUM関数の[条件]で使用します。
大きく異なるのが、このDSUM関数は検索条件の別表を作成するという点です。
目的による使い分け
前述したように、DSUM関数は別の表を作成する必要があるので面倒だから使う必要ないのでは。
そう思う方もいらっしゃるのでは。
しかし、DSUM関数の良い点もあるのです。
例えば下のように検索条件を作成したとします。
「新宿営業所」の「猫缶A」、もしくは「2022/8/25以降」の「渋谷営業所」の「猫缶A」の合計を集計したかった時の条件です。
このような複雑な条件を設定したかった場合は、検索のための別表を用意した方がミスの可能性が低くなります。
また、後日自分で確認する際や、他の担当者にとっても「どのような条件で集計したか」が分かり易くなります。
また、検索条件で作成した表は他のデータベース関数にも流用できます。
例えば平均を算出するDAVERAGE関数や、最大値を算出するDMAX関数など。
分析のために合計以外のデータも必要な時には、検索条件の別表を作成しておいた方が処理が早く済みます。
さらに、検索用に作成した表は関数だけではなくデータ抽出機能の「フィルターオプションの設定」でも流用することができます。
条件検索の別表の作り方は、データベース関数と、フィルターオプション機能、両方とも同じルールで作成します。
そのため、そのまま流用が可能となります。
以上のように少し面倒に感じるDSUM関数ですが、便利な点もいくつか存在するということですね。
まとめ
では、今回の話をまとめておきます。
- 合計する条件が1つの場合はSUMIF
- 複数の条件で簡単なのはSUMIFS
- 検索条件がかなり複雑な場合や検索条件用の別表を他で流用する予定がある場合はDSUM
となります。
しかし、必ずしも上記が正しいとは限りません。
例えば、もし検索条件を別表として一目で分かるようにしておきたい場合は、単一の条件でもSUMIFではなく、あえてDSUMを使うという選択肢もあります。
今回違いを説明した3つの関数を説明したリンクを貼っておきます。
関数が苦手な人はSUMIFから試してみるのがおすすめだにゃ