1から始めるPythonデータ分析 - やりたいこと逆引きリスト ▶︎▶︎

【エクセル】RANK関数|順位(ランキング)を付ける

RANK関数とは?

RANK関数イメージ

RANK関数とは、その名の通り「ランキング・順位」を出すことができる関数です

簡単に順位を出すことができる便利な関数ですが、

過去の経緯と仕組み上「なぜか3種類」も存在していて複雑です…

その違いなども含め説明していきます

3種類のRANK関数

実は以前は、RANK関数は1種類でした(RANK関数

しかし条件の処理が違う新しいRANK関数(RANK.AVG関数)が派生しました

そのため、違いを明確にするために過去と同じ意味の関数(RANK.EQ関数)も生まれました

  1. RANK関数
  2. RANK.EQ関数
  3. RANK.AVG関数

実は「RANK関数」と「RANK.EQ関数」は同じ機能です

そして「EQ」と「AVG」の違いは「同一順位があった場合の処理」です

RANK.EQ関数 :同点だった場合、順位の最上位を出す

RANK.AVG関数:同点だった場合、順位の平均を出す

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

このような図のイメージになります

同点の場合は「最上位」を出すことが多く、「RANK=RANK.EQ」となるため

基本方針は下記のようになります

RANK関数を使え!EQ / AVGは付けない!

旧バージョンのエクセルに対応!?

「RANK.EQ」「RANK.AVG」はともにExcel 2010で実装された関数です

Excel 2007以前の古いバージョンで操作する場合は互換性のある「RANK」が適しています

こういった点からも「RANK関数」を推奨しています

RANK関数の使い方

=RANK(数値,参照,[順序])

「RANK関数」「RANK.EQ関数」「RANK.AVG関数」はすべて同じ語法のため、2つは省略しています

⓪関数の書き方

まず書き始めですが、「=RANK…」と打つと候補が出てきます

RANK関数の書き始め

「RANK」と書かれている関数を指定して「Tab」を押しましょう

「Enter」ではありません!「Tab」です

①数値の指定

=RANK(数値,参照,[順序])

ランキングを求めたい数値を指定します

もちろん「数値」を指定しなければいけません

RANK関数の数値

②参照の指定(※注意)

=RANK(数値,参照,[順序])

続いて「ランキングに含める範囲」を指定します

これが意外と重要で、5つのセルを指定すれば「1位~5位」まで並ぶことになります

RANK関数の参照

ここでは必ず「絶対参照」を付けましょう(F4を押す)

「絶対参照」について不安な方はこちらをご覧ください

world map 絶対参照・相対参照を分かりやすく解説しています|意外と知らないエクセルの基礎
絶対参照を付けないと…!?

2つ目の参照部分に絶対参照を付けないと

ランキングを付ける範囲がずれてしまうので要注意です

③順序を指定する(省略OK)

=RANK(数値,参照,[順序])

最後に順序を指定します

何も設定しないと「降順:大きい順」になります

ここを「1」と指定すると「昇順:小さい順」で順位付けされます

RANK関数の結果

同じ順位を存在させないようにする方法

「RANK関数」では同率順位を許しています

つまり「2位が2人存在」することが当たり前ということ

しかしVLOOKUP関数で使いたい時など、

同じ順位を存在させない」ようにする方法もあります

同一順位の取り扱い

COUNTIF関数を組み合わせた応用

同じ順位を存在させない」ようにするためには

RANK関数」+「COUNTIF関数」を組み合わせます

まず「上に同じ点数があるか探してカウントする」関数を設定します

COUNTIF関数とRANK関数の組み合わせ

2つ目に出てくる「90点」は同じ順位があるため「2」になります

※RANK関数と組み合わせる時に「-1」します

非常に分かりにくい設定ですが、このように設定してください

COUNTIF関数とRANK関数の組み合わせ

=COUNTIF($セル:セル,セル)

COUNTIF関数の範囲を「C3:C3」、検索条件を「C3」とします

※範囲に(:)コロンを設定すると「●●から●●まで」という指定になります

そして範囲指定の「1つ目だけに絶対参照」を付けます

RANK関数に組み込む

設定したCOUNTIF関数をRANK関数に組み込みます

構図としては下記のような関数になります

=RANK関数+COUNTIF関数-1

COUNTIF関数」は上記で設定したものに「-1」をすると

同順位が被った場合に「+1」となる設定になります

COUNTIF関数とRANK関数の組み合わせ

まとめ

今回は「RANK関数」についてご紹介してきました

RANK.EQ関数」「RANK.AVG関数」とありますが

方針通り「RANK関数」を使ってみてください

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です