範囲の中から「いちばん大きい数値」「いちばん小さい数値」を取り出したいとき使うのが、MAX関数とMIN関数です。草野球の成績管理表でシーズン最多安打試合・最少失点試合を探す場面を例に、初心者向けに丁寧に説明します。
MAX関数・MIN関数とは
指定した範囲の中から、MAXは「いちばん大きい数値」を、MINは「いちばん小さい数値」を1つだけ返す関数です。成績管理表では「シーズン最多安打の試合は何本だったか」「最少失点の試合はどれだけ抑えたか」といった、記録のトップを探す場面で登場します。
基本の書式はこうです。
=MAX(範囲) =MIN(範囲)
SUMと同じように、範囲には「D2:D30」のようなセル範囲を指定します。
成績管理表での実例:最多安打試合・最少失点試合を探す
大阪グーニーズの個人成績シートでは、各試合の安打数を1行ずつ記録しています。D列に各試合の安打数、投手成績シートのE列に各試合の失点数が入っているとします。
| 試合日 | 対戦相手 | 安打 | 失点 |
|---|---|---|---|
| 4/6 | ○○ファイターズ | 2 | 5 |
| 4/13 | △△ベアーズ | 5 | 1 |
| 4/20 | □□イーグルス | 3 | 0 |
| … | … | … | … |
このD列(安打)の中からシーズン最多安打の試合を、E列(失点)の中から最少失点の試合を探したいとき、式はこうなります。
=MAX(D2:D30) (最多安打) =MIN(E2:E30) (最少失点)
これで「D2セルからD30セルまでの中でいちばん大きい数値」「E2セルからE30セルまでの中でいちばん小さい数値」がそれぞれ求まります。試合が増えるたびに範囲内へ行を追加していけば、記録が更新されるたびに値も自動で追随してくれます。
最多安打・最少失点を表示したいセル(例:個人成績シートの集計欄)をクリックして選択します。
マウスで対象の列をドラッグすると、自動で「D2:D30」のような範囲が入力されます。
式を確定すると、すぐに最大値または最小値がセルに表示されます。
しくみを理解する:MAX・MINは何をしているのか
MAX関数もMIN関数も、やっていることはとてもシンプルです。範囲内のセルを先頭から1つずつ見ていき、「今までで見た中でいちばん大きい(小さい)数値」を仮に記憶しておき、次のセルの値と比較して、より大きければ(小さければ)記憶している値を更新する、という作業を最後のセルまで繰り返しているだけです。
- 空白セルは無視される(比較の対象に加わらない)
- 文字列が入っているセルも無視される(数値ではないため比較できない)
- 範囲内の数値が1つも無い場合、MAXは0を、MINも0を返す(記憶している値が更新されないまま終わるため)
よくあるミス:期待した値と違う原因
出場していない試合の安打欄に「0」を手入力してしまうと、MIN関数はそれを「安打0の試合」として拾ってしまいます。未出場の試合は数値の0ではなく空白にしておくのが安全です。
安打数の列の途中に「シーズン合計」など集計用のセルを挟んでしまうと、MAXがその合計値まで最大値として拾ってしまうことがあります。集計欄は範囲の外側にまとめて配置するようにしましょう。
- MAXは「範囲内でいちばん大きい数値」、MINは「いちばん小さい数値」を返す関数
- 内部では1セルずつ比較しながら記憶を更新するという単純な処理を繰り返している
- 未出場を0で入力していないか、集計セルが範囲に紛れていないかが「値がおかしい」の2大原因
次回予告
次回のテーマは「ROUND / ROUNDDOWN / ROUNDUP関数」です。四捨五入・切り捨て・切り上げの違いと桁指定の考え方を、打率を3桁表示に揃える例を使って解説していきます。
▶︎ 次回:ROUND関数の使い方としくみ


コメント