MAX・MIN・LARGE・SMALL関数の使い方
MAX関数とMIN関数は最大値・最小値を求める基本的な関数です。さらにLARGE関数とSMALL関数を使えば、「上から3番目に大きい値」「下から2番目に小さい値」のようにn番目の値を取得できます。売上ランキングや成績順位の把握に欠かせない関数群です。
MAX関数:最大値を求める
MAX関数は、指定した範囲内の最大値を返します。
基本構文
=MAX(数値1, [数値2], ...)
売上データの最高額を求める
月別の売上データから、最も売上が高い月の金額を取得します。
| A列:月 | B列:売上金額 |
|---|---|
| 1月 | 2850000 |
| 2月 | 3120000 |
| 3月 | 4500000 |
| 4月 | 2980000 |
| 5月 | 3650000 |
| 6月 | 3200000 |
=MAX(B2:B7)
結果は4500000です。3月の売上が最大値として返されます。
複数の範囲を指定する
MAX関数は複数の引数を受け取れます。異なるシートや範囲の中での最大値を求められます。
=MAX(B2:B7, D2:D7)
B列とD列の両方を含めた最大値を返します。
文字列や空白セルの扱い
MAX関数は数値以外のセル(文字列、空白、論理値)を無視します。ただし、引数に直接論理値を指定した場合はTRUEが1、FALSEが0として扱われます。
MIN関数:最小値を求める
MIN関数は、指定した範囲内の最小値を返します。
基本構文
=MIN(数値1, [数値2], ...)
仕入単価の最安値を確認する
商品の仕入データから、最も安い単価を取得します。
| A列:仕入先 | B列:商品名 | C列:仕入単価 |
|---|---|---|
| A商事 | ボールペン | 45 |
| B物産 | ボールペン | 38 |
| C商会 | ボールペン | 52 |
| D貿易 | ボールペン | 41 |
=MIN(C2:C5)
結果は38です。B物産の仕入単価が最小値として返されます。
0を除いた最小値
データに0が含まれる場合、MIN関数は0を返します。0を除外して最小値を求めたい場合は、MINIFS関数や配列数式を使います。
# MINIFS関数を使う方法(Excel 2019以降)
=MINIFS(C2:C100, C2:C100, ">0")
LARGE関数:n番目に大きい値を求める
LARGE関数は、指定した範囲内でn番目に大きい値を返します。
基本構文
=LARGE(配列, 順位)
| 引数 | 説明 |
|---|---|
| 配列 | 対象となるセル範囲 |
| 順位 | 何番目に大きい値を取得するか |
売上トップ3を取得する
売上データから上位3つの金額を取得します。
| A列:担当者 | B列:年間売上 |
|---|---|
| 田中 | 15800000 |
| 佐藤 | 12300000 |
| 山田 | 18500000 |
| 鈴木 | 9800000 |
| 高橋 | 16200000 |
| 伊藤 | 11500000 |
=LARGE(B2:B7, 1) → 18500000(1位:山田)
=LARGE(B2:B7, 2) → 16200000(2位:高橋)
=LARGE(B2:B7, 3) → 15800000(3位:田中)
LARGE関数の第2引数に1を指定するとMAX関数と同じ結果になります。
セル参照で順位を指定する
順位をセル参照にすると、ランキング表の作成が効率的です。
=LARGE($B$2:$B$7, D2)
D列に1、2、3…と入力しておけば、数式をコピーするだけでランキングが完成します。
SMALL関数:n番目に小さい値を求める
SMALL関数は、指定した範囲内でn番目に小さい値を返します。
基本構文
=SMALL(配列, 順位)
納期の早い順に取得する
注文データから、納品日が早い順に3件を取得します。日付はExcelの内部ではシリアル値(数値)として処理されるため、SMALL関数で並べ替えできます。
| A列:注文番号 | B列:商品 | C列:納品日 |
|---|---|---|
| 1001 | 商品A | 2026/4/15 |
| 1002 | 商品B | 2026/4/8 |
| 1003 | 商品C | 2026/4/22 |
| 1004 | 商品D | 2026/4/3 |
| 1005 | 商品E | 2026/4/18 |
=SMALL(C2:C6, 1) → 2026/4/3(最も早い納品日)
=SMALL(C2:C6, 2) → 2026/4/8(2番目に早い納品日)
=SMALL(C2:C6, 3) → 2026/4/15(3番目に早い納品日)
0を除外してn番目に小さい値を求める
0を含むデータからSMALL関数を使う場合、0が最小値として扱われます。0を除外するには配列数式を使います。
=SMALL(IF(B2:B100>0, B2:B100), 1)
この数式はCtrl+Shift+Enterで確定する必要があります(Excel 365ではそのまま確定できます)。
売上ランキング表の作成
LARGE関数とINDEX・MATCH関数を組み合わせて、順位付きのランキング表を作成できます。
ランキング表の構成
以下のような売上データから、ランキング表を作成します。
| A列:担当者 | B列:売上 |
|---|---|
| 田中 | 4500000 |
| 佐藤 | 3800000 |
| 山田 | 5200000 |
| 鈴木 | 2900000 |
| 高橋 | 4100000 |
順位ごとの売上金額
D列に順位(1、2、3…)を入力し、E列に以下の数式を入力します。
=LARGE($B$2:$B$6, D2)
順位に対応する担当者名
F列にINDEX・MATCH関数で担当者名を取得します。
=INDEX($A$2:$A$6, MATCH(LARGE($B$2:$B$6, D2), $B$2:$B$6, 0))
結果として以下のランキング表が完成します。
| 順位 | 売上金額 | 担当者 |
|---|---|---|
| 1 | 5200000 | 山田 |
| 2 | 4500000 | 田中 |
| 3 | 4100000 | 高橋 |
| 4 | 3800000 | 佐藤 |
| 5 | 2900000 | 鈴木 |
同じ値がある場合の注意
売上金額が同じ担当者が複数いる場合、MATCH関数は最初に見つかった担当者名を返します。重複がある場合はCOUNTIF関数を組み合わせるなどの工夫が必要です。
よくあるエラーと対処法
#NUM!エラー
LARGE関数やSMALL関数で、順位がデータ件数を超えている場合に発生します。
# データが5件しかないのに6番目を指定するとエラー
=LARGE(B2:B6, 6) → #NUM!
IFERROR関数でエラーを処理できます。
=IFERROR(LARGE(B2:B6, D2), "")
空白セルの影響
MAX・MIN関数は空白セルを無視しますが、LARGE・SMALL関数も同様に空白セルを無視します。ただし、0が入力されたセルは数値として処理されます。
条件付きの最大値・最小値
Excel 2019以降では、MAXIFS関数とMINIFS関数で条件付きの最大値・最小値を取得できます。
=MAXIFS(C2:C100, B2:B100, "営業1課")
まとめ
MAX・MIN・LARGE・SMALL関数は、データの最大値・最小値やn番目の値を取得する関数です。
- MAX関数は最大値、MIN関数は最小値を返す
- LARGE関数はn番目に大きい値、SMALL関数はn番目に小さい値を返す
- INDEX・MATCH関数と組み合わせてランキング表を作成できる
- 順位がデータ件数を超えると#NUM!エラーになる
- 条件付きの最大値・最小値にはMAXIFS・MINIFS関数を使う
なお、これらの関数はいずれもGoogle スプレッドシートでも同じ構文で利用できます。売上ランキングや成績順位の算出など、業務データの分析で幅広く活用できる関数群です。用途に応じて適切な関数を選択しましょう。