10/15/2015

Excel。PERCENTRANK.INC。上位80%を合格と判定させたいけど、RANK.EQ関数では歯が立たない


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関数。面白い関数ですよ。