LARGE関数の使い方|n番目に大きい値・上位3つの合計・名前を出す

LARGE関数の使い方|n番目に大きい値を求める

エクセルで、大きいほうから数えて n 番目の値を取り出すには LARGE関数を使います。たとえば売上の2番目に大きい値は、=LARGE(C3:C10,2) で 150 と分かります。

MAX関数は1番目しか出せませんが、LARGE関数なら2番目・3番目も出せるので、上位3つの合計やランキング表に使えます。この記事では、LARGE関数の基本、同じ値があるときの動き、上位の合計、n番目の人の名前を出す方法、条件付きの n 番目、データが足りないときの対処までを、1つの表で説明します。下の練習ツールで、売上や n を書き換えて結果の変わり方を試せます。

目次

LARGE関数の書き方

LARGE関数の構文
数式=LARGE(配列,順位)
ひとことで大きいほうから数えた値を求める
配列
データの範囲です
順位
順位です
引数入れるものポイント
配列数値の範囲空欄・文字は無視されます。
順位大きいほうから何番目か1 なら最大値(MAX関数と同じ)です。

まず動かしてみよう|この記事のサンプルをその場で試せます

練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。

LARGE関数の使い方|やりたいこと別の式

やりたいこと式(例)結果
いちばん大きい値=LARGE(C3:C10,1)200
2番目に大きい値=LARGE(C3:C10,2)150
セルで指定した n 番目=LARGE(C3:C10,F12)120
上位3つの合計=SUM(LARGE(C3:C10,{1,2,3}))500
2番目の人の名前=INDEX(A3:A10,MATCH(LARGE(C3:C10,2),C3:C10,0))鈴木
条件付きの2番目=LARGE(FILTER(C3:C10,B3:B10=”営業”),2)150
データが足りないとき=IFERROR(LARGE(C3:C10,10),”なし”)なし
エクセルのLARGE関数で大きいほうからn番目の売上を求めた表
エクセルのLARGE関数で大きいほうからn番目の売上を求めた表

n番目に大きい値を求める

手順:F4 に LARGE の式を入れて Enter

8 人の売上(C3:C10)から、2 番目に大きい売上を求めます。 F4 に次の式を入力して、Enter キーを押します❶。

F4 に入れる式
=LARGE(C3:C10,2)
C3:C10 配列(売上)2 順位(2番目)
ひとことで売上の中で、大きいほうから2番目の値を求める
式を分けて読むと(色は画像の枠と同じ)
配列C3:C10
どのデータ?
→ 売上の範囲
順位2
大きいほうから何番目?
→ 2番目
自分の表で使うときは
青にデータの範囲、オレンジに何番目かを入れます。例:点数(D 列)の3番目に高い点=LARGE(D2:D40,3)
  • 空欄や文字は無視されます。
エクセルのLARGE関数で2番目に大きい値を求める式と、売上の範囲を色分けした画面
エクセルのLARGE関数で2番目に大きい値を求める式と、売上の範囲を色分けした画面

確認:2番目に大きい売上は 150 だった

エクセルのLARGE関数で売上の2番目に大きい値が150になったことを示した画面
エクセルのLARGE関数で売上の2番目に大きい値が150になったことを示した画面

答えは 150 になりました❷。式は、次の順に計算しています。

  1. 売上を大きい順に並べる(空欄は除く)
    ⇒ 200・150・150・120・95・85・60
  2. 2番目を取り出す
    ⇒ 150
ヒント:同じ値があるとき
150 が2人いるので、3番目(=LARGE(C3:C10,3))も 150 になります。

同じ値があるときの動き

鈴木さんと渡辺さんがどちらも 150 です。LARGE関数は同じ値も1つずつ数えるので、=LARGE(C3:C10,3) も 150 になります。4番目は 120 です。

ポイントポイント:順位を1つ飛ばさずに「2番目に大きい“別の”値」がほしいときは、重複を除いてから使います。たとえば =LARGE(UNIQUE(FILTER(C3:C10,C3:C10<>"")),3) は、重複を除いた3番目の 120 になります。

セルで n を指定する

LARGE関数の式
数式=LARGE(C3:C10,F12)
ひとことで大きいほうから数えた値を求める
C3:C10
データの範囲です
F12
順位です

F12 が 4 なので、4番目に大きい 120 です。順位を 1・2・3… と縦に並べておけば、ランキング表を作れます。

上位3つの合計を出す

順位に {1,2,3} のような配列を指定すると、上位3つがまとめて取り出されます。それを SUM関数で合計します。

SUM関数の式
数式=SUM(LARGE(C3:C10,{1,2,3}))
ひとことで合計を求める
LARGE(C3:C10,{1,2,3})
合計する範囲です

200+150+150 で、結果は 500 です。平均なら AVERAGE関数で囲みます(AVERAGE関数の使い方)。

n番目に大きい人の名前を出す

LARGE関数で値を求め、MATCH関数でその位置を探し、INDEX関数で名前を取り出します。

INDEX関数の式
数式=INDEX(A3:A10,MATCH(LARGE(C3:C10,2),C3:C10,0))
ひとことで位置を指定して値を返す
A3:A10
範囲です
MATCH(LARGE(C3:C10,2),C3:C10,0)
行番号です

2番目の 150 は鈴木さんと渡辺さんの2人ですが、MATCH関数は上の行を先に見つけるので、結果は 鈴木 です。同じ値の人を全員出したいときは FILTER関数を使います(FILTER関数の使い方)。

条件に合う中で n 番目を出す

LARGE関数の構文
数式=LARGE(FILTER(C3:C10,B3:B10="営業"),2)
ひとことで大きいほうから数えた値を求める
FILTER(C3:C10,B3:B10="営業")
データの範囲です
2
順位です

営業の売上は 120・150・60・200 なので、2番目は 150 です。FILTER関数は Excel 2021 以降・Microsoft 365 で使えます。

データが足りないときの表示を決める

順位がデータの個数より大きいと #NUM! エラーになります。売上の数値は7つなので、10番目はありません。

IFERROR関数の構文
数式=IFERROR(LARGE(C3:C10,10),"なし")
ひとことでエラーを別の値に置き換える
LARGE(C3:C10,10)
エラーかどうかを調べる式です
"なし"
エラーのときの値です

結果は なし です(IFERROR関数の使い方)。

LARGE関数がうまくいかないときの確認表

症状考えられる原因対処
「#NUM!」になる順位が0以下、またはデータの個数より大きい順位を確かめる。IFERROR関数で表示を決める。
同じ値が続く同じ値も1つずつ数える重複を除くなら UNIQUE関数と組み合わせる。
数値が対象にならない数値が文字列として入っているVALUE関数などで数値に変換する。
名前が1人しか出ないMATCH関数は最初の1つだけ見つけるFILTER関数で同じ値の人を全部出す。

LARGE関数のよくある質問

小さいほうから n 番目は?

SMALL関数を使います(SMALL関数の使い方)。

順位(何位か)を出すには?

RANK.EQ関数を使います(RANK.EQ関数の使い方)。

あわせて読みたい:順位・並べ替えの関連記事

練習用ファイル:練習用Excelファイル(.xlsx・無料)

最高点の人の名前を出すなら、最大値の名前を表示する方法もあわせてご覧ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次