Googleスプレッドシートで指定したデータ範囲内で複数条件に一致するデータの最大値を求める時は、DMAX関数を使用します。
類似の関数としてMAXIFS関数があります。
この関数は、条件の入れ方が異なりますが、データも条件も同じならどちらの関数を使用しても同じ結果になります。
スプレッドシートのDMAX関数の使い方
性別が「男」でクラスが「1」の生徒の最高点を表示する
2つの条件に一致する最大値を求める
性別が「男」の中でクラスが「1」の生徒の最高点を表示するには以下のような数式を入力します。
1. 最高点を表示させたいセルを選択します。
(今回はセルH4)
2. =DMAX(A3:D13,D3,F3:G4) と入力します。
- データベース:データの範囲を見出し含めて選択する。
- フィールド:選択したデータベース内の最大値を求める列見出しのセルを指定
- 条件:条件を入力したセル範囲(F3からG4)
=DMAX(A3:D13,D3,F3:G4)
上記の条件(男でクラスが1)に一致した生徒の最高点は「85点」ということがわかりました。
データベース、条件で指定するセル範囲には必ず項目名を入れます。
さらに条件で使用する項目名は、データベースにある項目名と同じである必要があります。
違う項目名になっていると条件が正しく認識されません。
他にもデータベース関数は複数あり、計算方法が異なりますが数式の入力方法は同じなので、1つ覚えれば他のデータベース関数もすぐに理解することができます。
DMAX関数とMAXIFS関数の違い
条件が同じであれば、DMAX関数、MAXIFS関数どちらを使用しても結果は同じになります。
今回の例ではそれぞれの関数では以下のようになります。
DMAXの式
=DMAX(A3:D13,D3,F3:G4)
DMAX関数は条件がいくつあっても、1つのセル範囲として指定しています。
MAXIFSの式
=MAXIFS(D4:D13,B4:B13,F4,C4:C13,G4)
MAXIFS関数は条件ごとにセル範囲と条件を追加で指定します。
そのため、条件が多いほど数式がどんどん長くなります。
条件が多いほどMAXIFS関数は数式が長くなり、内容を確認するのに時間がかかります。
DMAX関数はシート内に表形式で条件を指定しているため、条件が増えた時にはセル範囲を拡げる必要はあっても、数式が長くなることはありません。
条件が多いほどDMAXの方がわかりやすいことが実感できると思います。
スプレッドシートのDMAX関数の構文
スプレッドシートのDMAX関数は以下のように入力します。
引数 | 説明 |
---|---|
データベース | データの範囲を見出し含めて選択する。 |
フィールド | 選択したデータベース内の最大値を求める列見出しのセルを指定。 |
条件 | 条件を入力したセル範囲を選択する。 |