ここでは、Microsoft Excel の RANK 関数の書式および使用法について説明します。
説明
数値のリスト内の数値のランクを返します。 そのサイズは、リスト内の他の値に対して相対的です。複数の値のランクが同じ場合は、その値セットの上位ランクが返されます。
リストの数値の順序を並べ替えても、指定した数値の順位は変わりません。
書式
RANK.EQ(数値,範囲,[順序])
RANK.EQ 関数の書式には、次の引数があります。
-
数値 必ず指定します。 範囲内での順位 (位置) を調べる数値を指定します。
-
範囲 必ず指定します。 数値の範囲の配列またはその範囲への参照を指定します。 範囲に含まれる数値以外の値は無視されます。
-
順序 省略可能です。 範囲内の数値を並べる方法を指定します。
解説
-
順序に 0 (ゼロ) を指定するか、順序を省略すると、範囲内の数値が...3、2、1 のように降順に並べ替えられます。
-
順序に 0 以外の数値を指定すると、範囲内の数値が 1、2、3、... のように昇順で並べ替えられます。
-
RANK.EQ 関数では、重複した数値は同じ順位と見なされます。 ただし、数値が重複していると、それ以降の数値の順位がずれていきます。 たとえば、昇順に並べられた整数のリストがあり、そのリストに 10 が 2 度現れ、その順位が 5 であるとき、11 の順位は 7 となります (順位が 6 の数値はありません)。
-
目的によっては、同順位も考慮した順位定義の使用が必要となる場合もあります。 たとえば、前の使用例では、10 の順位を 5.5 に訂正できた方がよい場合があります。 そのためには、下記の補正因子を RANK.EQ 関数の戻り値に加算します。 この補正因子は、順位を降順 (順序に 0 を指定するか、省略した場合) または昇順 (順序に 0 以外の数値を指定した場合) のどちらで計算する場合にも使用できます。
同順位の補正因子=[COUNT(範囲) + 1 – RANK.EQ(数値, 範囲, 0) – RANK.EQ(数値, 範囲, 1)]/2
ブック内の例では、RANK.EQ(A3,A2:A6,1) は 3 です。 補正因子は (5 + 1 – 2 – 3)/2 = 0.5 となるので、同順位を考慮して訂正した順位は 3 + 0.5 = 3.5 となります。 範囲内に 1 回だけ現れる数値の場合、その補正因子は 0 になり、RANK.EQ の戻り値に対して同順位の調整を行う必要はありません。
使用例
次の表のサンプル データをコピーし、新しい Excel ワークシートのセル A1 に貼り付けます。 数式を選択して、F2 キーを押し、さらに Enter キーを押すと、結果が表示されます。 必要に応じて、列幅を調整してすべてのデータを表示してください。
データ |
||
7 |
||
3.5 |
||
3.5 |
||
1 |
||
2 |
||
数式 |
説明 |
結果 |
=RANK.EQ(A2,A2:A6,1) |
範囲 A2:A6 の中で、7 の順位を調べます。 順序の引数 (1) がゼロ以外の値なので、リストは昇順に並べ替えられます。 |
5 |
=RANK.EQ(A6,A2:A6) |
同じリストの中で、2 の順位を調べます。 順序の引数が省略されているので、リストは既定に従って降順で並べ替えられます。 |
4 |
=RANK.EQ(A3,A2:A6,1) |
同じリストの中で、3.5 の順位を調べます。 |
3 |