- 作成日 : 2025年8月25日
LARGE関数の使い方:エクセルで上位n番目の値を抽出する方法
LARGE関数は、データセットから指定した順位の大きい値を抽出するエクセルの統計関数です。最大値だけでなく、2番目、3番目に大きい値など、任意の順位の値を簡単に取得できます。売上ランキングの作成、成績上位者の抽出、品質管理での異常値検出、在庫管理での重点商品の特定など、様々なビジネスシーンで活用されています。本記事では、LARGE関数の基本的な使い方から実務での応用例、SMALL関数との使い分け、動的なランキング作成方法、配列数式での活用、そしてよくあるエラーとその解決方法まで、初心者にも分かりやすく解説します。
LARGE関数の使い方
LARGE関数とは
LARGE関数は、指定したデータ範囲の中から、大きい方から数えて指定した順位の値を返す関数です。単純に最大値を求めるMAX関数とは異なり、2番目に大きい値、3番目に大きい値といった、任意の順位の値を柔軟に取得できる点が特徴です。この機能により、上位データの分析やランキング作成などに活用しやすい関数です。
たとえば、営業成績の上位5名を表彰したい場合や、売上高上位10商品を特定したい場合など、最大値だけでは足りないケースにも対応できます。
基本構文
LARGE関数の構文は次のとおりです。
=LARGE(配列, k)
各引数について詳しく説明します。
- 配列:順位を求めたい数値データの範囲を指定します。セル範囲、配列定数、名前付き範囲などが使用できます。文字列や論理値は無視されます。
- k:取得したい順位を指定します。1を指定すると最大値、2を指定すると2番目に大きい値が返されます。正の整数を指定する必要があります。
LARGE関数の動作原理
LARGE関数は以下の手順で値を決定します。
- 指定された範囲から数値データのみを抽出
- 数値を降順(大きい順)に並べ替え
- 指定された順位(k)の値を返す
- 同じ値が複数ある場合も、それぞれ別の順位として扱う
この動作を理解することで、結果の解釈が正確になります。
基本的な使用例
実際にLARGE関数を使用してみましょう。
データ:85, 92, 78, 95, 88, 91, 82, 90
=LARGE(A1:A8, 1) // 結果:95(最大値)
=LARGE(A1:A8, 2) // 結果:92(2番目に大きい値)
=LARGE(A1:A8, 3) // 結果:91(3番目に大きい値)
複数の範囲をまとめて上位を求める場合:
(Microsoft 365 以降)
=LARGE(VSTACK(A1:A10, C1:C10), 1) // 2つの範囲を縦結合して最大値
(従来版Excel:配列数式として入力)
=LARGE(CHOOSE({1,2}, A1:A10, C1:C10), 1) // Ctrl+Shift+Enterで確定
※最大値だけでよい場合は =MAX(A1:A10, C1:C10) が簡単です。
セル参照で順位を指定する場合:
B1セルに順位(例:5)が入力されている場合
=LARGE(A:A, B1) // 5番目に大きい値を返す
MAX関数との違い
MAX関数は最大値のみを返しますが、LARGE関数はより柔軟です。
=MAX(A1:A10) // 最大値のみ
=LARGE(A1:A10, 1) // 同じ結果だが、順位を変更可能
上位3つの値の合計を求める場合:
=LARGE(A1:A10, 1) + LARGE(A1:A10, 2) + LARGE(A1:A10, 3)
LARGE関数の利用シーン
売上ランキングの作成
営業データから上位の成績を抽出する最も一般的な用途です。
月間売上高トップ10の抽出:
1位:=LARGE(売上データ!B:B, 1)
2位:=LARGE(売上データ!B:B, 2)
…
10位:=LARGE(売上データ!B:B, 10)
売上高と担当者名を対応させる:
=INDEX(担当者名, MATCH(LARGE(売上高, 1), 売上高, 0))
上位20%の売上高の境界値:
=LARGE(売上データ, ROUNDUP(COUNT(売上データ)*0.2, 0))
成績評価と表彰者の選定
試験の成績や評価データから上位者を特定します。
試験成績上位5名の点数:
=LARGE(点数データ, ROW(1:5)) // 配列数式として入力
上位10%に入るための最低点:
=LARGE(成績データ, ROUNDUP(COUNT(成績データ)*0.1, 0))
学年別の最高点:
=LARGE(IF(学年=1, 点数データ), 1) // 1年生の最高点
品質管理での異常値検出
製造データから異常に大きい値を検出します。
測定値の上位5つを異常値候補として抽出:
異常値1:=LARGE(測定値データ, 1)
異常値2:=LARGE(測定値データ, 2)
…
異常値5:=LARGE(測定値データ, 5)
上位1%を異常値として判定:
=IF(A1>=LARGE(全データ, ROUNDUP(COUNT(全データ)*0.01, 0)), “異常値”, “正常”)
在庫管理での重点商品特定
売れ筋商品や在庫回転率の高い商品を特定します。
売上個数トップ20商品の抽出:
=LARGE(売上個数データ, SEQUENCE(20)) // Excel 365の場合
在庫金額上位商品の特定:
=LARGE(在庫数量*単価, ROW($1:$10))
給与・報酬分析
給与データの分析で高額所得者の把握に使用します。
部門別最高給与:
=LARGE(IF(部門=”営業”, 給与データ), 1)
給与上位5%のボーダーライン:
=LARGE(給与データ, ROUNDUP(COUNT(給与データ)*0.05, 0))
LARGE関数の応用・他関数との組み合わせ
SMALL関数との併用
上位と下位の両方を分析する場合に組み合わせます。
最大値:=LARGE(A:A, 1)
最小値:=SMALL(A:A, 1)
範囲:=LARGE(A:A, 1) – SMALL(A:A, 1)
上位下位を除いた平均(トリム平均):
=AVERAGE(IF((A:A<LARGE(A:A,3))*(A:A>SMALL(A:A,3)), A:A))
INDEX/MATCH関数との組み合わせ
順位に対応する他の情報を取得します。
売上1位の商品名を取得:
=INDEX(商品名, MATCH(LARGE(売上高, 1), 売上高, 0))
上位5商品の一覧作成:
順位1:=INDEX(商品名, MATCH(LARGE(売上高, ROW(A1)), 売上高, 0)) // 下方向にコピー
(Microsoft 365 の場合は 1式で)=TAKE(SORTBY(商品名, 売上高, -1), 5)
ROW関数での動的順位指定
連続した順位を自動生成します。
=LARGE($A$1:$A$100, ROW(A1)) // 下にコピーすると順位が増加
上位n件の動的な抽出:
(下方向にコピーする場合)=IF(ROW(A1)<=表示件数, LARGE(データ範囲, ROW(A1)), “”)
(Microsoft 365 のスピル)=LARGE(データ範囲, SEQUENCE(表示件数))
条件付きで上位の値を取得(LARGE)
- 特定カテゴリ内の上位値:
(Microsoft 365)=LARGE(FILTER(数値データ, カテゴリ=”A”), 3)
(従来版Excel:配列数式)=LARGE(IF(カテゴリ=”A”, 数値データ), 3) // Ctrl+Shift+Enter - 期間限定での上位値:
(Microsoft 365)=LARGE(FILTER(売上データ, (日付>=開始日)(日付<=終了日)), 1)
(従来版Excel:配列数式)=LARGE(IF((日付>=開始日)(日付<=終了日), 売上データ), 1) // Ctrl+Shift+Enter
SUMPRODUCTで条件付きの順位(ランク番号)を求める
- 同一カテゴリ内で「対象値」の順位(大きい順):
=1+SUMPRODUCT( (カテゴリ=対象カテゴリ) * (数値データ>対象値) ) - 期間条件付きで「対象値」の順位(大きい順):
=1+SUMPRODUCT( (日付>=開始日) * (日付<=終了日) * (売上データ>対象値) )
※「対象カテゴリ」「対象値」はセル参照に置き換えて使用します(例:対象カテゴリ=E2、対象値=F2)。
(Microsoft 365の別解)=RANK.EQ(対象値, FILTER(数値データ, カテゴリ=対象カテゴリ), 0)
配列数式での一括取得
複数の順位を一度に取得します。
上位10件を縦に並べる:
{=LARGE(データ範囲, ROW(1:10))} // Ctrl+Shift+Enter
上位5件を横に並べる:
{=LARGE(データ範囲, COLUMN(A:E))} // Ctrl+Shift+Enter
動的な上位n%の抽出
データ数に応じて自動的に上位の境界を決定します。
上位10%の境界値:
=LARGE(データ範囲, ROUNDUP(COUNT(データ範囲)*0.1, 0))
該当判定:
=IF(A1>=LARGE(データ範囲, ROUNDUP(COUNT(データ範囲)*0.1, 0)), “上位10%”, “”)
RANK関数との相互活用
LARGEで値を取得し、RANKで順位を確認します。
特定値の順位:=RANK(A1, データ範囲, 0)
その順位の値:=LARGE(データ範囲, RANK(A1, データ範囲, 0))
LARGE関数のよくあるエラーと対策
#NUM!エラーの原因と対処
#NUM!エラーは、よく発生するエラーですが、主に以下の原因があります。
原因1:kが範囲内の数値の個数を超えている
データ数:10個
=LARGE(A1:A10, 11) // エラー:11番目は存在しない
対策:
=IF(B1<=COUNT(A:A), LARGE(A:A, B1), “順位が範囲外”)
原因2:kが0以下の値
=LARGE(A1:A10, 0) // エラー
=LARGE(A1:A10, -1) // エラー
対策:
=IF(B1>0, LARGE(A:A, B1), “順位は1以上を指定”)
#VALUE!エラーの対処
引数の型が不適切な場合に発生します。
=LARGE(A1:A10, “三”) // エラー:文字列は不可
対策:
=IFERROR(LARGE(A:A, B1), “数値を入力してください”)
空白セルと文字列の扱い
LARGE関数は空白セルと文字列を無視しますが、0は数値として扱います。
0を除外する場合:
{=LARGE(IF(A:A<>0, A:A), 1)} // 配列数式
エラー値を含む場合の対処:
{=LARGE(IF(NOT(ISERROR(A:A)), A:A), 1)}
重複値の扱い
同じ値が複数ある場合、それぞれ別の順位として扱われます。
データ:100, 90, 90, 80
=LARGE(A1:A4, 2) // 結果:90
=LARGE(A1:A4, 3) // 結果:90(同じ値)
ユニークな値のみを対象にする場合:
=LARGE(UNIQUE(A:A), 2) // Excel 365の場合
パフォーマンスの最適化
大量データで複数のLARGE関数を使用すると処理が重くなります。
- 必要な範囲のみを指定
- 一度ソートしてからINDEX関数を使用
- ヘルパー列で事前に順位を計算
// 非効率
=LARGE(A:A, 1) + LARGE(A:A, 2) + … + LARGE(A:A, 10)
// 効率的(ヘルパー列使用)
B1:=LARGE($A:$A, ROW(A1)) // 下方向にコピー
合計:=SUM(B1:B10)
(Microsoft 365 の場合、1式で)=SUM(LARGE($A:$A, SEQUENCE(10)))
動的範囲での注意点
データ範囲が変動する場合の対処法:
(Microsoft 365)=LARGE(FILTER(A:A, A:A<>””), 1) // 空白を除いて動的に抽出
(従来版Excel・数値列想定)=LARGE(A$2:INDEX(A:A, MATCH(9.999E+307, A:A)), 1) // 見出しがA1の場合はA$2から開始
テーブル機能を使用:
=LARGE(テーブル1[売上], 1) // 自動的に範囲が調整される
LARGE関数を使って上位データを効率的に抽出しよう
LARGE関数は、データセットから任意の順位の大きい値を抽出できる実用的な関数です。売上ランキング、成績上位者の特定、品質管理での異常値検出など、業務で幅広く利用できます。
SMALL関数と組み合わせることで上位下位の分析が可能になり、INDEX/MATCH関数との連携で、順位に対応する詳細情報も取得できます。
順位がデータ数を超えないよう注意し、必要に応じて条件付き抽出や動的な範囲指定を活用することで、より実践的なデータ分析が可能になります。
※ 掲載している情報は記事更新時点のものです。
※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。
関連記事
エクセルで0を表示させない方法とは?IF関数を使うと便利
Excelを使用していると、計算結果として得られる「0」が表示されることがあります。この場合、データの見やすさが損なわれたり、誤解を招く可能性があります。特に、報告書や提案書など、ビジュアルに配慮が求められる場面では「0」を表示しない方が望…
詳しくみるSWITCH関数とは?複数条件の設定やIF関数との違いを解説
エクセルでの複雑な条件分岐をすっきりと書けるSWITCH関数(読み方:スイッチ関数)は、IF関数を何重にもネストしていた従来の数式をシンプルに置き換えるのに最適です。この記事では、SWITCH関数の基本から応用までをわかりやすく解説。TRU…
詳しくみるTEXT関数の使い方や利用シーンをわかりやすく解説
ExcelやGoogleスプレッドシートでデータを扱う際、数値や日付を特定の形式で表示したいことがよくあります。そのようなときに便利なのが「TEXT関数」です。この関数を使うことで、任意のフォーマットでデータを表示し、見やすく整形することが…
詳しくみるMID関数の使い方をわかりやすく解説
Excelやスプレッドシートを使う際に、データ処理や分析に役立つ関数が多数存在します。その中でも、特定の文字列を抽出することができるMID関数は非常に便利です。文字列の一部を簡単に取り出し、さまざまな状況で活用することができます。本記事では…
詳しくみるSTDEV.P関数の使い方:エクセルで母集団の標準偏差を計算する方法
STDEV.P関数は、データセット全体(母集団)の標準偏差を計算するエクセルの統計関数です。品質管理での製品のばらつき測定、全社員の給与分散の分析、生産工程の安定性評価、学校全体の成績分布の把握など、データ全体のばらつき具合を数値化する様々…
詳しくみるMINUTE関数の使い方:時刻データから分を抽出する方法
MINUTE関数は、時刻データから「分」の部分だけを取り出す関数です。勤怠管理での細かい時間計算、会議スケジュールの管理、生産ラインのタクトタイム分析、交通機関の時刻表処理など、分単位の時間管理が必要な場面で活用されます。 例えば、「14:…
詳しくみる