- 公開日:
- 更新日:
ExcelのRANK関数の使い方|データの順位を求める
データの順位を求めるRANK関数を利用すれば、営業成績の個人ランキングや都道府県の人口ランキングを抽出できるのでとても便利です。
ここでは、RANK関数の使い方をご説明していきます。
RANK関数とは?
RANK関数の書式は、「数値・参照・順序」と3つから成り立っております。
数値で、順位付けしたいデータを指定し、参照は順位を求める範囲を指定し、最後に順序で大きい方から数えるのか小さい方から数えるのか指定できます。
早速1つ1つ見ていきましょう。
RANK関数の使い方
それではRANK関数の使い方を順を追って見ていきましょう。
RANK関数の書式

RANK関数の書式は、『=RANK(数値,参照,[順序])』となっており、最後の順序に関しては入力は任意となっております。
順序の値を入れない場合、大きい順から(降順で)順位を決めていきます。

順位を導き出すデータを参照して下さい。

順位を導き出す範囲を指定して下さい。

「0」もしくは「1」が指定可能です。「0」は大きいほうからの順(降順)省略可となっております。「1」は小さいほうからの順(昇順)となっており、昇順にしたい場合は「1」と指定して下さい。
RANK関数を使ってみる
日本の人口の県別ランキングをRANK関数で抽出してみたいと思います。

『=RANK(』と入力します。

順位を抽出したいデータを参照します。『C3』セルを参照しカンマで区切ります。

順位を導き出す範囲を指定するので、北海道~沖縄までの人口を範囲指定します。範囲を固定したいので$で絶対参照にしました。『$C$3:$C$49』を入力します。
ここまで入力できたら「順序」を指定しないのでEnterを押して確定します。

北海道の人口ランキングは8位です。【フィルハンドルをドラッグ】して、沖縄県まで反映させます。

他の県も反映されました。
順位を並べ替える
順位を人口の多い順に並び替えるにはフィルターを使いましょう。

①【項目を選択】し、②【ホーム】タブの③【並び替えとフィルター】の④【フィルター】を選択します。

順位の①【▼】を押し、②【昇順】を押します。

人口が多い順に並び替えられました。
同順位になってしまった場合

数値が同じ数の場合は、順位も同等のものになります。同順位もしっかりユニーク数値で順位付けしたい場合の対処法です。

COUNTIF関数で赤枠のように指定し、同じ数値をカウントしていきます。最後に「-1」することで、重複してなかったら「0」、重複していたら「1~」と表すことができます。

最後にC列のRANK関数と、D列のCOUNTIF関数を足し算すれば完成です。今回は説明のために別々に関数を記述しましたが、一つの数式で表しても問題ありません。
1位1位となっていたものが1位2位に、5位5位となっていたものが5位6位になりました。
空白の場合

順位を算出する値がないと、#N/Aエラーとなってしまいます。

その場合はIFERROR関数で、「エラーを吐き出されたら空白にする」指定をしましょう。
0を除く場合

データの中に「0」が存在していると、なぜか空白スペースに順位がついてしまいます。

その場合はIF関数を使って、「0の場合は空白にする」「それ以外はRANK関数を利用する」と指示をしてあげましょう。
すると、空白スペースの順位付けも解決されました。