DSUMでレコードを合計する
条件範囲に一致する行のフィールドを合計します。
「DSUMでレコードを合計する」はCoddyKit上の無料Excel Formulas Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはExcel Formulas Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Excel Formulas Academyコースには全4レッスンが含まれています。
DSUM の働き
DSUM は、表の1列にある数値を合計します。ただし、条件範囲に一致する行だけが対象です。数式内に条件を記述するのではなく、セル範囲から条件を読み取る SUMIFS と考えると分かりやすいでしょう。
条件が多い場合や、数式を書き換えるのではなくセルを編集してユーザーがフィルターを変更できるようにしたい場合に便利です。
DSUM の構文
パターンは次のとおりです。
DSUM(database, field, criteria)
- database - ヘッダーを含むテーブル全体です。例:
A1:C13。 - field - 合計する列です。
"Amount"のように引用符で囲んだヘッダー名、または列番号で指定します。 - criteria - 先ほど作成した条件範囲です。
=DSUM(A1:C13, "Amount", E1:E2)最初の合計
A1:C13に、Region、Rep、Amountをヘッダーとする売上データがあるとします。E1にRegionを入力し、E2にEastを入力します。
次の数式は、Eastのすべての行にあるAmount列を合計します。Eastの行の値が1200、800、500の場合、結果は2500です。E2をWestに変更すると、数式を編集しなくても合計がすぐに再計算されます。
=DSUM(A1:C13, "Amount", E1:E2)フィールドの選択
field引数によって、合計する列が決まります。指定方法は2つあります。
- 名前で指定:
"Amount"- わかりやすく、列の並べ替えにも影響されません。 - 位置で指定:
3- データベース範囲の3列目です。
通常はヘッダー名を使用するほうが安全です。列を挿入しても数式が壊れないためです。ただし、テーブルのヘッダーと同じつづりで指定してください。
=DSUM(A1:C13, 3, E1:E2)数値条件で合計する
数値条件に基づいて合計することもできます。E1にAmountを入力し、E2に>1000を入力します。これで、DSUMは1000を超える金額だけを合計します。
これは、「大口注文の合計はいくらか」といった質問に便利です。比較条件がセルに入っているため、数式に触れずにしきい値を変更できます。
=DSUM(A1:C13, "Amount", E1:E2)AND条件で2つの条件を指定する
Eastの1000を超える注文を合計するには、2列の条件範囲を作成します。E1:F1にヘッダーRegionとAmountを入力し、E2:F2にEastと>1000を入力します。
両方の条件が同じ行にあるため、ANDで結合されます。DSUMは、Eastであり、かつ1000を超える行についてのみAmountを合計します。
=DSUM(A1:C13, "Amount", E1:F2)OR条件で2つの値を指定する
EastとWestの両方を合計するには、値を別々の行に積み重ねます。E1にRegionを入力し、E2にEast、E3にWestを入力します。
別々の行にある条件はORを意味するため、DSUMはEastまたはWestであるすべての行のAmountを合計します。両方の条件行を含めるため、criteria引数をE1:E3まで広げることを忘れないでください。
=DSUM(A1:C13, "Amount", E1:E3)DSUMとSUMIFSの違い
どちらも条件付きで合計できますが、次の点が異なります。
- SUMIFSは条件を数式内に記述します。1回限りの合計に適しています。
- DSUMはセルから条件を読み取ります。ユーザーがフィルターを調整するダッシュボードや、SUMIFSでは扱いにくい複雑なAND/ORロジックに適しています。
ORロジックのために多数のSUMIFSを入れ子にしている場合は、複数行の条件範囲を使うDSUMのほうがすっきりすることがよくあります。
=SUMIFS(C2:C13, A2:A13, "East", C2:C13, ">1000")データベース範囲を確認する
データベース引数には、ヘッダー行を含める必要があります。ヘッダーなしでデータ行だけ(A2:C13)を渡すと、DSUMはフィールド名を列に対応付けられず、エラーを返します。
また、範囲は実際のデータの周辺に絞ってください。下に余分な空白行を含めても合計には問題ありませんが、他のD関数では混乱の原因になることがあるため、いずれの場合も範囲を絞る習慣をつけるとよいでしょう。
=DSUM(A1:C13, "Amount", E1:E2)該当なしの場合の処理
条件に一致する行がない場合、DSUMは単に0を返し、エラーにはなりません。通常は問題ありませんが、0が実際の合計値に見えてしまうことがあります。
DCOUNTと組み合わせて実際に一致したレコードがあるかどうかを確認するか、結果をチェックで囲んで、該当なしによる0と合計が0の場合とで表示を変えるとよいでしょう。
=IF(DCOUNT(A1:C13,"Amount",E1:E2)=0, "No records", DSUM(A1:C13,"Amount",E1:E2))ダッシュボードの合計をリアルタイムで更新する
DSUMの本当の利点は、対話性にあります。各地域を一覧にしたドロップダウンを条件値セルE2に配置し、DSUMの参照先をE1:E2にします。
これで、1つのセルから合計を操作できます。Eastを選ぶとEastの売上が表示され、Northを選ぶとNorthに切り替わります。指標ごとにDSUMのセルを複数配置し、すべて同じドロップダウンを参照すれば、数式を一切変更せずに、平面的な表を反応性のある概要パネルに変えられます。
=DSUM(A1:C13, "Amount", E1:E2)確認問題
=DSUM(A1:C13, "Amount", E1:E2)と入力し、E1にRegion、E2にEastを設定しました。何が返されますか。
まとめ
DSUMは、条件範囲に一致する行について、1列の合計を求めます。
- 構文:
DSUM(database, field, criteria)。 - データベース引数にはヘッダー行を含めます。
- fieldには、引用符で囲んだヘッダー名または列番号を指定できます。
- 同じ行の条件はAND、別の行の条件はORです。
- 一致する行がない場合は、エラーではなく0を返します。
次は、DCOUNTを使って一致するレコード数を数えます。
よくある質問
「DSUMでレコードを合計する」レッスンは無料ですか?
はい。「DSUMでレコードを合計する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Excel Formulas Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Excel Formulas Academyコースには全4レッスンが含まれています。
「DSUMでレコードを合計する」で何を学びますか?
条件範囲に一致する行のフィールドを合計します。 ブラウザで直接実行するハンズオンコードでExcel Formulas Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Excel Formulas Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのExcel Formulas Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「DSUMでレコードを合計する」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このExcel Formulas Academyレッスンでコードを書いて実行できますか?
はい。すべてのExcel Formulas Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 条件範囲を設定する
- DSUMでレコードを合計する
- DCOUNTでレコードを数える
- DAVERAGEとDGETで平均と抽出を行う