データベース

複数の条件に一致するデータの合計を求めるDSUM関数

DSUM関数

Googleスプレッドシートで指定したデータ範囲内で複数条件に一致するデータの合計を出したい場合は、DSUM関数を使用します。

類似の関数としてSUMIF関数SUMIFS関数があります。
これらの関数は、できることはほぼ同じですが、数式、条件の入れ方が異なります。
データと条件が同じならどの関数を使用しても同じ結果になります。

大きな違いとしては、SUMIFS関数はAND条件ですが、DSUM関数ではOR条件とAND条件どちらでも設定することができます。

スプレッドシートのDSUM関数の使い方

Sample

性別が「男」でクラスが「1」の生徒の合計点を表示する

DSUM関数の使い方

2つの条件に一致する合計値を求める

性別が「男」の中でクラスが「1」の生徒の合計点を表示するには以下のような数式を入力します。

1. 合計点を表示させたいセルを選択します。
(今回はセルH4)

2. =DSUM(A3:D13,D3,F3:G4) と入力します。

DSUM関数の入れ方

  • データベース:データの範囲を見出し含めて選択する。
  • フィールド:選択したデータベース内の合計を求める列見出しのセルを指定
  • 条件:条件を入力したセル範囲(F3からG4)

=DSUM(A3:D13,D3,F3:G4)

上記の条件(男でクラスが1)に一致した生徒の合計点は「230点」ということがわかりました。

データベース、条件で指定するセル範囲には必ず項目名(見出し)を入れます。

さらに条件で使用する項目名は、データベースにある項目名と同じである必要があります。

違う項目名になっていると条件が正しく認識されません。

他にもデータベース関数は複数あり、計算方法が異なりますが数式の入力方法は同じなので、1つ覚えれば他のデータベース関数もすぐに理解することができます。

  • DSUM:合計を求める
  • DAVERAGE:平均を求める
  • DCOUNT:件数を求める
  • DCOUNTA:件数を求める
  • DMAX:最大値を求める
  • DMIN:最小値を求める

OR条件で複数条件に一致する合計値を求める

データベース関数は、複数条件を指定することができます。
複数の条件の場合、AND条件、OR条件の考え方があります。

  • AND条件:指定した条件をすべて満たす
  • OR条件:複数条件のどれか1つでも満たす

これらの条件をデータベース関数で指定するには、

  • AND条件:同じ行で指定
  • OR条件:別の行で指定

になります。

DSUM関数の入れ方(複数条件)

・セルF4の性別が「男」
・セルG4のクラスが「1」
という2つの条件は同じ行に記載されているためAND条件になります。(両方満たすものを計算)

・セルF5の性別が「女」
・セルG5のクラスが「2」
こちらの2つの条件も同じ行なのでAND条件です。

条件が記載されている表の上段(セルF4,G4)と、下段(セルF5、G5)の条件は別の行なのでOR条件になります。

上記画像の例では、
①性別が「男」でクラスが「1」
もしくは、
②性別が「女」でクラスが「2」

という、条件①②のどちらかに一致しているものを計算の対象にする=それぞれの条件の合計になります。

DSUM関数とSUMIFS関数の違い

条件が同じであれば、DSUM関数、SUMIFS関数どちらを使用しても結果は同じになります。

今回の例ではそれぞれの関数では以下のようになります。

DSUMの式

=DSUM(A3:D13,D3,F3:G4)

SUMIFSの式

=SUMIFS(D4:D13,B4:B13,F4,C4:C13,G4)

違いは、DSUM関数は条件がいくつあっても、1つのセル範囲として指定しています。

SUMIFS関数は条件ごとにセル範囲を指定します。
そのため、条件が多いほど数式がどんどん長くなります。

条件が多いほどSUMIFS関数は数式が長くなり、内容を確認するのに時間がかかります。

DSUM関数はシート内に表形式で条件を指定しているため、条件が増えた時にはセル範囲を拡げる必要はあっても、数式が長くなることはありません。

条件が多いほどDSUMの方がわかりやすいことが実感できると思います。

SUMIFS関数
複数の条件に一致するデータの合計を求めるSUMIFS関数複数の条件に一致するデータの合計値を求めるGoogleスプレッドシートのSUMIFS関数の使い方。条件が1つならSUMIF関数、2つ以上ならSUMIFS関数を使用します。...

DSUMで使えるワイルドカード

DSUM関数で指定する条件は、テキストの完全一致だけでなく、数字の条件やワイルドカードを使用して部分一致での条件も指定できます。

条件を数字の範囲で指定する時

数字の範囲で条件指定する時によく使用される演算子と意味は以下です。

下記の記号を使用することで、50点以上のように条件を数字の範囲で指定することができます。

記号意味入力例
=等しい=100
<>等しくない<>0
<未満<50
<=以下<=50
>より大きい>50
>=以上>=50

条件を文字列の部分一致で指定する時(ワイルドカード)

部分一致と呼ばれる条件の時にはワイルドカードで条件を指定します。

ワイルドカードとは、文字の代わりに*や?の記号を使用した条件指定の方法です。

「*」(アスタリスク):文字数を限定しない

条件の種類条件該当する例
前方一致株式会社*株式会社A、株式会社ABC
後方一致*株式会社A株式会社、ABC株式会社
部分一致*株式会社*A株式会社B、ABC株式会社DE

「?」(クエスチョンマーク):1文字の代わり

条件の種類条件該当する例
前方一致株式会社?株式会社A
後方一致?株式会社A株式会社
部分一致?株式会社?A株式会社B

スプレッドシートのDSUM関数の構文

スプレッドシートのDSUM関数は以下のように入力します。

=DSUM(データベース,フィールド,条件)
引数説明
データベースデータの範囲を見出し含めて選択する。
フィールド選択したデータベース内の合計を求める列見出しのセルを指定。
条件 条件を入力したセル範囲を選択する。