概要
MAXは「指定した範囲や数値の中で最も大きい値(最大値)」を返すExcelの基本関数です。空白や文字列は無視され、0は数値として含まれます。エラー値が混ざると結果がエラーになるため、必要に応じて前処理(IFERRORなど)を使います。条件付きで最大値を取りたい場合はMAXIFS、フィルタ後に見えている行だけならSUBTOTALを使います。
基本の使い方
- 書式:
=MAX(数値1, [数値2], …)
範囲、離れたセル、直接数値を混ぜて指定できます。
- 単一範囲の最大値:
=MAX(A1:A10)
A1〜A10の中で最も大きい値を返します(空白や文字列は除外、0は含まれる)。
- 複数範囲・離れたセルの最大値:
=MAX(A1:A10, C1:C5, F3)
連続・非連続をまとめて比較できます。
- 日付・時刻の最大値:
=MAX(D2:D100)
Excelの日付や時刻は数値なので「最新日付」「最も遅い時刻」を返せます。
具体例
例1: テスト点数の最大値
A2:A11に点数が入っているとします。
- 目的: クラスの最高点をA12に表示
=MAX(A2:A11)
- ポイント:
- 空欄: 空白セルは無視されるためそのままでOK。
- 0: 0点は数値として最大値の候補に含まれます。
例2: 売上の最大値(横方向)
B2:E2に「1月〜4月の売上」が並ぶとします。
- 目的: その行の最大月をF2に表示
=MAX(B2:E2)
- ポイント:
- コピー: F2の式を下へコピーして各行の最大値を求められます。
例3: 離れたセルの最大値
B2, B5, B9の中で最大を取りたい。
- 目的: 離れたセルを指定
=MAX(B2, B5, B9)
- ポイント:
- カンマ: 個別セルはカンマ区切りで並べます。
例4: テーブル(構造化参照)の最大値
テーブル「売上」に列「金額」がある場合。
- 目的: 金額列の最大値
=MAX(売上[金額])
- ポイント:
- 自動拡張: 行追加に追従します。
よくあるつまずきと対策
- 文字列が混ざって最大値が期待通りにならない:
見た目が数値でも文字列扱いだと比較対象から除外されます。- 対策:
- データの統一: 全角/半角、カンマ、先頭アポストロフィを除去。
- 数値化: 必要ならVALUEで前処理し別列を参照。
- 対策:
- エラー値が含まれてMAXがエラーになる:
#DIV/0! などが範囲にあるとMAXはエラーになります。- 対策: IFERRORでエラーを空白に置換してから最大値を計算。
=MAX(IFERROR(A2:A100, ""))
動作が不安定なら、まず別列でIFERRORを使ってクレンジングしてからMAXを参照すると確実です。
- フィルタ後、非表示行も含まれてしまう:
MAXは非表示行も評価します。- 対策: 表示中だけの最大値ならSUBTOTAL(最大値は104)。
=SUBTOTAL(104, A2:A100)
- 条件付きで最大値を取りたい:
「地域が東京の中で最大」など条件が必要な場合。- 対策: MAXIFSを使う(Excel 2019以降)。
=MAXIFS(B2:B100, A2:A100, "東京")
複数条件も追加可能です。
- TRUE/FALSEや文字列も含めて評価したい:
その場合はMAXAを検討(TRUE=1、FALSE=0、文字列は0として扱われます)。
=MAXA(A2:A100)
数値混在では誤解を招きやすいので用途を限定しましょう。
応用テンプレート
- 複数シートをまたぐ最大値:
=MAX(Jan!B2:B100, Feb!B2:B100, Mar!B2:B100)
- 条件が複数の最大値(MAXIFS): 月が「12月」、地域が「東京」の金額最大
=MAXIFS(売上[金額], 売上[月], "12月", 売上[地域], "東京")
- トップN(最大上位N件)を取得(LARGE): 金額列の上位3件
=LARGE(売上[金額], 1) // 最大
=LARGE(売上[金額], 2) // 2番目
=LARGE(売上[金額], 3) // 3番目
- 最大値の行を特定(MATCHとINDEX): 金額の最大値がある行の商品名
=INDEX(売上[商品], MATCH(MAX(売上[金額]), 売上[金額], 0))
- 時刻データの最も遅い時間:
=MAX(TimeLog[開始時刻])
練習問題
- 問題1: A2:A12にテスト点があり、最高点をA13に表示してください。
- 解答例:
=MAX(A2:A12)
- 問題2: B2:E10に各月の売上があり、各行の最大値をF列に表示してください(F2に式を入れてF10までコピー)。
- 解答例:
=MAX(B2:E2)
- 問題3: フィルタで表示中の行だけの最大値をG2に表示してください(対象: A2:A200)。
- 解答例:
=SUBTOTAL(104, A2:A200)
- 問題4: テーブル「売上」で、地域が「東京」の金額最大をH2に表示してください。
- 解答例:
=MAXIFS(売上[金額], 売上[地域], "東京")
