順位を求めるRANK関数はある別の関数で代用できる!

エクセルで順位付けをするときに使う関数として、RANK関数というものがあります。

しかし、もしRANK関数が使えない状況になったら・・・?

(いや、そんなことはないんですけどね(笑))

ということで、このページでは、RANK関数の代わりとなる関数をご紹介したいと思います。

こんなときにためセル!

そもそもRANK関数があるのに、なぜ、別の関数で順位を求めなければいけないのでしょうか。

それは、RANK関数では求めることができない順位があるからです。

例えば次のような表があったとします。

サンプルデータ

この表には「所属内順位」という項目があります。これは、例えば、「中部支社」の中だけで順位を出したり、「本社」だけで順位を出したいということですが、所属内順位はどうやって出したらいいでしょうか。

しかし、RANK関数では、このように条件が付いた順位を求めることはできないのです。

条件を付けてグループ内順位を出したい! RANKIFの代わりになる意外な関数とは?
条件を付けて順位を求めたい場合、RANKIF関数を使いそうですが、エクセルにはRANKIF関数はありません。しかし別の関数を応用することで、条件付きの条件を求めることができます。このページでは、条件付きで順位を求める方法をご紹介します。

そこで、今回は上のページを読む前に基礎知識としてRANK関数の代わりになる関数について解説します。

RANK関数の意味を考えてみる

RANK関数は何をする関数かというと、指定した範囲の中での順位をつけてくれる関数です。

順位は、順位を知りたい数値より大きい数値(または小さい数値)が何個あるかを数えて、出てきた個数に1を加えれば求めることができます。

数を数えて1を加えれば順位が求まる

順位を知りたい数値より大きい数値(小さい数値)の個数を数えればいいということは、あの関数が使えそうですね!

・・・

そう!COUNTIF関数です!

COUNTIF関数がRANK関数の代わりになる!?

COUNTIF関数で順位を数えるには次のように入力します。

【大きい順に順位を出す場合】
COUNTIF(全体の範囲 , “>”&順位を調べたい数値)+1
【小さい順に順位を出す場合】
COUNTIF(全体の範囲 , “<”&順位を調べたい数値)+1

COUNTIF関数で、ある数値より大きい数値を数えたいときは、その数値の前に「”>”&」をつければ数えることができます。逆に小さい数値を数えたいときは「”<“&」をつけます。

先ほどの考え方で行けば、これで順位を求めることができそうですが、本当にRANK関数の代わりになるのか、実際にタメしてみましょう。

下図のようにサンプルデータを用意しました。

今回タメす表

まずは、C列にRANK関数で計算した順位を出してみます。

ふつうにRANK関数で計算してみる

それぞれの順位が出ましたね。

それでは、D列にはCOUNTIF関数を使って順位を出してみましょう。

COUNTIF関数で順位を出してみる

見事にRANK関数で出した順位と一致していますね!

すべて一致している

特に、りんごとなしの値段が同じ数値になっていますが、COUNTIF関数を使った場合でもきちんと「4」という順位が返っています。

同点でもOK

また、同点の次の順位は「5」ではなく、ちゃんと「6」になっています。

同点の次も大丈夫

つまり、同点を含む場合でもCOUNTIF関数で大丈夫ということです。

まとめ

これまで見てきたように、RANK関数はCOUNTIF関数で代用することができます。

でも、わざわざCOUNTIF関数を使う理由がわかりませんよね。

通常は使わないかもしれませんが、COUNTIF関数でも順位を求めることができるという知識があれば、最初に紹介したような条件付きの順位を求めたりと、応用した使い方が見つかるかもしれません。

条件を付けてグループ内順位を出したい! RANKIFの代わりになる意外な関数とは?
条件を付けて順位を求めたい場合、RANKIF関数を使いそうですが、エクセルにはRANKIF関数はありません。しかし別の関数を応用することで、条件付きの条件を求めることができます。このページでは、条件付きで順位を求める方法をご紹介します。

以上、このページでは、RANK関数はCOUNTIF関数で代用できる!ということをご紹介しました。