ExcelのLARGE関数|N番目に大きい値を取り出す使い方

スポンサーリンク

「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に次の売上データが入っているとします。

セル
B2410
B3280
B495
B5320
B6180
B7410
B8150

降順に並べると 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))

この数式の流れを分解してみましょう。

  1. LARGE($B$2:$B$10, 1) で最も大きい売上金額を取得
  2. MATCH(…, $B$2:$B$10, 0) でその金額の行位置を検索
  3. 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関数を使いこなせば、データの並べ替えなしでランキングが作れます。ぜひ日々の業務で試してみてください。

タイトルとURLをコピーしました