Googleスプレッドシートで、指定した値がデータ範囲内で何位なのか順位を表示したい場合は、RANK関数を使用します。
RANK関数は以下3つの種類があります。
- RANK
- RANK.EQ
- RANK.AVG
「RANK関数」「RANK.EQ関数」は同じです。
RANK.AVG関数は同一順位の値が複数あった時、表示する順位を順位の平均で表示するという違いがあります。
また、類似の関数としてLARGE、SMALL関数がありますが以下のような違いがあります。
ここではRANK関数の使い方を解説します。
INDEX
スプレッドシートのRANK関数の使い方
降順(値の大きい順)で順位をつける
点数の高い順に順位をつける
順位を表示したいセルを選択し(今回はセルC4)、以下のように数式を入力します。
B列にある数字がそれぞれ何位になるか順位を求める例です。
=RANK(B4,$B$4:$B$13)
上記の式を13行目までコピーすることで各点数の順位を求めることができます。
範囲を選択する時は通常、絶対参照($付き)で指定します。
絶対参照を使用することで、他のセルに数式をコピーしたときに範囲は固定され同じ範囲を使用することができます。
昇順(値の小さい順)で順位をつける
値の小さい順(昇順)で順位をつけるときは、最後の引数で「1」(またはTRUE)を指定します。
省略した場合は降順になります。
=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(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関数は以下のように入力します。
引数 | 説明 |
---|---|
値 | 順位を表示したい値を入力するかセルを選択。 |
データ | 順位を比較するデータ範囲を指定。 |
昇順 | 省略、0、FALSEのいずれかの指定した場合、降順で順位をつける。1またはTRUEを指定すると昇順。 |