エクセルで、データベースの中から条件を満たす値の最大値を算出するのが『DMAX関数』です。
下図を用いて、DMAX関数の使い方を解説します。
DMAX関数の構文
まず、DMAX関数の構文は、次のようになっております。
=DMAX(データベース,フィールド,条件)
エクセル関数を使う時は、2つの使い方があります。
1つ目は、黄色の○で囲っている「fxをクリック→すべて表示を選択→該当関数を選択→OK」と入力後に、入力内容を指示した枠が表示されるので、そこに入力することです。
2つ目は、緑色の枠に構文を直接入力となります。
DMAX関数の使い方
次に、「条件1:条件に応じた一番高い数値をDMAX関数を使い算出」の時の構文です。
J3セルに入力する時の関数は下記になります。
=DMAX($A$2:$F$8,4,H2:I3)
データベース:算出対象の範囲
フィールド:算出したいデータの列数
条件:算出したい内容
上記の数式だけだと、条件に該当する数学と英語の点数を算出することが出来ませんので、J6セルとJ9セルには次の数式を入力します。
J6セル=DMAX($A$2:$E$8,5,H5:I6)
J9セル=DMAX($A$2:$E$8,6,H8:I9)
列数と条件を変えることで、数学と英語の最高点の算出に変えることが出来ます。
条件1の例題は、条件に該当する人の最高点の算出が求められています。
国語の最高点数は、性別が男で出身が東京の人からの、算出が求められています。
条件に該当する人は、「80点のA」と「90点のC」なので、最高点数は90点となります。
数学の最高点数は、性別が女で出身が大阪の人からの、算出が求められています。
条件に該当する人は、「70点のD」と「90点のF」なので、最高点数は90点となります。
英語の最高点数は、性別が男の人からの、算出が求められています。
条件に該当する人は、「80点のA」と「90点のC」と「70点のE」なので、最高点数は90点となります。
DMAX関数とMAXIFS関数の違い
DMAX関数は全項目の最大値の算出が可能で、MAXIFS関数は項目別の最大値の算出が可能です。
下図が両者の違いのイメージとなります。
MAXIFS関数は、一覧表にして個別条件の最大値を算出することが可能ですが、DMAX関数では、出来ません。
DMAX関数では、条件の範囲に項目名を入れる必要があります。
「性別が女で出身が大阪の人」の英語の最高点を算出する時は、条件に『性別~大阪』の4つのセルを選択すれば良いですが、「性別が男で出身が東京の人」の英語の最高点を算出する時は、緑かっこの範囲のように『性別~東京』の6つのセルを選択する必要がありますので、「性別が女で出身が大阪の人」と「性別が男で出身が東京の人」の最高点が算出されます。
よって、個別項目の最高点を算出したい時は、MAXIFS関数を使うべきです。
逆に、「性別が女で出身が大阪の人」と「性別が男で出身が東京の人」の最高点を算出といった、複数項目の最高点を算出したい時は、DMAX関数で条件の範囲を指定すれば、すぐに算出することが可能です。
複数項目の最高点は、MAXIFS関数でも、算出することは可能ですが、数式が長くなりますので、DMAX関数の方が早いです。
DMAX関数とMAXIFS関数のそれぞれの強みを理解して、使い分けましょう。