Excel。上位80%を合格と判定させたいけど、RANK.EQ関数では歯が立たない
<PERCENTRANK.INC関数>
ちょっとしたご質問で、RANK.EQ関数って何でも順番が出せるものではないのですね?
とお話をいただきまして、どのようなケースなのかな?と詳しく聞いてみたら、
全体の上位80%を合格としたいので、表を作ってRANK.EQ関数を使ってみたけれど、
ただ順位が算出されただけで、うまくいかなかったそうです。
確かに、RANK.EQ関数は順位を算出するだけですからね。
例えば下記のような表で考えてみましょう。
まずは、RANK.EQ関数ではダメな事を確認してみましょう。
C3をクリックして、RANK.EQ関数ダイアログボックスを表示してみましょう。
数値は、内藤さんの点数で、B3 を入力します。
参照は、全体のうちの何番目か?ということを聞きますので、$B$3:$B$15
オートフィルハンドルを使って、下方向に数式をコピーしますので、
絶対参照を忘れないようにしましょう。
順序は、省略できますが、0(ゼロ)を入力して、OKボタンをクリックしましょう。
すると、順位が算出されますので、オートフィルハンドルを使って、
数式を下方向にコピーしましょう。
順位は算出できましたけど…
今回やりたいのは、上位80%の人を合格と判定したいわけですから、
これではどうするもこうするもありません。
そこで登場するのが、PERCENTRANK.INC関数という、
データの順位をパーセント求めてくれる関数を使って算出してみたいと思います。
では、改めてC3を削除して、クリックし、
PERCENTRANK.INC関数ダイアログボックスを表示しましょう。
配列には、全体の範囲になりますから、$B$3:$B$15
ここも、絶対参照を忘れないようにしましょう。
Xには、B3 と入力します。B3が全体でどうなのかを求めるためです。
有効桁数は、省略します。例えば小数点第2位まででしたら、2と入力します。
あとは、OKボタンをクリックしましょう。
算出されますので、オートフィルハンドルを使って、数式をコピーしましょう。
C3の数式は
=PERCENTRANK.INC($B$3:$B$15,B3)
すると、田端さんが1位で、最下位の神田さんが0(ゼロ)と算出されております。
この結果を使って、上位から80%の人を合格にしたいので、
20%すなわち、0.2以上なら合格とすれば、いいわけですから、
C3の数式をIF+ PERCENTRANK.INC関数にすれば、
上位80%の人を合格と判定することが出来るわけですね。
では、C3をクリックして削除して、IF関数ダイアログボックスを表示しましょう。
先に、真の場合と偽の場合を入力して、そのあと論理式を作っていくことにしましょう。
真の場合は、”合格”
偽の場合は、””
と入力しましょう。
では、論理式ですが、先程作ったPERCENTRANK.INC関数を作っていきます。
先程と同じですので、作り方自体は省略して、
論理式には、
PERCENTRANK.INC($B$3:$B$15,B3)>=20%
と入力しましょう。あとは、OKボタンをクリックして、オートフィルハンドルを使って、数式をコピーしましょう。
このように計算式を作ってあげると、上位80%の人を合格と判断することができますよ。
なかなか、使用頻度が少ない関数ではありますが、
PERCENTRANK.INC関数。面白い関数ですよ。