Excel関数 逆引き集 | 上位n件平均 → AVERAGE+LARGE

Excel
スポンサーリンク

概要

「上位 n 件の平均」を出したいときは、
大きい順に値を取り出す LARGE 関数と、平均を出す AVERAGE 関数を組み合わせます。

イメージはこうです。
「点数の高い順に n 個だけ抜き出す → その平均を AVERAGE で計算する」。


基本の考え方(LARGE と AVERAGE)

LARGE 関数の基本

まずは「大きい順に取り出す」担当の LARGE から。

=LARGE(範囲, k)

範囲:点数や売上などのデータ範囲
k:何番目に大きい値か(1=最大、2=2番目に大きい…)

例:

=LARGE(A2:A11,1)   ' 最大値
=LARGE(A2:A11,2)   ' 2番目に大きい値
=LARGE(A2:A11,3)   ' 3番目に大きい値

ここまでは「1 個だけ取り出す」イメージです。

AVERAGE 関数の基本

AVERAGE は指定した値の平均を出します。

=AVERAGE(数値1, 数値2, …)
=AVERAGE(範囲)

例:

=AVERAGE(A2:A11)   ' A2~A11 全部の平均

上位 n 件平均の基本パターン(配列版)

「上位 3 件の平均」の典型形

例えば、A2:A11 にテストの点数が 10 人分あるとして、
その中から「高い順に 3 人分の平均」を出す式はこうなります。

=AVERAGE(LARGE(A2:A11,{1,2,3}))

ポイントは、LARGE の第 2 引数に {1,2,3} の「配列」を渡していることです。

  • LARGE(A2:A11,1) … 1 番目に大きい値
  • LARGE(A2:A11,2) … 2 番目に大きい値
  • LARGE(A2:A11,3) … 3 番目に大きい値

この 3 つをまとめて渡して、そのセットを AVERAGE が平均しているイメージです。

Excel の新しいバージョン(動的配列対応)なら、そのまま 1 式で動きます。

上位 5 件の平均

同じ考え方で、上位 5 件ならこうです。

=AVERAGE(LARGE(A2:A11,{1,2,3,4,5}))

範囲内に 5 件以上のデータがあることが前提です。


n をセルで指定して上位 n 件平均

SEQUENCE と組み合わせる方法

「毎回 {1,2,3,…} と手書きするのは面倒」「n を変えたい」
そんなときは、SEQUENCE で「1〜n」配列を自動生成するのが便利です。

例えば、
A2:A101 に点数、
D1 に「何件分を平均するか(n)」が入っているとします。

上位 n 件の平均は次のように書けます。

=AVERAGE(LARGE(A2:A101,SEQUENCE(D1)))

D1 = 3 なら SEQUENCE(D1) → {1;2;3}
D1 = 5 なら SEQUENCE(D1) → {1;2;3;4;5}

その配列をそのまま LARGE の「k」として使っているイメージです。


旧バージョン向けテクニック(配列数式)

手入力の配列数式(Ctrl+Shift+Enter)

古い Excel(動的配列非対応)では、
{1,2,3} のような配列を使う式を「配列数式」として確定する必要があります。

例:A2:A11 の上位 3 件平均

=AVERAGE(LARGE(A2:A11,{1,2,3}))

この式を入力したあと、
Enter ではなく Ctrl+Shift+Enter で確定すると、
数式バー上で {=AVERAGE(LARGE(A2:A11,{1,2,3}))} のように見える状態になります。

(波括弧 {} は自分で打たず、Ctrl+Shift+Enter で Excel に付けさせるものです。)


実務でのイメージ

テストの上位成績者の平均点

「クラス 30 人のテスト結果から、上位 5 人の平均点を出したい」
といったシーンでは、次のような式になります。

点数の範囲が B2:B31 の場合:

=AVERAGE(LARGE(B2:B31,{1,2,3,4,5}))

あるいは、上位人数をセルで変えたいなら:

=AVERAGE(LARGE(B2:B31,SEQUENCE(D1)))

(D1 に「5」などの人数を入力)

売上上位商品の平均売上

「売上一覧から、売上金額上位 10 商品の平均売上を知りたい」
というときも同じです。

売上金額が C2:C101 の場合:

=AVERAGE(LARGE(C2:C101,SEQUENCE(10)))

n を変えれば、上位 3 件・上位 20 件などにも即対応できます。


例題

問題1

A2:A11 に 10 人分のテスト点数が入っています。
この中から「上位 3 人の平均点」を求める式を、AVERAGE と LARGE を組み合わせて書いてください。
(ヒント:LARGE の第 2 引数には {1,2,3} を使います)

問題2

B2:B31 に 30 人分のテスト点数が入っています。
上位 5 人の平均点を求める式を書いてください。
(動的配列が使える前提で、{1,2,3,4,5} をそのまま書いて構いません)

問題3

C2:C101 に商品 100 件分の売上が入っています。
上位何件を見るかをセル E1 に入力し、その件数分の上位平均売上を求めたいとします。
AVERAGE、LARGE、SEQUENCE を組み合わせた式を書いてください。

(ヒント:LARGE の第 2 引数に SEQUENCE(E1) を渡します)

問題4

次の式が何をしているのか、言葉で説明してください。

=AVERAGE(LARGE(D2:D21,{1,2,3,4}))

「どの範囲のどの値を取り出し、それらに何をしているのか」を、
初心者にも伝わるように説明してみてください。

問題5

範囲 A2:A6 に 5 個の点数が入っています。
次の式を実行するとどうなるか、結果とその理由を答えてください。

=AVERAGE(LARGE(A2:A6,{1,2,3,4,5,6}))

(ヒント:データ数より多い順位(6番目)が指定されているとき、LARGE はどう振る舞うかを考えます)

Excel
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました