エクセルで順位付けをするときに使う関数として、RANK関数というものがあります。
しかし、もしRANK関数が使えない状況になったら・・・?
(いや、そんなことはないんですけどね(笑))
ということで、このページでは、RANK関数の代わりとなる関数をご紹介したいと思います。
スグにためセル! – ここを読めばすぐ使える
RANK関数はCOUNTIF関数で代用ができます。
【大きい順に順位を出す場合】
=COUNTIF(全体の範囲 , “>”&順位を調べたい数値)+1
【小さい順に順位を出す場合】
=COUNTIF(全体の範囲 , “<”&順位を調べたい数値)+1
※ より詳しい解説はここから下に続きます。
こんなときにためセル!
そもそもRANK関数があるのに、なぜ、別の関数で順位を求めなければいけないのでしょうか。
それは、RANK関数では求めることができない順位があるからです。
例えば次のような表があったとします。
この表には「所属内順位」という項目があります。これは、例えば、「中部支社」の中だけで順位を出したり、「本社」だけで順位を出したいということですが、所属内順位はどうやって出したらいいでしょうか。
しかし、RANK関数では、このように条件が付いた順位を求めることはできないのです。
そこで、今回は上のページを読む前に基礎知識としてRANK関数の代わりになる関数について解説します。
RANK関数の意味を考えてみる
RANK関数は何をする関数かというと、指定した範囲の中での順位をつけてくれる関数です。
順位は、順位を知りたい数値より大きい数値(または小さい数値)が何個あるかを数えて、出てきた個数に1を加えれば求めることができます。
順位を知りたい数値より大きい数値(小さい数値)の個数を数えればいいということは、あの関数が使えそうですね!
・・・
そう!COUNTIF関数です!
COUNTIF関数がRANK関数の代わりになる!?
COUNTIF関数で順位を数えるには次のように入力します。
【大きい順に順位を出す場合】
=COUNTIF(全体の範囲 , “>”&順位を調べたい数値)+1
【小さい順に順位を出す場合】
=COUNTIF(全体の範囲 , “<”&順位を調べたい数値)+1
COUNTIF関数で、ある数値より大きい数値を数えたいときは、その数値の前に「”>”&」をつければ数えることができます。逆に小さい数値を数えたいときは「”<“&」をつけます。
先ほどの考え方で行けば、これで順位を求めることができそうですが、本当にRANK関数の代わりになるのか、実際にタメしてみましょう。
下図のようにサンプルデータを用意しました。
まずは、C列にRANK関数で計算した順位を出してみます。
それぞれの順位が出ましたね。
それでは、D列にはCOUNTIF関数を使って順位を出してみましょう。
見事にRANK関数で出した順位と一致していますね!
特に、りんごとなしの値段が同じ数値になっていますが、COUNTIF関数を使った場合でもきちんと「4」という順位が返っています。
また、同点の次の順位は「5」ではなく、ちゃんと「6」になっています。
つまり、同点を含む場合でもCOUNTIF関数で大丈夫ということです。
まとめ
これまで見てきたように、RANK関数はCOUNTIF関数で代用することができます。
でも、わざわざCOUNTIF関数を使う理由がわかりませんよね。
通常は使わないかもしれませんが、COUNTIF関数でも順位を求めることができるという知識があれば、最初に紹介したような条件付きの順位を求めたりと、応用した使い方が見つかるかもしれません。
以上、このページでは、RANK関数はCOUNTIF関数で代用できる!ということをご紹介しました。