はい、こんにちは。
今回は、
Rank関数について
です。
仕事でよく使われていると思いますが、かゆいところに手が届かないことって多いです。
実際に今日僕が困ったことを書いていきますね。
スポンサーリンク
Rank関数とは?
たぶん知っている人の方が多いかもしれませんし、イメージで想像できるかと思います。
そうです、
順位をつける関数
です。
=RANK(数値,参照,順序)
という式ですね。
こういう表を作りたい!っていうときは、
D3セルに
こういう式を入れればいいわけです。
これは基本的な考え方ですよね。
でも、
順位重複してほしくないんだよなぁ・・・・・・
と考えることもあると思います。
そういうときにランク関数だけではできないんです。
2つの方法があるので、どちらか好きな方を使っていただければと思いますよ!
Countif関数で解決!
そういうときには、
Countif関数を利用する
ことで、問題解決できます。
重複が解消されていますね!
どういうからくりかと言いますと、
前半はRank関数を入れればよいわけで、ポイントは+以降の部分です。
Countif関数で、そのセルまでに重複している個数を表示させるわけです。
=Countif(範囲,数値)
で重複している数値の個数を返してくれるという関数ですね。
日本語で説明すると、
Rank関数で出た数字に重複している個数から1引いた数を足す
ということです。
重複しているDさんのセルで見てみましょう。
重要なのは絶対参照のつけ方。
始点を絶対参照することで、
「上のセルまでに重複した数」
を見ることができます。
オートフィルを使用したときにHさんであれば、
「AさんからHさんまでの重複個数」
を返せるところがポイントです。
これを利用するとE列に書かれている通り、重複の数値がCountif関数によってはじき出されます。
Rank関数で2位と判定されたDさんですが90点は2人いるので、Countif関数の計算上2と出てきます。
なので、
Rank関数「2」+Countif関数「2」-1=3位
という順位付けがされていく、というわけです。
上から順番に順位が高くなるので、高順位をつけたい場合は上に記載してみてください。
Row関数で解決!
2つ目の方法としては、
Row関数を利用する
ことで解決することができます。
何をしたかというと、
D3列にこういう式を入れたんです。
ROW関数というのは、
行を参照する関数
です。
H3セルが、何行目にありますか?という関数です。
これを利用することで、Aくんの得点を、89点ではなく、
89点+行数/100000000点にしたわけです。
見た目は同じですが、当然数字が違うので、はっきりとした順位がわかるというわけですね。
小数点まで表示させると、明確な違いによって、順位決めがされているというわけです。
この方法ですと、列を挿入して再計算しないといけませんので、挿入できる余裕がある場合に使ってもらえればと思います。
Row関数は下に行くほど数字が大きくなるので、Countif関数とは逆の上下関係になることを留意していただければと思います。
エクセルってすごく便利です。
関数を組み合わせることでもっともっと便利になるので、どんどん使っていって慣れていきましょうね!
スポンサーリンク