条件を付けてグループ内順位を出したい! RANKIFの代わりになる意外な関数とは?

―条件を付けて順位を出したい―

そう思ったことはありませんか?

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

サンプルデータ

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

RANKIF関数を使えばできそうですよね。

しかし、残念ながら、エクセルにはRANKIF関数というものはありません。

ありそうですが、ないのです。

でも、大丈夫!

RANKIF関数という「ズバリ!」のものはありませんが、条件を付けて順位を出すことはできます。しかも、今回ご紹介する方法を使えば、複数の条件でも設定することができるんです。

ということでこのページでは、条件を付けて順位を出す方法についてご紹介します。

スグにためセル! – ここを読めばすぐ使える

【大きい順に順位を出す場合】
COUNTIFS(全体の範囲 , “>”&順位を調べる数値 , 条件範囲1 , 条件1 , ・・・)+1【小さい順に順位を出す場合】
COUNTIFS(全体の範囲 , “<“&順位を調べる数値 , 条件範囲1 , 条件1 , ・・・)+1
※大小の記号(<、>)が異なることに注意。

各要素の説明
全体の範囲 順位を調べる数値と順位を比較するセルの範囲
順位を調べる数値 全体の範囲の中で何番目に位置するのかを調べたい数値
条件範囲1 条件1を満たしているかどうか確認するセルの範囲
条件1 順位の比較対象とする条件
※ より詳しい解説はここから下に続きます。
スポンサーリンク

RANKIFはCOUNTIFSで計算できる!

エクセルには、RANKIF関数はありませんが、今回やりたいことは「条件を付けて順位をつける」ということです。

順位をつけるということは、調べたい数値が上から何番目か(下から何番目か)を確認するということです。

つまり、調べたい数値より大きい(小さい)数値が何個あるか数えて、その個数に1を足したのが順位ということになります。

調べたい数値より大きい(小さい)数値が何個あるか数える関数といえば、COUNTIF関数があります。

そう、RANK関数はCOUNTIF関数で代用できるんです。

RANK関数はCOUNTIF関数で代用できる

順位を求めるRANK関数はある別の関数で代用できる!
順位を求めるときに使用するRANK関数。実は、ある関数でも順位を求めることができるんです。 このページでは、ちょっとした小ネタとしてRANK関数の代わりになる関数をご紹介します。

今回は、さらに条件を付けて順位を調べたいので、COUNTIF関数の条件を増やせばいいということになります。

条件の増えたCOUNTIF関数といえば・・・COUNTIFS関数ですね!

ということで、条件付きで順位を求めたい場合は、COUNTIFS関数が使えるのです。

実際にタメしてみる

下記のような表をサンプルとして条件付きの順位を求めてみましょう。

サンプルデータ

この表は、ある会社の個人の売り上げを示したものです。

この会社は「本社」「中部支社」「大阪支社」があり、A列にそれぞれの所属が表示されています。

それでは、会社全体での総合順位をD列に計算してみましょう。

これはふつうにRANK関数で求めることができますね。

D2セル=RANK(C2 , C2:C16

D列はふつうのRANK関数

それでは、E列に所属内順位を計算してみましょう。

所属内順位は、ある所属の中での順位を求めるわけですから、今回ご紹介した条件の付き順位の計算になります。

今回は大きい順に順位を出したいので、関数は次のような形になります。

【大きい順に順位を出す場合】
COUNTIFS(全体の範囲 , “>”&順位を調べる数値 , 条件範囲1 , 条件1 , ・・・)+1

ということで、E2セルに次のように入力しましょう。

E2セル=COUNTIFS(C2:C16 , “>”&C2 , A2:A16 , A2)+1

全体の範囲は、売上の範囲なのでC2:C16順位を調べる数値は個人の売上なのでC2となります。

そして、今回の条件は「所属が同じ人同士であること」なので、条件範囲1には所属の範囲となるA2:A16を、条件1には自分の所属となるA2を入力します。

COUNTIFSを入力

これで、同じ所属の人の中での売上の順位を計算することができます。

計算の仕組みを確認してみよう

この計算式を入力することで、どのように所属内順位が計算されているのか、先ほど表のE5セルの数式を例にとってゆっくり見ていきましょう。

E5セル=COUNTIFS(C2:C16 , “>”&C5 , A2:A16 , A5)+1

今、C5セルには「290,583」が入力されていますので、「”>”&C5」の部分は「>290,583」となります。

これは、290583より大きいものという意味です。C2:C16の範囲の中でこの条件を満たすものを数えると9つありますね。

290583より大きいもの

また、A5セルには「大阪支社」が入力されていますので、A2:A16の範囲の中で「大阪支社」となっているものを数えると7つあります。

大阪支社のもの

COUNTIFS関数では、両方の条件を満たすものの数を数える関数ですので、両方の条件を満たすものを数えると4つあることがわかります。

両方を満たすもの

最後に、COUNTIFSの答えである4に1を加えた5がE5セルの答えとして導き出されるわけです。

こうして、COUNTIFS関数を用いることが、条件付きで順位を求めることになるのです。

こんなときはためセナイ・・・

こんな便利なCOUNTIFSですが、Excel2007からの新関数となっています。

そのため、Excel2003などの古いExcelでは使用できませんので、ご注意ください。

まとめ

条件を付けて順位を求めたい場合、RANKIF関数を使いそうですが、エクセルにはRANKIF関数はありません。

代わりにCOUNTIFS関数を用いることで、条件付きの順位を求めることができます。

このページでは、条件を付けて順位を出したい!方のために、RANKIF関数に代わる関数としてCOUNTIFS関数の活用をご紹介しました。