Introduction
Ver. all 2013 2016 2019 2021 365
エクセルで複数の条件付きで合計する時に便利なDSUM関数を紹介します。
条件付きの合計を算出する関数としてはSUMIF関数やSUMIFS関数があるのですが、複雑な複数の条件を付けて合計したい時はここで紹介するDSUM関数が便利です。
また、〇〇を含む、○〇以外などの条件や、日付や文字での作成方法を例として説明します。
DSUM関数・・・条件を満たす列の合計を返す
=DSUM(データベース , フィールド , 検索条件)
- データベース・・・見出しを含めた表全体を指定
- フィールド・・・合計する列を指定(左からの列番号か見出しの文字列を指定)
- 検索条件・・・検索条件を作成した表を指定
単一の条件の場合はSUNIF関数の方が簡単なので、下のリンク先をご覧ください。
また、単純な複数条件でバージョン2007以上を使用している場合はSUMIFS関数がお勧めです。
条件付けのための表が必要になるにゃ
DSUM関数の使い方
今回は、下の表から「商品区分」が「おもちゃ」の「金額」を合計してみます。
最初にDSUM関数のポイントです。
検索するための条件を、わざわざ別の表を作成して用意しておく必要があります。
正直面倒・・・。
でも、別の表を作成することで複数条件など、複雑な条件を指定する場合は利便性が高くなります。
今回は、「商品区分」が「おもちゃ」という条件を別の表で作成します。
その際、元の表の見出しを利用するのがおすすめです。
まず、見出しを選択して、
※見出しは条件で使用するものだけで良いのですが、条件の見た目が後で分かり易くなるので全体をコピーするのがお勧めです。
コピー。
どこか空いている場所に貼り付けます。
見出しを貼り付ける場所はどこでも良いのですが、表の下に貼り付ける場合は、1行以上空ける必要があります。
貼り付けた見出しを利用して、検索条件を作成します。
今回は「商品区分」が「おもちゃ」だけを合計したいので、
下のように、商品区分の下に「おもちゃ」と入力します。
今回の条件のための表はこれで終了。細かい条件の作成方法は後で説明していきます。
では、DSUM関数を使用して「商品区分」が「おもちゃ」の「金額」合計を算出します。
結果を表示するセルを選択して[関数の挿入]ボタンをクリック。
[関数の分類]を[データベース]か[すべて表示]に切り替えて「DSUM」を選んで[OK]。
DSUM関数・・・条件を満たす列の合計を返す
=DSUM(データベース , フィールド , 検索条件)
- データベース・・・見出しを含めた表全体を指定
- フィールド・・・合計する列を指定(左からの列番号か見出しの文字列を指定)
- 検索条件・・・検索条件を作成した表を指定
引数の指定は3つ必要です。
まず、[データベース]には元の表全体をマウスで選択しましょう。その際、見出しを含めるのを忘れずに。
次の[フィールド]の場所は、合計したい列を指定します。
合計したい列が「表の左から何列目」かを数字で指定します。
今回の場合は「金額」が左から5列目なので「5」と入力します。
この列指定は、対象の列見出しを文字で入力したり、下のようにセル番地で参照してもOKです。
※直接文字を入力する場合は「”」で囲む必要があります。
最後の[条件]は、先ほど作成した条件付けのための新たな表全体を選択します。こちらも見出しを含めて選択します。
※検索で使用する見出しが含まれていれば全体を選択しなくてもOK。
[OK]を押せば結果が表示されます。
合計は「580000」だったようです。
作成した条件によって、様々な合計を算出することができます。
例えば、下のような条件表を作成すると、「東京本店」だけの「かりかり」の合計が算出できます。
条件設定する表の作り方
条件を設定するための表作成が面倒に感じるかもしれませんが、その代わりに複雑な条件が作成可能です。
〇以上や〇以下の場合
条件には比較演算子を使用します。下を参考にしてください。
演算子 | 意味 | 使用例 | 説明 |
= | 等しい | A=B | AとBは等しい |
<> | 等しくない | A<>B | AとBは等しくない |
> | より大きい | A>B | AはBより大きい |
< | より小さい | A<B | AはBより小さい |
>= | 以上 | A>=B | AはB以上 |
<= | 以下 | A<=B | AはB以下 |
※等しい場合の「=」は入力する必要はありません。
※文字列だけを入力した場合は、常に「=」条件として扱われます。
※記号は全角ではなく半角で。
例えば下の表で、
国語が90点以上という条件の場合は、「国語」の下に「>=90」と入力します。
〇以外の場合
〇以外の場合は、先ほどの「等しくない」と同じ意味になるので「<>」を使用します。
例えば「商品区分」が「かりかり」以外の条件を作成したい場合は下のようになります。
複数条件を作成する場合
複数条件を作成するときは、AND条件とOR条件の2つから選ぶことができます。
AND・・・複数の条件全てを満たしものだけを抽出する
OR・・・複数の条件どれかを満たした全てを抽出する
ここで条件を作成する際の大切なポイントです。
- AND条件は同じ行に入力する
- OR条件は行を分けて入力する
例えば3教科すべてが「80点以上」を条件としたい場合は下のように条件を同じ行に入力します。
3教科どれか1つでも「80点以上」になっていれば良いという条件であれば、下のように条件をずらして入力します。
日付で条件を指定する場合
日付で条件を指定する場合も比較演算子を使用します。
例えば「2022/8/25」以降の条件にしたい場合は「>=2022/8/25」となります。
〇日から〇日と指定したい場合は、AND条件になるので1行に条件を入れる必要があります。
そのため同じ見出しを2つ用意します。
例えば「2022/8/25」から「2022/8/30」までの条件にしたい場合は下のように条件を作成します。
ワイルドカードの使い方
ワイルドカードとは、類似した情報を持つデータを検索する場合などに使用する、テキストや文字をあらわすものです。
- 「?」・・・任意の1文字を表す
- 「*」・・・任意の複数文字列を表す
例えば2文字目が「田」で始まる名前を条件にしたい場合は、「?田」と入力します。
まとめ
SUMIF関数の影になりがちなDSUM関数の説明でした。
別の表を作成することで、どのような条件で合計したかを後から確認するのが楽になります。
SUMIF関数やSUMIFS関数で条件が上手く作成できない時に思い出したい関数です。
DSUMの「D」は「DATABASE」の「D」だにゃ