
DMAX関数は、条件付きで最大値を求める関数である。基本構文は、=DMAX(データベース, フィールド, 条件)となる。単一条件だけでなく、AND条件やOR条件などでも利用できる。
目次
エクセルで最大値を求める関数といえば「MAX関数」が一般的だが、条件付きで最大値を求めたい場合は「DMAX関数」が便利である。DMAX関数を使えば、例えば「担当者が山田の売上の中で最大値を出す」といった絞り込みが簡単にできる。
本記事では、DMAX関数の基本的な使い方から、複数条件での応用方法、他関数との違いまで、実例を交えてわかりやすく解説する。
DMAX関数とは?
DMAX関数は、条件に一致するレコードの中から最大値を返すエクセルのデータベース関数である。集計範囲を単に指定するMAX関数とは異なり、条件範囲を設定することで「この条件を満たす中で最大の値」を自動で抽出できる。
■DMAX関数の概要
DMAX関数は表形式データ(見出し行+レコード行)を対象に動作する。売上管理、成績表、在庫データなど、複数項目の中から特定条件に合致する最大値を求めたい場面で役立つ。
■基本構文と引数の説明
DMAX関数の構文

=DMAX(データベース, フィールド, 条件)
- データベース:項目名(見出し)を含む、データ全体の範囲(例:A1:D10)
- フィールド:最大値を求めたい列名または列番号(例:”売上” や 3)
- 条件:条件を指定する範囲(例:F1:F2)※見出し付きで指定する必要がある
DMAX関数の基本的な使い方
ここではサンプルデータを用いて単一条件での最大値抽出を解説する。
■単一条件での最大値の求め方
手順としては以下の通りだ。
- データベース範囲を確認する
- 条件範囲を別途作成
- DMAX関数を別セルに入力
■サンプルデータで実演
1.「商品」「担当者」「売上」「地域」の表を用意する

2.「担当者が山田」の売上最大値を求めたい場合、以下のように別のセルに条件を記述する。

3.この条件セルをF1:F2とし、データ全体をA1:D5とした場合、以下のように関数を入力する。
=DMAX(A1:D5, “売上”, F1:F2)
結果は「2000」となる。

DMAX関数の応用:複数条件の指定
条件を複数組み合わせることで、より精緻な抽出が可能となる。
■AND条件の使い方
「担当者が山田」かつ「地域が東京」の売上最大値を出すには、以下のように条件範囲を2列にする。

関数は以下のように記述する。
=DMAX(A1:D5, “売上”, F1:G2)

■OR条件の使い方
「担当者が山田」または「地域が大阪」という条件の場合は、次のように2行に分ける。

この条件をF1:G3に設定し、次のように書く。
=DMAX(A1:D5, “売上”, F1:G3)
この場合、「山田の売上(1000と2000)」と「大阪の売上(1500)」が対象になり、最大値は2000になる。

■数値の範囲指定
売上が「1000以上かつ1500以下」のデータの中で最大値を出したいときは、次のように指定する。

DMAX関数を使う上でのポイント
効果的に使うための注意点を押さえておくことが重要である。
■条件設定の準備
DMAX関数を使用する際には、条件をセル範囲として別に設定する必要がある。関数内に直接「担当者=山田」と書くことはできない。
■見出しの一致
条件セルの見出し(ラベル)は、データベースの項目名と完全一致していなければならない。誤字や余分なスペースもエラーの原因になる。
■不等号やワイルドカード
不等号(例:>=1000)を使えば数値の範囲指定が可能。ワイルドカードも使える。