スプレッドシートのMAX関数の使い方|最大値を一発取得
「一番大きい数字を取り出したいだけなのに、なぜか結果が0になる」。スプレッドシートのMAX関数でそんな経験はありませんか?
原因の多くは、セルの値が文字列として認識されているケースです。数字に見えても文字列扱いだとMAX関数は無視してしまいます。
この記事では、GoogleスプレッドシートのMAX関数を基本から実務活用まで解説します。エラーの対処法やMIN・MAXIFSとの違いも整理しました。読み終わるころには、最大値の取得で迷うことがなくなりますよ。
MAX関数とは?最大値を返す仕組みを理解しよう
MAX関数は、指定した範囲のなかにある最大の数値を返す関数です。読み方は「マックス」で、英語の「Maximum(最大)」の略がそのまま名前になっています。
売上データの最高額、テスト結果の最高点など、「一番大きい値を取り出したい」ときに使う関数です。
基本構文と引数の見方
MAX関数の構文はとてもシンプルです。
=MAX(値1, [値2, ...])
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 値1 | 必須 | 最大値を求める対象のセル範囲や値 |
| 値2, … | 任意 | 追加で比較したい範囲や値(最大30個) |
引数にはセル範囲を指定するのが一般的です。たとえば =MAX(B2:B100) のように書きます。複数の範囲を比較したいときは、カンマで区切って =MAX(A1:A10, C1:C10) と書けばOKです。
MAX関数が無視する値
MAX関数は数値だけを比較対象にします。以下の値は無視されます。
- 文字列(「山田太郎」など)
- 空白セル
- 論理値(TRUE / FALSE)
- エラー値(#N/A など)
すべてのセルが空白や文字列だった場合、結果は0になります。この挙動がトラブルの原因になりやすいので、覚えておいてください。
MAX関数の基本的な使い方
実際にMAX関数を使ってみましょう。
B2:B8に「85, 92, 78, 95, 88, 70, 100」が入っているとします。
=MAX(B2:B8)
結果は 100 です。範囲内の数値をすべて比較して、最も大きい値を返しています。
直接数値を指定する書き方もできます。
=MAX(85, 92, 78, 95)
結果は 95 です。ただし実務ではセル範囲を指定するほうが圧倒的に多いです。
MAX関数の実務活用パターン3選
基本を押さえたところで、実務での使いどころを紹介します。
売上データから最高額を取り出す
月次売上の一覧表から、最高売上額を自動表示するケースです。
=MAX(C2:C13)
C列に月ごとの売上金額が入っていれば、年間の最高売上月の金額がすぐにわかります。予算達成率の分析や上司への報告で重宝しますよ。
「最高売上の月名も知りたい」という場合は、INDEX+MATCH関数と組み合わせます。
=INDEX(B2:B13, MATCH(MAX(C2:C13), C2:C13, 0))
MAX関数で最大値を特定し、MATCHで位置を調べ、INDEXで月名を取得する流れです。
テストの最高点を自動表示する
成績管理表で「クラスの最高点」を表示したいときにもMAX関数が使えます。
=MAX(D2:D50)
D列に各生徒の点数が入っていれば、最高点が一発で表示されます。平均点はAVERAGE関数で求められるので、セットで使うと便利です。
日付データから最新日を取得する
スプレッドシートでは日付を内部的に数値で管理しています。そのため、MAX関数で最新の日付を取得できます。
=MAX(A2:A100)
A列に入力日が入っている場合、最も新しい日付が返ります。更新履歴の「最終更新日」を自動表示したいときに使えるテクニックです。
NOTE
結果が数値で表示される場合は、セルの表示形式を「日付」に変更してください。
よくあるエラーと対処法
MAX関数はシンプルですが、いくつか注意点があります。
結果が0になる(文字列混在)
これが一番多いトラブルです。MAX関数の結果が0になる場合、対象範囲のセルが文字列型になっている可能性があります。
確認方法は簡単です。セルの配置を見てください。数値なら右揃え、文字列なら左揃えで表示されます。また、左上に緑色の三角マークが出ていれば文字列型です。
対処法:
- 対象セルを選択する
- 「表示形式」メニューから「数値」を選ぶ
- それでも直らない場合は
=VALUE(A1)で数値に変換する
CSVファイルの取り込み時にこの問題が起きやすいです。取り込み後にMAX関数が0を返したら、まず文字列型を疑ってみてください。
#VALUE!エラーが出る
引数に直接文字列を指定するとエラーになります。
=MAX("abc", 100, 200)
セル範囲内の文字列は無視されますが、直接入力した文字列はエラーの原因です。引数には数値かセル範囲だけを指定しましょう。
MAXとMINの違い|最大値と最小値の使い分け
MIN関数は、MAX関数の正反対で最小値を返します。構文は完全に同じです。
=MIN(値1, [値2, ...])
| 関数 | 返す値 | 使いどころ |
|---|---|---|
| MAX | 最大値 | 最高売上・最高点・最新日付 |
| MIN | 最小値 | 最低売上・最低点・最古日付 |
B2:B8に「85, 92, 78, 95, 88, 70, 100」が入っている場合:
=MAX(B2:B8) → 100
=MIN(B2:B8) → 70
MAX関数が使える場面ではMIN関数もセットで使えます。「最高と最低の差(レンジ)」を知りたいときは、次のように書きます。
=MAX(B2:B8) - MIN(B2:B8)
結果は 30 です。データのばらつきを把握したいときに便利ですよ。
条件付きで最大値を求めるには?MAXIFSへの発展
「全体の最大値」ではなく「特定の条件に合うデータの最大値」を求めたいことがあります。たとえば「東京支店だけの最高売上」のようなケースです。
そんなときはMAXIFS関数を使います。
=MAXIFS(最大値の範囲, 条件範囲1, 条件1, ...)
例として、B列に支店名、C列に売上額が入っているデータで、東京支店の最高売上を求める場合です。
=MAXIFS(C2:C100, B2:B100, "東京")
MAXIFS関数はMAX関数の「条件付きバージョン」と覚えてください。SUMIF関数がSUM関数の条件付きバージョンであるのと同じ関係です。
| 関数 | できること |
|---|---|
| MAX | 範囲全体の最大値 |
| MAXIFS | 条件を満たすデータの最大値 |
| MIN | 範囲全体の最小値 |
| MINIFS | 条件を満たすデータの最小値 |
この4関数の関係を押さえておくと、最大値・最小値の取得で困ることはなくなります。
まとめ
MAX関数は「範囲内の最大値を返す」シンプルな関数です。文字列・空白・論理値は無視し、数値だけを比較対象にする点を覚えておけば、トラブルなく使えます。
用途別の関数選びフロー
最大値・最小値に関する関数で迷ったら、次のように判断してください。
- 範囲全体の最大値を知りたい →
MAX - 範囲全体の最小値を知りたい →
MIN - 条件付きで最大値を知りたい →
MAXIFS - 条件付きで最小値を知りたい →
MINIFS
次のステップ:関連する集計関数
MAX関数の使い方がわかったら、他の基本集計関数もあわせて覚えてみてください。データ分析の幅がぐっと広がります。
MAX関数で最大値を把握し、MIN関数で最小値を確認し、AVERAGE関数で平均を出す。この3つをセットで使えると、データの全体像がつかめるようになりますよ。
