統計

指定した値の順位を表示するRANK関数

RANK関数

Googleスプレッドシートで、指定した値がデータ範囲内で何位なのか順位を表示したい場合は、RANK関数を使用します。

RANK関数は以下3つの種類があります。

  • RANK
  • RANK.EQ
  • RANK.AVG

「RANK関数」「RANK.EQ関数」は同じです。
RANK.AVG関数は同一順位の値が複数あった時、表示する順位を順位の平均で表示するという違いがあります。

RANK、RANK.AVG、RANK.EQ関数(完成例)

また、類似の関数としてLARGE、SMALL関数がありますが以下のような違いがあります。

  • LARGE関数SMALL関数:データ範囲内から指定した順位の値を抽出(値を見つける)
  • RANK関数:指定した値はデータ範囲の中で何位なのか(順位を知る)

ここではRANK関数の使い方を解説します。

スプレッドシートのRANK関数の使い方

降順(値の大きい順)で順位をつける

Sample

点数の高い順に順位をつける

順位を表示したいセルを選択し(今回はセルC4)、以下のように数式を入力します。

B列にある数字がそれぞれ何位になるか順位を求める例です。

RANK関数の数式

=RANK(B4,$B$4:$B$13)

上記の式を13行目までコピーすることで各点数の順位を求めることができます。

範囲を選択する時は通常、絶対参照($付き)で指定します。
絶対参照を使用することで、他のセルに数式をコピーしたときに範囲は固定され同じ範囲を使用することができます。

昇順(値の小さい順)で順位をつける

値の小さい順(昇順)で順位をつけるときは、最後の引数で「1」(またはTRUE)を指定します。

省略した場合は降順になります。

rank関数(昇順)

=RANK(B4,$B$4:$B$13,1)

同じ順位のデータが複数ある時

同じ順位のデータが2つ

範囲内に同じ点数が複数存在しているときはRANK関数、RANK.AVG関数、RANK.EQ関数それぞれで以下のように表示されます。

下の例では「85点」が2名いて、点数としては2位となり同率2位となります。

RANK関数(C列)、RANK.EQ関数(D列)では2人とも同率2位と表示され、3位がいないという結果となります。

しかし、RANK.AVG関数(E列)は同じ点数が2つあった場合、その2名分の順位の平均値を表示します。
(2位3位が同点、その平均値の2.5位という表示)

※AVGはAVERAGEの略です

RANK、RANK.AVG、RANK.EQ関数の違い

=RANK(B4,$B$4:$B$13)

=RANK.EQ(B4,$B$4:$B$13)

=RANK.AVG(B4,$B$4:$B$13)

同じ順位のデータが3つ

同じ点数が3名いた場合は以下のようになります。

下の例では「85点」が3名いて、点数としては2位となり同率2位となります。

RANK関数(C列)、RANK.EQ関数(D列)では同率2位が3名で、3位4位がいないという結果となります。

RANK.AVG関数(E列)は同じ点数が3つの場合、その3名分の順位の平均値を表示します。
(2位+3位+4位=9。9を3人で割ることで平均は3となり、3人とも平均順位の「3位」と表示される)

RANK、RANK.AVG、RANK.EQ関数の違い

スプレッドシートのRANK関数の構文

スプレッドシートのRANK関数は以下のように入力します。

=RANK(値,データ,[昇順])
引数説明
順位を表示したい値を入力するかセルを選択。
データ順位を比較するデータ範囲を指定。
昇順省略、0、FALSEのいずれかの指定した場合、降順で順位をつける。1またはTRUEを指定すると昇順。