DMAX・DMIN・DAVERAGE 関数は、条件表に書いた条件に合う行の中で、最大・最小・平均を求める関数です。=DMAX(A1:D11,"金額",E1:E2) と書くと、E1:E2 の条件(分類=果物)に合う行の金額の最大が出ます。
書き方は DSUM 関数と同じです(DSUM関数の使い方)。この記事では、条件表の作り方と 3 つの関数の使い方を、実際の Excel で確かめた結果で説明します。
DMAX・DMIN・DAVERAGE 関数の書き方
=DMAX(表全体, "列の見出し", 条件表)
=DMIN(表全体, "列の見出し", 条件表)
=DAVERAGE(表全体, "列の見出し", 条件表)
| 引数 | 意味 |
|---|---|
| 表全体 | 見出しの行を含めた表(A1:D11) |
| 列の見出し | 最大などを出す列の見出し(”金額”) |
| 条件表 | 1 行目に見出し、2 行目から下に条件を書いた範囲 |
同じ行に並べた条件は「かつ」、別の行に書いた条件は「または」です。「1,000 以上」は条件表に >=1000 と書きます。
1. 条件に合う中での最大(DMAX)
E1:E2 の条件表(分類=果物)に合う行の、金額の最大です。
=DMAX(A1:D11,"金額",E1:E2)

結果は 1,500 でした(ぶどう)。
2. 条件に合う中での最小(DMIN)
同じ条件表で、最小を出します。
=DMIN(A1:D11,"金額",E1:E2)

結果は 600 でした(みかん)。
3. 2 つの条件で平均する(DAVERAGE)
条件を同じ行に並べると「かつ」になります。分類=果物、かつ、担当=鈴木です。
=DAVERAGE(A1:D11,"金額",E5:F6)

結果は 1,250 でした(1,500 と 1,000 の平均)。
4. 「1,000 以上」の条件で平均する
条件表の金額の列に >=1000 と書くと、1,000 以上の行だけで平均します。
=DAVERAGE(A1:D11,"金額",E9:E10)

結果は 1,233 でした(1,200・1,500・1,000 の平均)。
【実機で検証】DMAX でつまずくところ

| ためしたこと | 式 | 結果 |
|---|---|---|
| MAXIFS で果物の最大 | =MAXIFS(DMAX!D2:D11,DMAX!A2:A11,"果物") | 1,500 |
| AVERAGEIFS で果物かつ鈴木 | =AVERAGEIFS(DMAX!D2:D11,DMAX!A2:A11,"果物",DMAX!C2:C11,"鈴木") | 1,250 |
| 条件に合う行がない(A13:A14)の DMAX | =DMAX(DMAX!A1:D11,"金額",A13:A14) | 0 |
| 条件に合う行がない DAVERAGE | =DAVERAGE(DMAX!A1:D11,"金額",A13:A14) | #DIV/0! |
| 見出しの代わりに列番号 4 | =DMAX(DMAX!A1:D11,4,DMAX!E1:E2) | 1,500 |
MAXIFS で出した果物の最大は 1,500、AVERAGEIFS の果物かつ鈴木の平均は 1,250 で、DMAX・DAVERAGE と同じでした。
条件に合う行がない(分類=肉)とき、DMAX は 0、DAVERAGE は #DIV/0! になりました。0 を本当の最大とまちがえないように注意します。
見出しの代わりに列の番号 4 を入れても 1,500 で、同じ結果になりました。
よくある質問
MAXIFS と DMAX はどちらを使う?
条件が決まっていて「かつ」だけなら MAXIFS・MINIFS・AVERAGEIFS が手軽です。「または」を混ぜたい、条件を表で書き換えたいときは DMAX などが便利です。MAXIFS関数の使い方も参考にしてください。
条件に合う件数も知りたいときは?
数値の件数は DCOUNT、空でないセルの件数は DCOUNTA で数えます。DSUM関数の使い方で説明しています。
期間(日付)で条件を付けたいときは?
条件表に「日付」の見出しを 2 つ並べて、>=2026/4/1 と <=2026/4/30 のように書くと期間で絞れます。

コメント