Excel。条件付き順位は発想を変えると簡単に算出することができます。
<COUNTIFS関数>
店舗番号順の売上表があります。
算出したいのは、E列の「地区別順位」です。
順位ということで、使う関数は、「RANK.EQ関数かな?」と思い浮かぶかもしれませんが、残念ながら、RANK.EQ関数は、全体の中で何番目というように、「全体の中」なので、今回のように、地区別順位。
つまり、条件付き順位は、算出することができません。
RANK.EQ関数をつかうとしたら、範囲選択を地区ごとに分けて行って、その範囲内で順位を算出するようになります。
地区ごとにまとまっていれば、まだ範囲選択はしやすいのですが、出店した順に店番が振られている場合などだと、範囲選択は非常に面倒になります。
面倒ということで、わざわざ、Excel VBAでマクロをつくるというのも、なんか割に合いません。
そこで、発想の転換。
そもそも順位というは、自分の数値より大きい数値の件数が何件あるのかがわかれば、算出することができます。
何件あるのか?ということなので、COUNTIFS関数をつかうことで、条件付き順位を算出することができるのです。
では、E2をクリックして、COUNTIFS関数をつかった数式をつくっていきましょう。
E2の数式は、
=COUNTIFS($C$2:$C$10,C2,$D$2:$D$10,">"&D2)+1
数式の説明はあとでするとして、まずは数式を確定して、結果を確認してみましょう。
このように、地区ごとに順位を算出することができました。
それでは、数式の引数を確認していきましょう。
=COUNTIFS($C$2:$C$10,C2,$D$2:$D$10,">"&D2)+1
検索条件範囲1は、地区の$C$2:$C$10。オートフィル機能で数式をコピーしますので、絶対参照で設定する必要があります。
検索条件1には、B2。
検索条件範囲2は、売上高の$D$2:$D$10。
こちらも絶対参照の設定を忘れずに行っていきましょう。
最後の、検索条件2ですが、「">"&D2」と設定します。
これは、D2:D10の範囲で、D2より大きい値がいくつあるのか確認しています。
さて、数式の最後尾に「+1」がされています。
これはなんなのかというと、「D2より大きい」という条件になっていますので、1番大きい値の場合、自分自身の値よりも大きい値はないわけですから、「0」と算出されてしまいます。
そのために「+1」することで、条件付き順位を算出できるというわけです。
順位をCOUNTIFS関数で算出できることを知っていれば、複数条件での順位を算出するなど、色々な角度から順位を算出することができるようになります。
例えば、全体では、順位が高い方だけど、地区内の順位だと、下の方ということも簡単に算出することができます。
日頃使っている資料などに、プラスしたりするといいかもしれませんね。