エクセルでデータを管理していると、「売上ランキングの2位は誰か」「テストで3番目に高い点数は何点か」といった情報を抽出したい場面が出てきます。
最大値はMAX関数で求められますが、2番目・3番目といったn番目に大きい値を求めるにはLARGE関数を使うのが最も適切な方法です。
LARGE関数を使いこなすことで、ランキング表の自動作成や条件付きのトップN抽出など、実務で役立つ高度な集計が可能になります。
この記事では、LARGE関数の基本から応用的な活用方法まで丁寧に解説していきます。
LARGE関数を使えばn番目に大きい値の抽出が自在になる
それではまず、LARGE関数の基本的な使い方とその活用の可能性について解説していきます。
LARGE関数の基本的な書き方と動作
LARGE関数は、指定した範囲の中でn番目に大きい値を返す関数です。
=LARGE(配列, 順位)
例:=LARGE(A1:A10, 1)→ 最大値(1番目に大きい値)
例:=LARGE(A1:A10, 2)→ 2番目に大きい値
例:=LARGE(A1:A10, 3)→ 3番目に大きい値
「順位」の引数に1を指定するとMAX関数と同じ結果になります。
LARGE関数はMAX関数の上位互換的な使い方ができるため、ランキングを扱うシートではLARGE関数を覚えておくと非常に便利です。
SMALL関数との比較・n番目に小さい値を求める方法
LARGE関数と対になるのがSMALL関数で、こちらはn番目に小さい値を返します。
=SMALL(配列, 順位)
例:=SMALL(A1:A10, 1)→ 最小値(1番目に小さい値)
例:=SMALL(A1:A10, 2)→ 2番目に小さい値
ランキング下位の分析や、最低値付近のデータ抽出にはSMALL関数を活用しましょう。
LARGE関数とSMALL関数を組み合わせることで、上位・下位の両方を自動集計するランキング表を効率的に作成できます。
RANK関数との組み合わせで順位と値を同時に管理する方法
RANK関数は特定の値がデータ全体の中で何位かを返す関数です。
LARGE関数と組み合わせることで、「n位の値は何か」と「この値は何位か」を相互に参照できる管理表を作成できます。
=RANK(A2, $A$2:$A$11, 0)
→ A2の値がA2からA11の範囲で何位かを返す(0は降順)
LARGE関数とRANK関数を組み合わせることで、データが更新されても自動的に順位と値が更新されるダイナミックなランキング表が実現できます。
LARGE関数を使ったランキング表の自動作成と応用
続いては、LARGE関数を使ってランキング表を自動作成する方法と応用テクニックを確認していきます。
連続した順位の値を一覧表示する方法
1位から5位までの値を縦に並べたランキング表を作りたい場合、ROW関数と組み合わせることで効率的に数式を作成できます。
=LARGE($A$2:$A$11, ROW(A1))
→ この数式を下にコピーすると、自動的に2番目・3番目…と順位が変わっていく
ROW関数を組み合わせることでコピー時に順位が自動的に増加し、1行ずつ数式を書く手間が省けます。
INDEX・MATCH関数と組み合わせてランキング名を取得する方法
LARGE関数は値を返しますが、その値に対応する名前や項目名を取得したい場合はINDEX・MATCH関数との組み合わせが有効です。
=INDEX(名前の範囲, MATCH(LARGE(売上範囲, 1), 売上範囲, 0))
→ 売上が1番大きい人の名前を返す
この組み合わせを使うことで、売上トップ3の担当者名を自動表示するランキング表などが簡単に作成できます。
同順位(タイ)が発生した場合の対処法
複数のデータが同じ値を持つ場合、LARGE関数は同じ値を複数回返します。
たとえば1位と2位が同じ値の場合、LARGE(範囲,1)とLARGE(範囲,2)が同じ値になります。
同順位が発生しうるデータでは、COUNTIF関数などと組み合わせてタイ処理のロジックを追加することで、より正確なランキング表が作成できます。
条件付きでn番目に大きい値を抽出する応用テクニック
続いては、特定の条件を満たすデータの中でn番目に大きい値を求める応用テクニックを確認していきます。
特定の条件に合うデータのみでランキングを作る方法
たとえば「東京エリアだけの売上ランキング」のように、条件を絞ってn番目を求めたい場合は、LARGEとIF関数を配列数式として組み合わせる方法が使えます。
=LARGE(IF(エリア範囲=”東京”, 売上範囲), 1)
※Ctrl+Shift+Enterで配列数式として入力する
Excel 365以降ではFILTER関数とLARGE関数を組み合わせることで、より読みやすい数式で同様の処理が実現できます。
FILTER関数とLARGE関数の組み合わせ(Excel 365対応)
Excel 365では動的配列関数のFILTER関数が使えます。
=LARGE(FILTER(売上範囲, エリア範囲=”東京”), 1)
→ 東京エリアの売上の中で最大値を返す
FILTER関数を使うことで配列数式を使わずシンプルな記述で条件付きランキングが実現できるため、Excel 365をお使いの方はぜひ活用してみてください。
LARGE関数を使った上位N件の合計・平均を求める方法
上位3件の合計や平均を求めたい場合は、LARGE関数とSUMPRODUCT・AVERAGE関数を組み合わせる方法があります。
上位3件の合計:=LARGE(A1:A10,1)+LARGE(A1:A10,2)+LARGE(A1:A10,3)
または:=SUMPRODUCT(LARGE(A1:A10,{1,2,3}))
配列定数{1,2,3}を使うことで、複数の順位の値を一度に取得して合計できます。
まとめ
この記事では、エクセルでn番目に大きい値を求める方法として、LARGE関数の基本からランキング表の自動作成・条件付き抽出まで幅広く解説しました。
LARGE関数はROW関数・INDEX・MATCH関数・FILTER関数など様々な関数と組み合わせることで、データが更新されても自動的に更新されるダイナミックなランキング集計が実現できます。
売上ランキング・成績管理・在庫分析など、実務の様々な場面で活用できる非常に便利な関数ですので、ぜひ使いこなせるようにしておきましょう。