Table of Contents
DMAX関数ってなに?データベースから条件に一致するレコードの最大値を求める関数
エクセルのDMAX(ディー・マックス)関数は、データベースから条件に一致する最大値を求めてくれる関数です。
MAX関数では指定した範囲の中から、最大値を求めることができましたが、条件の指定ができませんでした。
条件が指定できることで、使い勝手が大きく広がるので、とても便利な関数と言えます。
データベースってなに?と思う方は、DSUMの記事で解説していますので、詳しくはこちらをご覧くださいね。
DMAX関数の代わりにMAXIFS関数で代用が可能
MAXIFS関数も同様に、指定した条件に一致する最大値を求めることができます。
では、DMAX関数とMAXIFS関数はどこが違うのでしょうか?実は最大値を求める条件の記載場所が違います。
ココがポイント
・DMAX関数:シート上で指定
・MAXIFS関数:引数で指定
この違いにより、DMAX関数の条件はとても分かりやすいのが特徴です。
逆にMAXIFS関数では引数が長くなってしまうため、条件の確認で時間がかかってしまいます。
今回はDMAX関数を使って、複数の条件を使ってデータの最大値を求める方法をご紹介していきますので、最後までチェックして下さいね。
DMAX関数の使い方は?書式と引数を解説
DMAX関数はデータベースから検索条件を指定することで、対象のフィールドの最大値を求めることができます。
実際にDMAX関数を使うために、引数について解説しますね。
DMAX関数の書式
DMAX関数の書式はこちらです。
ココがポイント
DMAX(データベース, フィールド, 条件)
DMAX関数の引数について解説します。
ポイント
・「データベース」は必須項目で、フィールド(見出し)とレコード(データ)の範囲を指定します。
・「フィールド」は必須項目で、最大値を求めたい見出しを指定します。
・「条件」は必須項目で、検索条件が入力された範囲を指定します。
・「条件」には、「フィールド(見出し)」+「条件」を縦に指定して、その範囲を指定します。
DMAX関数を使うには?実例を使って解説
関数を使うための基本的な操作は、「関数の挿入」を使うことになります。
関数の挿入を使ってDMAX関数を使うには、タブの真下にある「fx」をクリックする必要があります。
キーボードから直接入力することも可能ですが、まずは関数の呼び出し方や使い方に慣れることを優先しましょう。
DMAX関数を使う前の準備が必要!検索条件を用意する
データベースから「富山店」の売上金額の最大値を求めるためには、DMAX関数を使います。
売上店は「富山店」「金沢店」「高岡店」の3店舗ありますが、その中から「富山店」の売上金額から最大値を求めてみましょう。
DMAX関数を使う前の準備として「検索条件」を設定しておく必要があります。
検索条件を設定するには、見出し+検索条件の順番で縦に指定します。
ココがポイント
・J2セル:「売上店」を入力
・J3セル:「富山店」を入力
検索条件を設定したら、DMAX関数を使って「富山店」の売上金額の最大値を求めます。
関数の挿入からDMAX関数を選択
関数の挿入からDMAX関数を使って、データベースから最大値を算出します。
1.J6セルをクリック
2.「fx」をクリック
3.関数の検索をしましょう。
DMAX関数の検索方法として
ココがポイント
・「関数の検索」に「DMAX」を入力して検索
・「関数の分類」に「データベース」を選択
どちらかの方法を使うことで「関数名」に候補となる関数の一覧が表示されますので、「DMAX」を選択してOKボタンを押します。
DMAX関数の引数の設定
「データベース」には見出しを含むデータの範囲を指定するため、「B2:H17」と指定しましょう。
「フィールド」は最大値を求めたい列を指定するため、売上金額の「H2」と指定します。
「条件」は事前に準備した「J2:J3」を指定します。
入力が終わったらOKをクリックしましょう。
DMAX関数を使った結果として、「富山店」の売上金額から最大値を求めることができました。
DMAX関数で複数の条件を指定する方法1
実際にDMAX関数を使う場面では、複数の条件を指定することとなります。
先ほどは「富山店」の売上金額の最大値を求めましたが、今回の条件は
ココがポイント
売上店:「富山店」
商品名:「赤白葡萄酒セット」
に該当する売上金額の最大値を求めてみましょう。
DMAX関数を使う前に検索条件を作成
検索条件を設定するには、見出し+検索条件の順番で縦に指定しますが、売上店と商品名のフィールドを指定する場合は横に記述する必要があります。
検索条件を記載する方法は以下のようになります。
ココがポイント
・J2セル:「売上店」を入力
・J3セル:「富山店」を入力
・K2セル:「商品名」を入力
・K3セル:「赤白葡萄酒セット」を入力
検索条件を設定したら、DMAX関数を使って2つの条件に一致する売上金額の最大値を求めます。
DMAX関数の引数の設定
J6セルを選択して、DMAX関数を呼び出します。
引数については以下の設定をしましょう。
ココがポイント
=DMAX(B2:H18,H2,J2:K3)
「データベース」には見出しを含むデータの範囲を指定するため、「B2:H18」と指定しましょう。
「フィールド」は最大値を求めたい列を指定するため、売上金額の「H2」と指定します。
「条件」は事前に準備した「J2:K3」を指定します。
DMAX関数を使った結果として、「富山店」の「赤白葡萄酒セット」の売上金額から最大値を求めることができました。
DMAX関数で複数の条件を指定する方法2
実際にDMAX関数を使う場面では、複数の条件を指定することとなります。
先ほどは「売上店」と「商品名」の複数条件で、売上金額の最大値を求めましたね。
今度は売上店を「金沢店」と「高岡店」から商品名「富山地酒セット」の最大金額を求めてみましょう。
ココがポイント
売上店:「金沢店」と「高岡店」
商品名:「富山地酒セット」
DMAX関数を使う前に検索条件を作成
検索条件を記載する方法は以下のようになります。
ココがポイント
・J9セル:「売上店」を入力
・J10セル:「金沢店」を入力
・J11セル:「高岡店」を入力
・K9セル:「商品名」を入力
・K10セル:「富山地酒セット」を入力
・K11セル:「富山地酒セット」を入力
検索条件を設定したら、DMAX関数を使って売上金額の最大値を求めます。
DMAX関数の引数の設定
J14セルを選択して、DMAX関数を呼び出します。
引数については以下の設定をしましょう。
ココがポイント
=DMAX(B2:H18,H2,J9:K11)
「データベース」には見出しを含むデータの範囲を指定するため、「B2:H18」と指定しましょう。
「フィールド」は最大値を求めたい列を指定するため、売上金額の「H2」と指定します。
「条件」は事前に準備した「J9:K11」を指定します。
DMAX関数の結果として、売上店を「金沢店」と「高岡店」から商品名「富山地酒セット」の最大金額を求めることができました。
DMAX関数の結果が条件と違う場合は?完全一致を使った対処法
今までご紹介していたDMAX関数の条件の指定方法では、似たような条件に対して正しい結果が得られないことがあります。
例えば、「富山地酒セット」と「富山地酒セット(プレミアム)」という2つの商品があるような場合です。
条件に「富山地酒セット」としてしまうと、「富山地酒セット」と「富山地酒セット(プレミアム)」の中で最大値を返してしまいます。
DMAX関数が前方一致で対象データを検索していることが原因です。
今回のような商品が複数ある場合は、完全一致で検索するように条件を変更することで正しい結果が得られることができます。
前方一致と完全一致で結果の違いを確認してみましょう。
前方一致で検索するように条件を指定
今まで使ってきたように条件を指定した場合は、前方一致で検索することとなるため、頭に「富山地酒セット」を含む中から最大値を求めることになります。
・富山地酒セット
・富山地酒セット(プレミアム)
検索条件を記載する方法は以下のようになります。
ココがポイント
・J17セル:「売上店」を入力
・J18セル:「富山店」を入力
・K17セル:「商品名」を入力
・K18セル:「富山地酒セット」を入力
DMAX関数の引数は以下のようになります。
=DMAX(B2:H18,H2,J17:K18)
DMAX関数の結果としては、「富山地酒セット」と「富山地酒セット(プレミアム)」の中から最大値の「30,000」を求めることができました。
完全一致で検索するように条件を変更
完全一致で検索することで「富山地酒セット」の中から最大値を求めることができますが、条件の指定方法が今までと異なるため注意が必要です。
検索条件を記載する方法は以下のようになります。
ココがポイント
・J17セル:「売上店」を入力
・J18セル:「富山店」を入力
・K17セル:「商品名」を入力
・K18セル:「="=富山地酒セット"」を入力
「="=富山地酒セット"」は、「=富山地酒セット」を「"(半角のダブルクォーテーション)」で括ることで、「富山地酒セット」と一致するものを条件とします。
DMAX関数の引数は以下のようになります。
=DMAX(B2:H18,H2,J24:K25)
DMAX関数の結果としては、「富山地酒セット」の中から最大値の「20,000」を求めることができました。
エクセルのDMAX関数まとめ
Excel(エクセル)のDMAX(ディー・マックス)関数では、様々な検索条件を使って最大値を求めることができました。
データベースを使いますが、エクセルを普段利用している人であれば難しいものではありませんでしたね。
DMAX関数はあまり馴染みがないかも知れませんが、知っておくと役立つ関数ですので、ぜひ覚えておきましょう。