「N番目に大きい値を取り出したい」。Excelで売上データやテスト成績を扱っていると、こんな場面は意外と多いですよね。最大値だけならMAX関数で一発ですが、「上から3番目」となるとお手上げ……。
そこで活躍するのが LARGE関数 です。順位を指定するだけで、大きい方からN番目の値をサッと取得できます。この記事では、基本の書き方から実務で役立つ応用パターンまで、しっかり解説していきます。
ExcelのLARGE関数とは?読み方と基本の仕組み
LARGE関数は 「ラージ関数」 と読みます。英語の「large(大きい)」がそのまま名前の由来です。
この関数は、指定した範囲の中から N番目に大きい値 を返します。たとえば「2番目に大きい値」や「5番目に大きい値」を、順位を指定するだけで取得できます。
動作のイメージはシンプルです。データを降順(大きい順)に並べて、指定した順番の値を返す――ただそれだけです。実際にセルを並べ替える必要はありません。
テキストや空白セルは自動的に無視され、数値だけが対象になります。すべてのExcelバージョンと Microsoft 365 に対応しています。
LARGE関数の書き方(構文と引数)
基本構文
=LARGE(配列, 順位)
引数はたった2つ。どちらも必須です。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 配列 | 必須 | 数値データが入ったセル範囲や配列 |
| 順位 | 必須 | 大きい方から何番目かを指定する数値 |
「配列」にはセル範囲(例: B2:B8)を指定します。「順位」には1以上の整数を入れてください。1を指定すれば最大値、2なら2番目に大きい値が返ります。
LARGE関数の基本的な使い方
ここからは実際の数式を見ていきましょう。サンプルデータとして、B2:B8に次の売上データが入っているとします。
| セル | 値 |
|---|---|
| B2 | 410 |
| B3 | 280 |
| B4 | 95 |
| B5 | 320 |
| B6 | 180 |
| B7 | 410 |
| B8 | 150 |
降順に並べると 410, 410, 320, 280, 180, 150, 95 です。この順番を頭に入れておくと、結果が確認しやすくなります。
最も大きい値を取得する
=LARGE(B2:B8, 1)
結果は 410 です。順位に1を指定すると最大値が返ります。この結果は =MAX(B2:B8) と同じです。
3番目に大きい値を取得する
=LARGE(B2:B8, 3)
結果は 320 です。降順で確認すると、410, 410, 320, 280……。たしかに3番目ですね。
大きい順にトップ5を一覧表示する
D2〜D6のセルに、順位1〜5をそれぞれ入力する方法です。
D2: =LARGE(B2:B8, 1) → 410
D3: =LARGE(B2:B8, 2) → 410
D4: =LARGE(B2:B8, 3) → 320
D5: =LARGE(B2:B8, 4) → 280
D6: =LARGE(B2:B8, 5) → 180
順位の部分をセル参照にすれば、数式のコピーだけで一覧が作れます。たとえばC列に1〜5の連番を入れておき、=LARGE(B2:B8, C2) としてオートフィルすると効率的です。
同じ値が複数あるときの動作
サンプルデータには410が2つあります。LARGE関数では、同じ値でもそれぞれ別の順位としてカウントされます。
- =LARGE(B2:B8, 1) → 410
- =LARGE(B2:B8, 2) → 410
- =LARGE(B2:B8, 3) → 320
RANK関数では同じ値に同順位が割り当てられますが、LARGEは重複値も1つずつ数えます。この違いは覚えておくと便利です。
LARGE関数の実務活用パターン
基本がわかったところで、実務でそのまま使えるパターンを5つ紹介します。
パターン1: 売上トップ3を抽出
売上データの中から上位3件だけ取り出したい場面です。
A列に商品名、B列に売上金額が入っているとします。
=LARGE($B$2:$B$10, 1) → 上位1位の金額
=LARGE($B$2:$B$10, 2) → 上位2位の金額
=LARGE($B$2:$B$10, 3) → 上位3位の金額
絶対参照($記号)を使えば、数式をコピーしても範囲がずれません。月末のレポートやプレゼン資料で上位の数字をすぐに確認できるパターンです。
パターン2: INDEX+MATCH+LARGEで上位者の名前を取得
LARGE関数で値を取り出せても、「その値に対応する名前も知りたい」ことがありますよね。そんなときはINDEX関数とMATCH関数を組み合わせます。
A列に担当者名、B列に売上金額が入っている場合の数式です。
=INDEX($A$2:$A$10, MATCH(LARGE($B$2:$B$10, 1), $B$2:$B$10, 0))
この数式の流れを分解してみましょう。
- LARGE($B$2:$B$10, 1) で最も大きい売上金額を取得
- MATCH(…, $B$2:$B$10, 0) でその金額の行位置を検索
- INDEX($A$2:$A$10, …) でその行の担当者名を返す
ちょっとむずかしく見えますが、やっていることはシンプルです。「値を見つけて、その行の名前を返す」という2ステップの処理です。
パターン3: IFERRORで「データなし」を表示
トップ5の一覧を作ったとき、データが5件に満たないとエラーになります。これを防ぐのがIFERROR関数です。
=IFERROR(LARGE(B2:B8, E2), "データなし")
LARGE関数の順位がデータ件数を超えると #NUM! エラーが出ます。IFERRORで囲めば、エラーの代わりに任意のメッセージを表示できます。データ件数が変動するリストでは、この書き方を習慣にしておくと安心です。
パターン4: 条件付きでN番目に大きい値を取得(IF+LARGE配列数式)
「営業部だけの中で最も大きい値」のように、条件付きで抽出したい場面もあります。A列に部署名、B列に金額が入っている場合の数式です。
=LARGE(IF($A$2:$A$10="営業部", $B$2:$B$10), 1)
Excel 2019以前のバージョンでは、Ctrl + Shift + Enter で確定する必要があります。Microsoft 365 や Excel 2021 ではそのままEnterで動作します。
IF関数が条件に合う値だけの配列を作り、LARGEがその中からN番目に大きい値を返す仕組みです。MAXIFS関数は最大値しか取れませんが、この方法なら2番目・3番目も取得できます。
パターン5: ROW関数と組み合わせた動的な順位指定
「大きい順に並べたリストを、数式のコピーだけで作りたい」。そんなときに活躍するのがROW関数との組み合わせです。
D2セルに次の数式を入れ、下方向にオートフィルします。
=IFERROR(LARGE($B$2:$B$8, ROW()-1), "")
ROW関数はセルの行番号を返します。D2なら ROW()=2 なので ROW()-1=1、D3なら ROW()-1=2……と自動的に順位が増えていきます。IFERRORと組み合わせれば、データ件数を超えた行は空白になります。
よくあるエラーと対処法
LARGE関数で遭遇しやすいエラーは主に2種類です。
#NUM! エラー
このエラーが出る原因は2つあります。
- 順位がデータ件数を超えている — データが7件なのに =LARGE(B2:B8, 10) と指定した場合です。データの件数を COUNTA や COUNT で確認してみてください。
- 範囲に数値が1つもない — テキストだけのセル範囲を指定した場合に発生します。
#VALUE! エラー
- 順位に数値以外を指定した — 「三」のようなテキストや、数値に見えて実はテキストのセルが原因です。VALUE関数で数値に変換すると解消することがあります。
- 順位に0以下や小数を指定した — 順位は1以上の整数である必要があります。
エラーの種類と対処の全体像は、エラー値の種類と対処法一覧も参考にしてみてください。
MAX関数との違い――LARGEの方が便利な場面
「最大値を取るだけならMAX関数でいいのでは?」と思いますよね。たしかに、=LARGE(範囲, 1) と =MAX(範囲) の結果はまったく同じです。
ではLARGEを使うメリットはどこにあるのでしょうか。
- 2番目以降の値が取れる — MAX関数は最大値しか返せません。LARGE関数なら順位を変えるだけで何番目でも取得できます。
- 大きい順の一覧を作れる — ROW関数と組み合わせれば、降順のランキングが数式だけで完成します。
- 条件付きのN番目に対応 — IF関数と組み合わせれば、条件を満たすデータの中からN番目が取れます。
逆に、単純に最大値だけほしい場合はMAX関数のほうがシンプルで読みやすいです。場面に応じて使い分けてみてください。
SMALL関数との違い・使い分け
LARGE関数と対になる関数がSMALL関数です。構文はまったく同じで、方向だけが逆になります。
比較表
| 項目 | LARGE関数 | SMALL関数 |
|---|---|---|
| 方向 | 大きい方からN番目 | 小さい方からN番目 |
| 構文 | =LARGE(配列, 順位) | =SMALL(配列, 順位) |
| 順位1のとき | 最大値(=MAX) | 最小値(=MIN) |
| 用途例 | 売上トップ抽出 | コスト下位抽出 |
どちらを使うべき?
使い分けはとてもシンプルです。
- 高い方から探したい → LARGE関数(最高売上、最長記録など)
- 低い方から探したい → SMALL関数(最低コスト、最短時間など)
どちらも引数の数やエラーの挙動は同じです。覚えるのは「方向が逆」という一点だけで大丈夫です。
順位系の関連関数
順位や最大・最小にかかわる関数は他にもあります。目的に応じて選んでみてください。
まとめ
LARGE関数は、データの中から N番目に大きい値 を取り出す関数です。
この記事のポイントをおさらいしましょう。
- 構文は =LARGE(配列, 順位) で、引数は2つだけ
- 順位を変えるだけで、2番目・3番目と自由に取得できる
- INDEX+MATCHと組み合わせれば、対応する名前も取得可能
- IFERRORで囲めば、エラー時も安全に処理できる
- IF関数との配列数式で、条件付きの抽出にも対応
- 最大値だけならMAX関数、小さい方からならSMALL関数と使い分ける
LARGE関数を使いこなせば、データの並べ替えなしでランキングが作れます。ぜひ日々の業務で試してみてください。
