【エクセル】Rank関数で同じ数値でも順位が進むようにした

はい、こんにちは。

今回は、
Rank関数について
です。

仕事でよく使われていると思いますが、かゆいところに手が届かないことって多いです。
実際に今日僕が困ったことを書いていきますね。
f:id:jinbarion7:20200715113922p:plain

 スポンサーリンク

 

Rank関数とは?

たぶん知っている人の方が多いかもしれませんし、イメージで想像できるかと思います。
そうです、
順位をつける関数
です。


=RANK(数値,参照,順序)
という式ですね。

f:id:jinbarion7:20200714172412p:plain
こういう表を作りたい!っていうときは、
D3セルに
f:id:jinbarion7:20200714172445p:plain
こういう式を入れればいいわけです。

これは基本的な考え方ですよね。


でも、
順位重複してほしくないんだよなぁ・・・・・・
と考えることもあると思います。
そういうときにランク関数だけではできないんです。

2つの方法があるので、どちらか好きな方を使っていただければと思いますよ!

 

Countif関数で解決!

そういうときには、

Countif関数を利用する

ことで、問題解決できます。

f:id:jinbarion7:20200715102016p:plain
重複が解消されていますね!
どういうからくりかと言いますと、

f:id:jinbarion7:20200715102058p:plain
前半はRank関数を入れればよいわけで、ポイントは+以降の部分です。

Countif関数で、そのセルまでに重複している個数を表示させるわけです。
=Countif(範囲,数値)
で重複している数値の個数を返してくれるという関数ですね。

日本語で説明すると、
Rank関数で出た数字に重複している個数から1引いた数を足す
ということです。


重複しているDさんのセルで見てみましょう。
f:id:jinbarion7:20200715102235p:plain
重要なのは絶対参照のつけ方。
始点を絶対参照することで、
「上のセルまでに重複した数」
を見ることができます。


オートフィルを使用したときにHさんであれば、
「AさんからHさんまでの重複個数」
を返せるところがポイントです。

これを利用するとE列に書かれている通り、重複の数値がCountif関数によってはじき出されます。

Rank関数で2位と判定されたDさんですが90点は2人いるので、Countif関数の計算上2と出てきます。

なので、
Rank関数「2」+Countif関数「2」-1=3位
という順位付けがされていく、というわけです。

上から順番に順位が高くなるので、高順位をつけたい場合は上に記載してみてください。





 

Row関数で解決!

2つ目の方法としては、

Row関数を利用する

ことで解決することができます。
f:id:jinbarion7:20200714173017p:plain

何をしたかというと、
f:id:jinbarion7:20200714173200p:plain
D3列にこういう式を入れたんです。

ROW関数というのは、
行を参照する関数
です。

f:id:jinbarion7:20200714173314p:plain
H3セルが、何行目にありますか?という関数です。
これを利用することで、Aくんの得点を、89点ではなく、
89点+行数/100000000点にしたわけです。
見た目は同じですが、当然数字が違うので、はっきりとした順位がわかるというわけですね。

f:id:jinbarion7:20200714173515p:plain
小数点まで表示させると、明確な違いによって、順位決めがされているというわけです。

この方法ですと、列を挿入して再計算しないといけませんので、挿入できる余裕がある場合に使ってもらえればと思います。

Row関数は下に行くほど数字が大きくなるので、Countif関数とは逆の上下関係になることを留意していただければと思います。

エクセルってすごく便利です。

関数を組み合わせることでもっともっと便利になるので、どんどん使っていって慣れていきましょうね!

 

 スポンサーリンク