ExcelのDPRODUCT関数の使い方|条件に一致する数値データの積を求める

スポンサーリンク

Excelで「特定のカテゴリだけの数値を全部掛け合わせたい」「条件を満たすデータの積を求めたい」と思ったことはありませんか?

データが多いと、手作業でフィルターをかけてから電卓で掛け算するのは大変ですよね。条件を変えるたびにやり直すのも面倒です。

そんなときに便利なのがExcelの DPRODUCT関数 です。条件に一致するレコードの数値を自動で掛け合わせて、積を返してくれますよ。

この記事では、DPRODUCT関数の基本的な書き方から応用例まで解説します。よくあるエラーの対処法や、似た関数との使い分けもあわせて紹介しますね。

ExcelのDPRODUCT関数とは?

DPRODUCT関数は「ディープロダクト」と読みます。Database PRODUCTの略で、データベース形式の表から条件に一致するレコードの「数値の積(掛け算の結果)」を求める関数です。

Excelにはデータベース関数と呼ばれるグループがあります。DPRODUCT関数はそのひとつで、DCOUNT関数(条件付きカウント)やDAVERAGE関数(条件付き平均)と同じ仲間です。

データベース関数の特徴は、条件をセル上に書き出して指定するところです。数式の中に条件を埋め込まないので、条件を変えたいときはセルの値を書き換えるだけで済みますよ。

DPRODUCT関数の大きなポイントは 条件に一致する数値を掛け合わせる ところです。「割引率を連続で適用した結果を求めたい」「複数の係数を掛け合わせて最終値を出したい」といった場面で役立ちます。

DPRODUCT関数はExcel 2003以降のすべてのバージョンで使えます。Googleスプレッドシートでも同じ書き方で使えるので、覚えておくと活用の幅が広がりますよ。

ExcelのDPRODUCT関数の書き方(構文と引数)

基本構文

=DPRODUCT(データベース, フィールド, 検索条件)

引数は3つあり、すべて必須です。

引数の説明

引数必須/省略可説明
データベース必須見出し行を含むセル範囲(例: A1:D10)
フィールド必須積を求める対象の列の見出し名(”係数”)または列番号(1始まり)
検索条件必須見出し行+条件値を含むセル範囲

データベース には、表全体を見出し行ごと指定します。見出し行がないと正しく動作しないので注意してください。

フィールド には、掛け合わせたい数値が入っている列を指定します。指定方法は2通りあります。

指定方法書き方の例説明
列の見出し名をダブルクォーテーションで囲む“係数”見出しが「係数」の列を対象にする
列番号を数値で指定する3左端から3番目の列を対象にする

見出し名で指定するほうが数式の意味がわかりやすいので、基本的にはこちらをおすすめしますよ。

検索条件 には、見出し行と条件値がセットになったセル範囲を指定します。条件範囲はデータベースの範囲と重ならない場所に作ってください。重なっていると正しい結果が返りません。

DPRODUCT関数の基本的な使い方

ここでは、製品データから特定カテゴリの係数を掛け合わせる例で解説します。

サンプルデータ

以下のような製品リストがA1:D7に入っているとします。

製品名カテゴリ係数売上
製品A電子部品1.2500
製品B機械部品0.8300
製品C電子部品1.5400
製品D電子部品0.9600
製品E機械部品1.1350
製品F電子部品1.3450

この表で「電子部品の係数をすべて掛け合わせた結果」を求めてみましょう。

条件の設定

F1:F2に条件を入力します。

F1F2
カテゴリ電子部品

F1にはデータベースの見出しと同じ文字列を入力します。F2には抽出条件の値を入力します。

数式の入力

電子部品の係数の積を求める数式は次のとおりです。

=DPRODUCT(A1:D7, "係数", F1:F2)

この数式は「A1:D7のデータベースから、カテゴリが電子部品のレコードを探して、係数列の数値をすべて掛け合わせた結果を返す」という意味です。

電子部品の係数は1.2、1.5、0.9、1.3の4つです。1.2 x 1.5 x 0.9 x 1.3 = 2.106 が結果になります。

条件を「機械部品」に変えるとF2のセルを書き換えるだけでOKです。機械部品の係数は0.8と1.1なので、0.8 x 1.1 = 0.88 になりますよ。

DPRODUCT関数の応用:複数条件で積を求める

AND条件(すべての条件を同時に満たす)

複数の条件をすべて満たすレコードの積を求めるには、条件を 同じ行 に並べます。

たとえば「電子部品」かつ「係数が1以上」のレコードの売上の積を求めるには、条件範囲を次のように設定します。

F1G1
カテゴリ係数
電子部品>=1
=DPRODUCT(A1:D7, "売上", F1:G2)

電子部品かつ係数が1以上のレコードは、製品A(売上500)、製品C(売上400)、製品F(売上450)の3つです。500 x 400 x 450 = 90,000,000 が結果になります。

OR条件(いずれかの条件を満たす)

いずれかの条件を満たすレコードの積を求めるには、条件を 別の行 に書きます。

たとえば「電子部品」または「機械部品」の売上の積を求めるには、条件範囲を次のように設定します。

F1
カテゴリ
電子部品
機械部品
=DPRODUCT(A1:D7, "売上", F1:F3)

全レコードが対象になるので、500 x 300 x 400 x 600 x 350 x 450 = 5,670,000,000,000,000 が結果です。

積の計算は値が増えるとすぐに大きな数値になります。結果が極端に大きくなったときは、対象レコードの数が想定どおりか確認してみてください。

AND条件とOR条件の使い分けがデータベース関数のポイントです。「同じ行に書けばAND、別の行に書けばOR」と覚えておけば迷いませんよ。

DPRODUCT関数でよくあるエラーと対処法

#VALUE! エラー

フィールド名が間違っている場合に発生します。

  • 原因: フィールドに指定した見出し名がデータベースの見出し行に存在しない
  • 対処法: ダブルクォーテーションの中の文字列が、データベースの見出し行と完全に一致しているか確認してください。スペースの有無や全角半角の違いにも注意しましょう

フィールドを列番号で指定しているときは、番号が列数の範囲内に収まっているかも確認してみてください。

結果が想定と違う

条件に一致するレコードが正しく抽出されていない場合に起こります。

  • 原因1: 検索条件の値が正しくない(スペルミス、全角半角の違いなど)
  • 原因2: 条件範囲にデータベースと重なる行が含まれている
  • 対処法: 条件の値が正しいか確認してください。条件範囲はデータベースから離れた位置に作るのがおすすめです

結果が0になる

フィールドに指定した列に0が含まれていると、積の結果が0になります。

  • 原因: 条件に一致するレコードの中に数値0のセルがある
  • 対処法: 対象データに0が含まれていないか確認してください。0が含まれていると、どれだけ大きな数値があっても積は0になります

#NAME? エラー

数式の入力ミスで発生します。

  • 原因: 関数名のスペルミス、またはフィールド名のダブルクォーテーション忘れ
  • 対処法: 「DPRODUCT」のスペルを確認してください。フィールド名を文字列で指定する場合は "係数" のようにダブルクォーテーションで囲む必要があります

DPRODUCT関数と似た関数の違い・使い分け

DPRODUCT関数とPRODUCT関数の違い

いちばん混同しやすいのがDPRODUCT関数とPRODUCT関数です。違いは条件指定の有無にあります。

比較項目DPRODUCT関数PRODUCT関数
条件指定できる(検索条件で絞り込む)できない(指定範囲すべてを掛ける)
データ形式データベース形式(見出し行が必要)セル範囲を直接指定
用途条件に一致するデータだけの積を求めたいとき範囲内のすべての数値の積を求めたいとき

DPRODUCT関数が向いているケース:

  • 「営業部だけの係数を掛け合わせたい」のように条件で絞りたいとき
  • 条件をセルで管理して頻繁に切り替えたいとき

PRODUCT関数が向いているケース:

  • 条件不要で範囲内の数値をすべて掛けたいとき
  • シンプルな掛け算をしたいとき

DPRODUCT関数とほかのデータベース関数の比較

DPRODUCT関数は、データベース関数ファミリーのひとつです。条件の指定方法はすべて同じで、違いは「条件に一致したレコードをどう処理するか」です。

関数処理内容
DPRODUCT関数数値の積を求める
DCOUNT関数数値データの件数を数える
DCOUNTA関数空白以外のセルの件数を数える
DAVERAGE関数数値の平均値を求める
DGET関数条件に一致する1件のデータを取り出す

どの関数も引数は「データベース, フィールド, 検索条件」の3つです。構文が同じなので、ひとつ覚えればほかのデータベース関数にもすぐ応用できますよ。

まとめ

この記事では、ExcelのDPRODUCT関数の使い方を解説しました。

  • DPRODUCT関数は、データベース形式の表から条件に一致するレコードの「数値の積」を求める関数
  • 引数は「データベース」「フィールド」「検索条件」の3つで、すべて必須
  • AND条件は同じ行、OR条件は別の行に条件を書く
  • 対象データに0が含まれると結果が0になるので注意
  • 範囲全体の積を求めるだけならPRODUCT関数がシンプル

データベース関数は条件をセル上で管理できるのが最大のメリットです。DCOUNT関数DAVERAGE関数と組み合わせれば、条件付き集計がぐっと効率的になりますよ。

タイトルとURLをコピーしました