前回の連載では、関数RANKを使ってランキング(順位)を求める方法を紹介した。このほかにもランキングを求める関数として、RANK.EQやRANK.AVG、PERCENTRANK.INCといった関数が用意されている。状況に応じて使い分けられるように、これらの関数の特徴も覚えておくとよい。そのほか、関数PERCENTILE.INCの使い方も紹介しておこう。
同順位の扱い方、RANK.EQとRANK.AVGの違い
各データのランキング(順位)を求める際に、RANKの代わりに「RANK.EQ」や「RANK.AVG」といった関数を使用することも可能だ。また、順位を0~1(0~100%)の割合で示す「PERCENTRANK.INC」という関数も用意されている。今回は、これらの関数の使い方を紹介していこう。
前回の連載で紹介した関数RANKによく似た関数として、RANK.EQやRANK.AVGといった関数も用意されている。引数の指定方法は関数RANKと同じで、第1引数に「順位を調べたい数値」、第2引数に「全データのセル範囲」を指定する。
◆関数RANK.EQの書式
=RANK.EQ(数値, 範囲, [順序])
◆関数RANK.AVGの書式
=RANK.AVG(数値, 範囲, [順序])
いずれも第3引数は省略することが可能だ。省略した場合は、数値の大きい順に並べた順位が返される。数値の小さい順に並べた順位を求めたいときは、第3引数に0(ゼロ)以外の数値を指定すればよい。
前回の連載と同じ「自転車のヘルメット着用率」を例に、各関数の違いを説明していこう。なお、このデータは、警察庁が公表している「令和5年秋の全国交通安全運動の実施について」に基づいたものとなる。
まずは、関数RANKでランキング(順位)を求める。今回の例もD5~D51のセル範囲に「着用率」のデータが入力されている。よって、第1引数に「D5」(順位を調べたい数値)、第2引数に「D5:D51」(データ全体のセル範囲)を指定すればよい。この部分は、オートフィルで関数をコピーしたときにセル範囲が変化しないように絶対参照で指定するのが基本だ。
同様の手順で「RANK.EQ」と「RANK.AVG」を入力していくと、以下の図のようになる。
あとは、これらの関数をオートフィルでコピーするだけ。これで各都道府県のランキング(順位)を求められる。今回の例は「着用率」の大きい順にデータを並べ替えてあるため、いずれの関数も「1、2、3、…」という数値(順位)が並ぶことになる。
関数によって違いが生じるのは「▲▲位タイ」となる部分だ。たとえば、「着用率」が10.6%の静岡県と鹿児島県は、関数RANK.EQでは19位、関数RANK.AVGでは19.5位という結果になっている。これは「▲▲位タイをどう扱うか?」という問題に起因している。
静岡県と鹿児島県は「上から数えて19番目に位置しているので19位」と考えるのが関数RANK.EQ。一方、静岡県と鹿児島県は「19~20位に相当するので、その平均をとって19.5位」と考えるのが関数RANK.AVGとなる。
「着用率」が10.5%の東京都、京都府、長崎県も同様の考え方になる。関数RANK.EQの場合は「上から数えて21番目に位置しているので21位」、関数RANK.AVGの場合は「21~23位に相当するので、その平均をとって22位」という結果になる。
ちなみに「RANK」と「RANK.EQ」は、基本的に同じ関数と考えて構わない。同じ関数なのに名前が異なる理由は、関数が実装されるまでの経緯に由来している。
Excel 2007までは、ランキングを求める関数は「RANK」しか用意されていなかった。その後、Excel 2010にバージョンアップした際に「▲▲位タイ」を平均値で求める「RANK.AVG」が新たに導入された。この「RANK.AVG」に合わせて、旧来のRANKも「RANK.EQ」に関数名に変更された。
ただし、関数名を変えてしまうと、それ以前のバージョンと互換性を維持できなくなってしまう。そこで、名前が「RANK」の関数もそのまま残されている、というのが現状だ。つまり、「RANK」と「RANK.EQ」は同じ関数になる。「▲▲位タイ」を平均値で示すケースは少ないので、基本的には「RANK」または「RANK.EQ」の使い方を覚えておけば十分であろう。