ExcelのMIN・MAX関数の使い方:最大値・最小値の取得テクニック
ExcelのMIN関数とMAX関数で最大値や最小値を求める基本から、0を除くMINIFS関数、該当する行の特定、上限・下限を設定する応用技まで分かりやすく解説します。
著者 Ayoub Farid · · 5 分で読めます
MIN関数は指定したセル範囲内の最小値を、MAX関数は最大値を返します。「最高売上を記録した月はいつか?」「最安値の仕入先はどこか?」「クラスの最低点は何点か?」といった疑問を解決する際に役立つ、基本的なExcel関数です。
基本の構文
=MIN(number1, [number2], ...)
=MAX(number1, [number2], ...)
具体例
| A | B | |
|---|---|---|
| 1 | 月 | 売上 |
| 2 | 1月 | 4,200 |
| 3 | 2月 | 3,900 |
| 4 | 3月 | 4,800 |
| 5 | 4月 | 5,100 |
=MAX(B2:B5) → 5,100
=MIN(B2:B5) → 3,900
最大値と最小値の差を求めるには、=MAX(B2:B5)-MIN(B2:B5) と入力します(結果:1,200)。
最大値に該当する月を特定する方法
MAX関数単体では売上額しか分からず、それが何月のものかまでは取得できません。該当する項目名を取り出すには、検索関数と組み合わせます。
=XLOOKUP(MAX(B2:B5),B2:B5,A2:A5)
結果は「4月」となります。従来のExcel環境では =INDEX(A2:A5,MATCH(MAX(B2:B5),B2:B5,0)) を使用します。詳しい使い方は INDEX MATCH関数 をご覧ください。なお、最大値が複数ある場合は最初に見つかったデータが返されます。
0や空白セルを除外して最小値を求める
MIN関数は空白セルを無視しますが、数値の「0」は計算対象に含まれます。そのため、入力途中のデータがあると0が最小値として表示されてしまいます。0を除外して最小値を取得したい場合は、MINIFS関数(Excel 2019以降、Microsoft 365、Googleスプレッドシートで利用可能)を活用しましょう。
=MINIFS(B2:B13,B2:B13,">0")
条件付きでMIN・MAXを使う
例えば、「Coffee(コーヒー)」の最高売上額を取得したい場合は、MAXIFS関数を使用します。
=MAXIFS(B2:B50,D2:D50,"Coffee")
上限・下限を設定するテクニック
MIN関数とMAX関数は、数値の上限値や下限値を設定する際にも重宝します。
- ボーナスの上限を500に制限する:
=MIN(B2*10%,500) - 計算結果を0未満(マイナス)にしない:
=MAX(B2-C2,0)
2番目に大きい値・小さい値を求める
2番目以降の順位の値を取得したい場合は、LARGE関数やSMALL関数を使用します。
=LARGE(B2:B13,2)
=SMALL(B2:B13,2)
全体の順位付けを行いたい場合は、RANK関数 を参照してください。
よくあるミスと注意点
- 文字列として保存されている数値:計算から除外されます。MAX関数が0を返す場合は、データの表示形式を確認してください。
- 合計行を含めてしまう:合計行までセル範囲に含めると、MAX関数は当然その合計値を返してしまいます。範囲選択はデータ行のみに限定しましょう。
- 日付はシリアル値(数値)として扱われる:日付の列にMAX関数を使うと、最も新しい日付が取得できます。例えば
=MAX(C2:C50)で「直近の発注日」を調べるといった便利な使い方が可能です。
実際に練習してみましょう
Cellioの「MIN & MAX」レッスンでは、実際の売上スプレッドシートを使って最高売上月と最低売上月を見つける練習ができます。続くレッスンでは他の数式との組み合わせも学べます。アプリ内の基礎ユニットにて配信中です。
よくある質問
Excelで最大値を求めるにはどうすればよいですか?
=MAX(セル範囲) を使用します(例:=MAX(B2:B13))。
0を除外して最小値を求めるにはどうすればよいですか?
=MINIFS(B2:B13,B2:B13,">0") を使用します。
最大値がある行の項目名を取得するにはどうすればよいですか?
MAX関数を組み込んだXLOOKUP関数やINDEX/MATCH関数を使用します(例:=XLOOKUP(MAX(B2:B13),B2:B13,A2:A13))。
日付データに対してもMINやMAXは使えますか?
はい、使えます。MIN関数は最も古い日付、MAX関数は最も新しい日付を返します。