スプレッドシートのLARGE関数の使い方|k番目に大きい値を取り出す方法
「売上トップ3を取り出したいのに、MAX関数だと1位しかわからない」。そんな経験はありませんか?
2番目、3番目に大きい値を手作業で探すのは面倒ですよね。データが増えるほどミスのリスクも上がります。
LARGE関数を使えば、k番目に大きい値を一発で取り出せます。この記事では基本の書き方から実務パターン、エラー対処法まで丁寧に解説します。
LARGE関数とは?k番目に大きい値を返す関数
LARGE関数は、データの中からk番目に大きい値を返す関数です。読み方は「ラージ」で、英語の「Large(大きい)」がそのまま名前になっています。
たとえばk=1なら最大値、k=2なら2番目に大きい値を返します。「上位N番目の値を取り出す」ときに使う関数です。
MAX関数は常に1番目(最大値)しか返せません。「2番目以降も取り出したい」ときにLARGE関数の出番です。
基本構文
=LARGE(データ, k)
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| データ | 必須 | 値を取り出す対象のセル範囲や配列 |
| k | 必須 | 何番目に大きい値を取り出すか(1=最大値) |
引数はたった2つです。シンプルなので、すぐに覚えられますよ。
基本的な使い方
実際にLARGE関数を使ってみましょう。
B2:B8に「85, 92, 78, 95, 88, 70, 100」の7個の数値が入っているとします。
=LARGE(B2:B8, 1) → 100(1番目に大きい値)
=LARGE(B2:B8, 2) → 95(2番目に大きい値)
=LARGE(B2:B8, 3) → 92(3番目に大きい値)
kの値を変えるだけで、好きな順位の値を取り出せます。k=1のときはMAX関数と同じ結果です。
NOTE
LARGE関数は数値だけを対象にします。文字列・空白セル・論理値は無視されます。
LARGE関数の実務活用パターン4選
基本を押さえたところで、実務での使いどころを紹介します。
売上トップ3を取り出す
月次売上の一覧から、上位3件の金額を取り出すケースです。
=LARGE(C2:C13, 1) → 1位の売上額
=LARGE(C2:C13, 2) → 2位の売上額
=LARGE(C2:C13, 3) → 3位の売上額
C列に12か月分の売上金額が入っていれば、トップ3が一発で表示されます。上司への報告資料で「上位3か月の実績」を見せたいときに便利です。
2番目に高い点数を取得する(外れ値の除外)
テスト結果で「最高点は満点で参考にならない」という場面があります。そんなときはk=2を指定して、2番目に高い点数を取り出しましょう。
=LARGE(D2:D50, 2)
最高点を除いた実質的なトップスコアが確認できます。データ分析で外れ値を除外したいときにも使えるテクニックです。
上位N件の合計を求める(LARGE + SUM)
「売上トップ3の合計」を求めたい場合は、SUM関数と組み合わせます。
=SUM(LARGE(C2:C13, {1,2,3}))
{1,2,3} は配列定数です。LARGE関数が1位・2位・3位の値をそれぞれ返し、SUM関数で合計します。
上位5件にしたい場合は {1,2,3,4,5} に変えるだけです。手軽に上位N件の合計が出せますよ。
2番目に大きい値の担当者名を取得する
「2番目に高い売上の担当者は誰?」を調べるには、INDEX関数とMATCH関数を組み合わせます。
=INDEX(A2:A10, MATCH(LARGE(B2:B10, 2), B2:B10, 0))
処理の流れはこうです。
- LARGE(B2:B10, 2) → 2番目に大きい売上額を取得
- MATCH(…, B2:B10, 0) → その値のある行番号を検索
- INDEX(A2:A10, …) → 対応する担当者名を取得
ちょっと長い数式に見えますが、やっていることはシンプルです。LARGE関数で値を特定し、MATCHで位置を探し、INDEXで名前を取る3ステップです。
よくあるエラーと対処法
LARGE関数で発生するエラーを2つ紹介します。
#NUM! エラー(kがデータ数を超えている)
これが最も多いエラーです。データが7個しかないのにk=10を指定すると、#NUM!エラーになります。
=LARGE(B2:B8, 10) → #NUM!
B2:B8は7セルなので、kは1から7までしか指定できません。k=0やマイナスの値でもエラーになります。
対処法:
- kの値がデータ数を超えていないか確認する
- データ数が変動する場合は
COUNT(B2:B8)で件数を把握する - kの上限チェックには次の数式が使えます
=IF(E1<=COUNT(B2:B8), LARGE(B2:B8, E1), "データ不足")
#VALUE! エラー(kに数値以外を指定)
kに文字列やセル参照の文字列型を指定するとエラーです。
=LARGE(B2:B8, "二") → #VALUE!
kには必ず数値を指定してください。セル参照を使う場合は、参照先が数値型か確認しましょう。
MAX関数との使い分け
LARGE関数とMAX関数の関係はシンプルです。
| 場面 | 使う関数 | 書き方 |
|---|---|---|
| 1番目に大きい値(最大値) | MAX | =MAX(B2:B8) |
| 2番目以降に大きい値 | LARGE | =LARGE(B2:B8, 2) |
1番目だけ必要ならMAX関数で十分です。2番目以降が必要になったらLARGE関数に切り替えてください。
ちなみに =LARGE(B2:B8, 1) と =MAX(B2:B8) は同じ結果を返します。ただし可読性を考えると、最大値にはMAX関数を使うほうが意図が伝わりやすいです。
SMALLとの対比・RANK関数との違い
LARGE関数と混同しやすい関数が2つあります。
SMALL関数(k番目に小さい値)
SMALL関数はLARGE関数の逆で、k番目に小さい値を返します。構文は完全に同じ構造です。
=LARGE(B2:B8, 1) → 100(最大値)
=SMALL(B2:B8, 1) → 70(最小値)
| 関数 | 返す値 | k=1のとき |
|---|---|---|
| LARGE | k番目に大きい値 | MAX関数と同じ |
| SMALL | k番目に小さい値 | MIN関数と同じ |
「上位の値ならLARGE、下位の値ならSMALL」と覚えてください。
RANK関数(順位を求める関数)
RANK関数はLARGE関数と逆方向の操作をします。
- LARGE関数: 順位を指定 → 値を返す(「2番目に大きい値は?」)
- RANK関数: 値を指定 → 順位を返す(「95点は何番目?」)
=LARGE(B2:B8, 2) → 95(2番目に大きい値)
=RANK(95, B2:B8) → 2(95は2番目)
「値を取り出したい」ならLARGE関数を使います。「順位を知りたい」ならRANK関数を使います。目的に応じて使い分けてください。
まとめ
LARGE関数は「k番目に大きい値を取り出す」関数です。MAX関数では対応できない「2番目以降の値」を簡単に取得できます。
この記事のポイント
- 構文は
=LARGE(データ, k)のたった2引数 - k=1なら最大値(MAXと同じ)、k=2以降で真価を発揮
- SUM関数と組み合わせれば上位N件の合計も出せる
- #NUM!エラーはkがデータ数を超えているのが原因
- SMALLは逆方向(k番目に小さい値)、RANKは逆操作(値→順位)
次のステップ:関連する集計関数
LARGE関数の使い方がわかったら、以下の関数もあわせて覚えてみてください。データの分析力がぐっと上がりますよ。

