「売上データから最高記録と最低記録をすぐに調べたい」「月次レポートでTOP3の担当者名を自動で抽出したい」「部署ごとの最大達成率を条件付きで取り出したい」——こうした集計ニーズは、ExcelのMAX・MIN・LARGE・SMALL関数を組み合わせることで効率的に解決できます。
MAX関数とMIN関数は最大値・最小値を求める基本統計関数ですが、LARGE関数・SMALL関数を使えば「上位3番目の売上」「下から2番目のスコア」のように任意の順位の値を取り出せます。さらにExcel 2019以降で追加されたMAXIFS・MINIFS関数を使えば、SUMIFS関数と同じ書き方で条件を指定した最大・最小値の抽出も可能です。MOS Excel試験でも、これら統計系関数は頻出の出題カテゴリです。本記事では、MAX・MIN・LARGE・SMALLの基本構文から業務シナリオ別の活用パターン・エラー対処・MOS試験攻略まで2026年最新版で徹底解説します。
「Excelで最大値・最小値の集計をもっとスマートにこなしたい」「MOS試験の統計関数問題を確実に得点したい」という方は、ぜひ最後までお読みください。
MAX・MIN関数の基本構文と使い方
MAX関数とMIN関数は、指定した範囲の中から最大値・最小値を返すExcelの基本統計関数です。数値・日付・時刻のいずれにも使用でき、文字列やエラー値は無視して集計します。
MAX関数 — 最大値を求める
MAX関数の構文は次のとおりです。
=MAX(数値1, [数値2], ...)
引数には数値・セル参照・セル範囲・配列を指定できます。最大255個の引数を指定でき、複数の範囲をまとめて検索することも可能です。
| 使用例 | 数式 | 説明 |
|---|---|---|
| 単一範囲の最大値 | =MAX(B2:B13) | B2~B13の最大値を返す |
| 複数範囲の最大値 | =MAX(B2:B13, D2:D13) | B列とD列の両範囲を合わせた最大値を返す |
| 直接値を指定 | =MAX(100, 200, 50) | 200を返す |
| 日付の最新日を取得 | =MAX(C2:C20) | 日付が入ったC列から最も新しい日付を返す |
MAX関数は空白セルを無視するため、データが存在する行だけを対象に最大値を返します。論理値(TRUE/FALSE)をセルに直接入力した場合は無視されますが、引数として直接指定した場合はTRUE=1・FALSE=0として扱われます。
MIN関数 — 最小値を求める
MIN関数の構文はMAX関数と同じ形式で、最小値を返します。
=MIN(数値1, [数値2], ...)
空白セルやエラー値は無視されます。「0」はゼロとして集計されるため、0が含まれるデータで「0を除いた最小値」を求めたい場合は後述のMINIFS関数を使います。
| 使用例 | 数式 | 説明 |
|---|---|---|
| 単一範囲の最小値 | =MIN(B2:B13) | B2~B13の最小値を返す |
| 複数範囲の最小値 | =MIN(B2:B13, D2:D13) | B列とD列を合わせた最小値を返す |
| 最も古い日付 | =MIN(C2:C20) | 日付列から最も古い日付を返す |
| 0を除いた最小値 | =MINIFS(B2:B13, B2:B13, “>0”) | 0を除いた最小値を返す(MINIFS使用) |
MAX・MIN関数の実務活用パターン
月次売上データの最高・最低記録を調べる
売上データが入力されているシートで月ごとの最大・最小値を集計する場面は業務で頻繁に発生します。たとえばB列に1月から12月の売上が入力されているとき、次の数式でその年の最高・最低月を特定できます。
=MAX(B2:B13) ' 最高月の売上金額
=MIN(B2:B13) ' 最低月の売上金額
最大値が何行目にあるかを調べたい場合は、MATCH関数と組み合わせます。
=MATCH(MAX(B2:B13), B2:B13, 0) ' 最大値の行番号(範囲内の位置)を返す
さらにINDEX関数と組み合わせると、最大値に対応する月名や担当者名を取り出せます。
=INDEX(A2:A13, MATCH(MAX(B2:B13), B2:B13, 0)) ' 最高月の月名を返す
複数シートにまたがるデータの最大・最小値を求める
支店ごとに別シートへデータが分かれている場合、複数シートを引数に指定できます。
=MAX(Sheet1!B2:B13, Sheet2!B2:B13, Sheet3!B2:B13)
シート名が連続している場合は3Dセル参照(立体集計)を使うと数式が短くなります。
=MAX(Sheet1:Sheet3!B2:B13) ' Sheet1~Sheet3のB2:B13全体から最大値を返す
MAX・MINと条件付き書式を組み合わせる
MAX関数を条件付き書式のカスタム数式として使うと、最大値を含むセルを自動でハイライトできます。B2:B13を選択して条件付き書式の「数式を使用して書式設定するセルを決定」を選び、次の数式を入力します。
=B2=MAX($B$2:$B$13)
範囲をドル記号で絶対参照にする点が重要です。同様にMIN関数を使えば最小値のセルを別の色でハイライトできます。データが変わるたびに強調表示が自動更新されるため、ダッシュボード的なレポート作成に活用できます。
LARGE・SMALL関数の基本構文と使い方
LARGE関数・SMALL関数は、指定した範囲内で「何番目に大きい値」「何番目に小さい値」を返す関数です。MAX/MINは1位のみですが、LARGE/SMALLは2位・3位など任意の順位の値を取り出せます。
LARGE関数 — 上位N番目の値を取り出す
=LARGE(配列, 順位)
第1引数に数値が入ったセル範囲、第2引数に1以上の整数で順位を指定します。
| 数式 | 説明 |
|---|---|
| =LARGE(B2:B13, 1) | 最大値を返す(MAX関数と同じ結果) |
| =LARGE(B2:B13, 2) | 2番目に大きい値を返す |
| =LARGE(B2:B13, 3) | 3番目に大きい値を返す |
順位に要素数を超える値を指定すると#NUM!エラーになります。たとえばデータが10行しかないのに「=LARGE(B2:B11, 11)」と指定するとエラーが返ります。IFERROR関数でラップすることで、順位超過時に空白や指定メッセージを返すように対処できます。
SMALL関数 — 下位N番目の値を取り出す
=SMALL(配列, 順位)
SMALL関数はLARGE関数の反対で、小さい方からN番目の値を返します。
| 数式 | 説明 |
|---|---|
| =SMALL(B2:B13, 1) | 最小値を返す(MIN関数と同じ結果) |
| =SMALL(B2:B13, 2) | 2番目に小さい値を返す |
| =SMALL(B2:B13, 3) | 3番目に小さい値を返す |
LARGE関数とSMALL関数はそれぞれ「大きい方から数える」「小さい方から数える」と覚えると間違いにくくなります。MOS試験でも、この使い分けが問われます。
LARGE・SMALL関数の実務活用パターン
TOP3・BOTTOM3の値を並べて表示する
営業レポートで上位3件・下位3件のスコアを別セルに一覧表示する場面では、LARGE・SMALL関数を連続して使います。
| セル | 数式 | 説明 |
|---|---|---|
| E2 | =LARGE($B$2:$B$21, 1) | 1位の売上 |
| E3 | =LARGE($B$2:$B$21, 2) | 2位の売上 |
| E4 | =LARGE($B$2:$B$21, 3) | 3位の売上 |
| E6 | =SMALL($B$2:$B$21, 1) | 最下位の売上 |
| E7 | =SMALL($B$2:$B$21, 2) | 下から2番目の売上 |
| E8 | =SMALL($B$2:$B$21, 3) | 下から3番目の売上 |
順位を別セルで管理する方法もあります。F列に1・2・3と入力しておき、数式の第2引数をF2のようにセル参照にすると、順位の変更が容易になります。
=LARGE($B$2:$B$21, F2) ' F2セルの数値を順位として使用
TOP3に対応する名前をINDEX・MATCHで取り出す
上位3件の数値だけでなく、対応する担当者名や商品名を同時に表示したい場合は、LARGE関数とINDEX・MATCH関数を組み合わせます。
=INDEX($A$2:$A$21, MATCH(LARGE($B$2:$B$21, 1), $B$2:$B$21, 0))
この数式は「B列の中でLARGEが返した値の位置をMATCHで特定し、対応するA列の名前をINDEXで返す」という流れです。ただし、同じ値が複数ある場合はMATCHが最初の一致を返すため、重複データがある場合は注意が必要です。重複がある列でも正確に取り出したい場合はXLOOKUP関数を検討するとよいでしょう。
ROW関数と組み合わせて順位を自動変化させる
ROW関数と組み合わせると、1つの数式を下方向にコピーするだけで1位・2位・3位……と順位が自動で変わります。
=LARGE($B$2:$B$21, ROW()-1) ' 2行目に入力した場合、ROW()-1=1(1位)になる
数式を入力したセルの行番号から調整値を引いた数が順位になります。数式が2行目から始まる場合は「ROW()-1」、3行目から始まる場合は「ROW()-2」のように調整します。この方法は、上位10件や上位20件など件数を変えたい場合にも一括コピーで対応できます。
MAXIFS・MINIFS関数で条件付き最大・最小値を求める
MAXIFS関数・MINIFS関数は、SUMIFS・COUNTIFS関数と同じ書き方で条件を絞り込み、その範囲内の最大値・最小値を返します。Excel 2019・Microsoft 365で使用可能です(Excel 2016以前では使用できません)。
MAXIFS関数の構文
=MAXIFS(最大範囲, 条件範囲1, 条件1, [条件範囲2, 条件2], ...)
| 引数 | 説明 |
|---|---|
| 最大範囲 | 最大値を求める数値が入ったセル範囲 |
| 条件範囲1 | 条件1を評価するセル範囲 |
| 条件1 | 数値・文字列・論理式など(”>=100″のような比較演算子も使える) |
MINIFS関数の構文
=MINIFS(最小範囲, 条件範囲1, 条件1, [条件範囲2, 条件2], ...)
MAXIFS関数と同じ書き方で、条件を満たすセルの最小値を返します。引数の順序はSUMIFSと共通なので、SUMIFSを覚えていればすぐに使い始められます。
業務シナリオ別の活用例
A列に支店名・B列に売上金額が入力されているデータを例に、MAXIFS・MINIFSの使い方を確認します。
| シナリオ | 数式 |
|---|---|
| 「東京」支店の最高売上を求める | =MAXIFS(B2:B100, A2:A100, “東京”) |
| 「大阪」支店の最低売上(0を除く) | =MINIFS(B2:B100, A2:A100, “大阪”, B2:B100, “>0”) |
| D2セルと一致する支店の最高売上 | =MAXIFS(B2:B100, A2:A100, D2) |
| 売上が100万円以上の行で最小値 | =MINIFS(B2:B100, B2:B100, “>=1000000”) |
MAXIFS・MINIFS関数は条件に一致する行が存在しない場合に0を返します。「該当なし」のときに空白や特定の文字を返したい場合はIFERROR関数またはIF関数で補完します。
=IF(COUNTIFS(A2:A100, "東京")=0, "該当なし", MAXIFS(B2:B100, A2:A100, "東京"))
よくあるエラーと対処法
MAX・MIN・LARGE・SMALL関数を使う際によく遭遇するエラーと対処法を整理します。
| 症状・エラー | 原因 | 対処法 |
|---|---|---|
| 0が返る(期待した値ではない) | 文字列として入力された数値が無視された | VALUE関数で数値変換するか、[形式を選択して貼り付け]→[乗算]で変換 |
| #NUM!(LARGE・SMALL) | 順位がデータ件数を超えている | COUNT関数でデータ件数を確認し、順位の上限を超えないよう修正する |
| #VALUE! | 引数に文字列が含まれている | 範囲を数値のみに限定する。IFERROR関数でラップして対処する |
| 同順位が複数あるときの注意 | LARGEは重複値をそれぞれ別の順位として扱う | 重複を考慮する場合はRANK関数と組み合わせて確認する |
| 空白セルの扱い | MAX・MIN・LARGE・SMALLはすべて空白を無視する | 空白以外の最小値を求めたい場合はMINIFSで条件を追加する |
特に多いのが「文字列として見える数値」の問題です。外部システムからコピーしたデータは、見た目は数字でも内部が文字列扱いになっていることがあります。セルの左上に緑の三角マークが表示されている場合は、セルを選択して表示される[数値に変換]ボタンをクリックするか、空白セルに「1」を入力してコピーし、データ範囲に対して[形式を選択して貼り付け]→[乗算]を実行するとまとめて数値に変換できます。
MOS Excel試験でMAX・MIN・LARGE・SMALLはどう出題されるか
MOS Excel(一般・上級)では、統計関数として出題頻度が高い分野です。主な出題パターンと注意点を整理します。
| 出題パターン | ポイント |
|---|---|
| MAX関数で最大値を求める | 範囲指定の正確さ。絶対参照・相対参照の切り替え |
| MIN関数で最小値を求める | 0が含まれるデータでの最小値の挙動を理解しているか |
| LARGE関数で上位N番目の値を取り出す | 第2引数(順位)が正しく指定されているか |
| SMALL関数で下位N番目の値を取り出す | LAGEとSMALLの使い分け(上位か下位か)を間違えない |
| MAXIFS関数(上級で出題) | 引数の順序:最大範囲→条件範囲→条件の順に指定する |
MOS試験のMAX・MIN問題は比較的難易度が低いですが、LARGE・SMALLは順位の引数を間違えるケースが多いため注意が必要です。LARGE(範囲, 1)はMAX関数と、SMALL(範囲, 1)はMIN関数と同じ結果になることを確認して理解しておきましょう。MAXIFS・MINIFSはExcel上級(Expert)の範囲で出題されることが多く、SUMIFSの引数構造と対比しながら覚えるのが効果的です。
| 比較項目 | SUMIFS | MAXIFS | MINIFS |
|---|---|---|---|
| 第1引数 | 合計範囲 | 最大範囲 | 最小範囲 |
| 第2引数以降 | 条件範囲1, 条件1, … | 条件範囲1, 条件1, … | 条件範囲1, 条件1, … |
| 返す値 | 条件を満たす行の合計 | 条件を満たす行の最大値 | 条件を満たす行の最小値 |
まとめ:MAX・MIN・LARGE・SMALL関数で集計の幅を広げる
ExcelのMAX・MIN・LARGE・SMALL関数を活用することで、データの最大値・最小値だけでなく任意の順位の値を柔軟に取り出せます。要点をまとめます。
- MAX関数は指定範囲の最大値、MIN関数は最小値を返す。空白・文字列は無視される
- LARGE関数は上位N番目の値、SMALL関数は下位N番目の値を返す。第2引数の順位は1以上のデータ件数以内で指定する
- LARGE(範囲, 1)はMAX、SMALL(範囲, 1)はMINと同じ結果になる
- INDEX・MATCHと組み合わせると、最大値・上位N番目に対応するラベルも取り出せる
- ROW関数と組み合わせると、数式を下にコピーするだけで1位・2位・3位と連続した抽出ができる
- MAXIFS・MINIFSは条件を指定した最大・最小値を返す。Excel 2019以降・Microsoft 365で使用可能
- よくあるミスは「文字列として入力された数値の無視」「LARGE・SMALLの順位がデータ件数を超える#NUM!エラー」の2点
- MOS試験ではMAX・MIN・LARGE・SMALLが出題される。LARGE・SMALLは上位・下位の使い分けと引数の順序が重点ポイント
当サイトでは、Excel・Word・PowerPoint・AccessのOffice操作やMOS試験対策に関する記事を多数発信しています。ぜひ他の記事もご覧ください。
