ADVERTISEMENT

【Googleスプレッドシート】LARGE関数で上位N番目の値を取得!ベスト3の抽出

【Googleスプレッドシート】LARGE関数で上位N番目の値を取得!ベスト3の抽出
🛡️ 超解決

売上ランキングのトップ3を表示したい、テストの点数で上位5名を抽出したいなど、データの中から大きい順に値を取り出したい場面はよくあります。そんなときに役立つのがLARGE関数です。LARGE関数を使えば、指定した範囲内でN番目に大きい値を簡単に取得できます。この記事では、LARGE関数の基本的な使い方から、ベスト3を一覧で抽出する方法、条件付きで上位を絞り込む応用テクニックまでを解説します。

この記事を読めば、LARGE関数の構文と引数の意味が理解でき、実際のシートで上位N番目の値を自由に取り出せるようになります。また、RANK関数やSORT関数との違いも明確になり、状況に応じた適切な関数を選べるようになるでしょう。

【要点】LARGE関数で上位N番目の値を効率的に取得する方法

  • =LARGE(範囲, N) の基本構文: 範囲内でN番目に大きい値を返します。第2引数に1を指定すれば最大値、2を指定すれば2番目に大きい値になります。
  • ベスト3を一覧で表示する方法: =LARGE(範囲, ROW(A1)) のようにROW関数と組み合わせて下方にドラッグすると、1位から順に並べられます。
  • 条件付きで上位を抽出する応用: LARGE関数をIF関数やFILTER関数と組み合わせることで、特定の条件を満たすデータの中から上位N番目を得られます。

ADVERTISEMENT

LARGE関数の仕組みと構文

LARGE関数は、指定した範囲の中からN番目に大きい値を抽出する関数です。並べ替えをしなくても、欲しい順位の値を直接取得できるため、動的なランキング表示に適しています。

基本構文は次のとおりです。

=LARGE(データ範囲,順位)

第1引数「データ範囲」は数値が含まれるセル範囲です。第2引数「順位」には1以上の数値を指定します。1なら最大値、2なら2番目に大きい値、という具合です。範囲内に同じ値が複数ある場合、それらは別々の順位としてカウントされます。

例えば、セルA1〜A10に売上データがあるとき、=LARGE(A1:A10,1) で最大値、=LARGE(A1:A10,3) で3番目に大きい値を取得できます。RANK関数が「ある値が全体の中で何位か」を返すのに対し、LARGE関数は「N位の値はいくつか」を返す点が異なります。

LARGE関数で上位N番目を取得する具体的な手順

基本の使い方:単一の順位の値を取得する

  1. データ範囲を準備する
    数値データが入力されたセル範囲を用意します。ここでは例として、B2〜B11に売上金額が入力されているとします。
  2. 結果を表示するセルに関数を入力する
    最大値を取得したい場合は、任意のセルに =LARGE(B2:B11,1) と入力します。2番目の値を取得したい場合は =LARGE(B2:B11,2) とします。
  3. Enterキーで確定する
    関数の結果が表示されます。第2引数の数字を変えるだけで、異なる順位の値を取得できます。

ベスト3を一覧で抽出する方法

  1. 順位を表す数字を用意する
    別の列に1、2、3…と順位を入力します。例えば、D1に「順位」、D2に1、D3に2、D4に3と入力します。
  2. LARGE関数に順位セルを参照させる
    E2セルに =LARGE(B2:B11,D2) と入力します。D2は1なので、最大値が表示されます。
  3. 数式を下方にドラッグしてコピーする
    E2セルの右下隅をダブルクリックするか、ドラッグしてE3、E4にコピーします。これで1位から3位までの値が自動的に表示されます。
  4. ROW関数を使って効率化する
    順位列を用意しなくても、 =LARGE($B$2:$B$11,ROW(A1)) と入力し、下方にドラッグすれば、ROW関数が1,2,3…と返すので同様に動作します。絶対参照にすると範囲がずれません。

条件付きで上位N番目を抽出する(IF関数との組み合わせ)

  1. 条件を満たすデータのみを対象にする
    例えば、商品カテゴリがAのデータだけから上位3位を抽出したい場合、次の配列数式を使います。
    =LARGE(IF(C2:C11=”A”,B2:B11),1) と入力します。ただし、これは配列数式なので、Ctrl+Shift+Enter で確定する必要がある場合があります(Googleスプレッドシートでは自動的に配列として扱われます)。
  2. ARRAYFORMULAでラップする
    確実に配列として処理するには、 =ARRAYFORMULA(LARGE(IF(C2:C11=”A”,B2:B11),1)) とします。これで条件を満たすデータのみの中から最大値を取得できます。
  3. FILTER関数と組み合わせる方法
    より直感的な方法として、FILTER関数で条件に合うデータを抽出してからLARGE関数を適用します。
    =LARGE(FILTER(B2:B11,C2:C11=”A”),1) と入力します。この式は配列数式として機能し、条件に合った売上金額の最大値を返します。

LARGE関数を使用する際の注意点とよくある失敗

同じ値が複数ある場合の順位の扱い

LARGE関数は、同じ値が複数ある場合もそれぞれを別の順位としてカウントします。例えば、1位が100、2位も100、3位が90というデータの場合、=LARGE(範囲,2) は100を返します。重複を無視して順位を付けたい場合は、UNIQUE関数と組み合わせるなど別の方法を検討しましょう。

データ範囲にエラーや空白が含まれている場合

範囲内に#N/Aや#VALUE!などのエラー値があると、LARGE関数もエラーを返します。IFERROR関数でエラーを除外するか、FILTER関数でエラーのないデータだけを抽出してから使用してください。空白セルは数値として扱われないため無視されますが、文字列が混ざっているとエラーになることがあります。

順位に大きな数値を指定した場合

データ数より大きい順位を指定すると、#NUM!エラーが発生します。例えば、データが10個しかないのに=LARGE(範囲,11)とするとエラーになります。エラーを回避するには、IFERROR関数でメッセージを表示するか、事前にCOUNTA関数でデータ数を確認しましょう。

降順に並べ替えた結果と異なる可能性

LARGE関数は単に値を返すだけなので、どの行がその値を持つのかはわかりません。該当する行全体を取得したい場合は、INDEXとMATCHを組み合わせて対応する行を特定します。例えば、=INDEX(A2:A11,MATCH(LARGE(B2:B11,1),B2:B11,0)) で最大値を持つ行のA列の値を取得できます。

ADVERTISEMENT

LARGE関数と類似関数の比較

関数 返す値 使用シーン
LARGE N番目に大きい値 順位に該当する値を直接取得したいとき
SMALL N番目に小さい値 下位の値を抽出したいとき
RANK 値の順位(何位か) 各データの順位を調べたいとき
SORT 範囲全体を並べ替えた結果 データを降順に並べて上位を一覧表示したいとき
QUERY SQLライクな抽出結果 条件付きで上位N件を取得するとき

LARGE関数は単一の値を返すのに対し、SORT関数は範囲全体を並べ替えて表示します。ベスト3の値だけでなく、対応する名前も一緒に表示したい場合はSORT関数のほうが便利です。QUERY関数は「select A,B order by B desc limit 3」のような構文で柔軟に抽出できます。

まとめ

LARGE関数を使えば、データの中から上位N番目の値を手軽に取得できます。基本構文は =LARGE(範囲,順位) で、ROW関数と組み合わせればベスト3を一覧表示するのも簡単です。条件付き抽出にはFILTER関数やIF関数を併用します。同じ値の扱いやエラー対策に注意しながら、ランキング集計や成績分析に活用してみてください。次はSMALL関数で下位の値を抽出したり、SORT関数でデータ全体を並べ替えたりする方法にも挑戦すると、さらにデータ活用の幅が広がります。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。