Excelで百分率の順位を求める方法!PERCENTRANK関数で上位何%かを出す手順!

Excelで百分率の順位を求める方法!PERCENTRANK関数で上位何%かを出す手順
Excelでテストや成績の「上位何%か」を出したいときはないでしょうか。

けど、そんな中で悩むことは、

・順位は出せても「上位何%か」がわからない
・10人中4位と、100人中4位では意味が違うと感じる
・人数が違う集団を同じ基準でくらべたい

ですよね。

今回はそんなお悩みを解決する

・Excelで百分率の順位(パーセンタイル)を求める方法(PERCENTRANK.INC/PERCENTRANK.EXC関数)

についてまとめます!

完成イメージ

順位は「何位か」しか分からないため、10人中の4位と100人中の4位を同じ感覚で見てしまうことがあります。
今回は
・点数が全体のどのあたりにあるかを「百分率(%)」で表す方法(=PERCENTRANK.INC(範囲, 値))
をゴールにします。
0〜100%の数値で表せるので、人数が違うテストや集団でも同じ基準でくらべられます。

なお、PERCENTRANK.EXCとの違いやRANK関数との使い分け、QUARTILEで4分位を出す方法、うまくいかないときの対処法(トラブルシュート)もあわせてご紹介します。
早速実装して試してみましょう!
完成イメージ(百分率の順位を求めた結果)
上の画像が完成形です。点数に対して百分率の順位が0〜100%で表示され、上位何%かも一目で分かります。

STEP1. 元データを用意する

まずは百分率の順位を出したいテスト結果を用意します。
A列が氏名、B列が点数の、10人分のデータです。
C列から右は、これから百分率や順位を入れるための空の列です。
今回はこの10人の中で、各自の点数がどのあたりにあるかを求めていきます。
サンプルのテスト結果

下の表をコピーして、Excelのシートに貼り付けるとそのまま試せます。

氏名 点数 百分率順位(INC) 百分率順位(EXC) 順位(RANK) 上位何%
佐藤 85
鈴木 72
高橋 91
田中 68
伊藤 78
渡辺 95
山本 60
中村 83
小林 88
加藤 75

※ 数式で求める列は空にしています。すでに値が入っている列はそのまま残して試せます。

STEP2. PERCENTRANK.INC関数で百分率の順位を出す

まずは百分率の順位(パーセンタイル)を出します。
C2セルに次の式を入力しましょう。

=PERCENTRANK.INC($B$2:$B$11, B2)

第1引数が点数の範囲、第2引数が「順位を調べたい値」です。
佐藤さんの85点が、全体のどのあたりかを0〜1の数値で返します。
あとはC11までコピーすれば、全員分の百分率の順位が入ります。
範囲を $B$2:$B$11 と絶対参照にするのがポイントです。
ここさえ押さえれば、あとはコピーするだけなのでカンタンですね。
PERCENTRANK.INCで百分率の順位を出した状態

数式はどのセルに入れる?

セルを選んで、数式バーにそのまま入力するだけです。
実際の入力画面がこちらです。
入力中は引数のヒントが表示されるので、順番を確認しながら進められます。
PERCENTRANK.INCの入力画面

STEP3. PERCENTRANK.EXC関数との違いを知る

PERCENTRANKには .INC と .EXC の2種類があります。
D2セルに次の式を入力し、D11までコピーしてみましょう。

=PERCENTRANK.EXC($B$2:$B$11, B2)

すると、同じ85点でもINCが 66.6%、EXCが 63.6% と少し違う値になりました。

INCとEXCで値が変わる比較(66.6%と63.6%)
違いは「全体を0〜100%に含めるかどうか」です。
INCは最小値を0%、最大値を100%に含めます。
EXCは端の値を含めないため、0%や100%ちょうどにはなりません。

.INCと.EXCの比較

関数 意味 佐藤さん(85点)
PERCENTRANK.INC 範囲を含めた百分率順位(0〜1) 66.6%
PERCENTRANK.EXC 範囲を含めない百分率順位(0と1を除く) 63.6%

迷ったら、一般的な百分率順位を表す INC を使っておけば問題ありません。
PERCENTRANK.EXCも加えた状態

STEP4. RANK関数との違いを押さえる

似た役割に RANK関数 があります。
E2セルに次の式を入力し、E11までコピーしましょう。

=RANK(B2, $B$2:$B$11, 0)

最後の 0 は「大きい順(降順)で順位を出す」という意味です。
すると佐藤さんは 4位 と表示されました。

RANK関数の結果(佐藤さんは4位)
RANKは「何位か」という順番だけを返し、PERCENTRANKは「全体のどのあたりか(%)」を返します。
たとえば4位でも、10人中と100人中では価値が違います。
人数が違う集団と比べたいときは、百分率にできるPERCENTRANKが便利です。

関数 返すもの 例(85点)
RANK 順位(1,2,3…) 4位
PERCENTRANK.INC 百分率の順位(0〜1) 66.6%
POINT
百分率の順位は =PERCENTRANK.INC(範囲, 値) で求められます。
「上位何%か」を見たいときは =1-PERCENTRANK.INC(範囲, 値) とします。
順位だけなら RANK、集団の中での位置を比べるなら PERCENTRANK と使い分けましょう。
RANK関数で順位も出した状態

STEP5. 上位何%かを求める

「上位何%か」を知りたいときは、PERCENTRANKを 1から引くだけです。
F2セルに次の式を入力し、F11までコピーしましょう。

=1 - C2

C2は「その点数以下の割合」なので、1から引くと「それより上位の割合」になります。
佐藤さんは 33.4%、つまり全体の上位約3割に入っていることが分かりました。
テストの成績や営業の実績などで「上位何割に入ったか」を伝えたい場面で役立ちます。
上位何%かを出した状態

STEP6. QUARTILEで4分位を出す

集団を4等分して、どの層にいるかを知りたいときは QUARTILE.INC関数 が便利です。
H1セルに「四分位」、I1セルに「値」と見出しを付けます。
H2〜H4に「第1四分位(Q1)」「中央値(Q2)」「第3四分位(Q3)」と入力しましょう。
I2セルには次の式を入れます。

=QUARTILE.INC($B$2:$B$11, 1)

I3は第2引数を 2、I4は 3 に変えるだけです。
すると下位25%の境目、ちょうど真ん中、上位25%の境目がそれぞれ出ました。
自分の点数がQ1とQ3の間にあれば「真ん中あたり」、Q3を超えていれば「上位25%」と判断できます。
QUARTILE.INCで4分位を出した状態

VBAで百分率の順位をまとめて設定する

毎回セルに式を入れるのが面倒なときは、VBAで一括設定するのがおすすめです。
ボタン1つでC〜E列に式をまとめて入れられます。

Sub SetPercentRank()
    Dim r As Long
    For r = 2 To 11
        Cells(r, 3).Formula = "=PERCENTRANK.INC($B$2:$B$11,B" & r & ")"
        Cells(r, 4).Formula = "=PERCENTRANK.EXC($B$2:$B$11,B" & r & ")"
        Cells(r, 5).Formula = "=RANK(B" & r & ",$B$2:$B$11,0)"
    Next r
End Sub

タカヒロ

タカヒロ
PERCENTRANKは「割合」、RANKは「順位」と覚えると迷いません。
人数が違う集団をくらべたいときは、ぜひ百分率のほうを使ってみてくださいね。

うまくいかないときの対処法(トラブルシュート)

実際に試すと、思ったとおりに動かないこともあるかもしれません。
よくあるつまずきと対処法をまとめました。

症状 原因 対処
#N/A になる 値が範囲の中に見つからない 第2引数の値と、第1引数の範囲が同じ列を指しているか確認する
思った順位と違う RANK関数と混同している PERCENTRANKは0〜1の割合、RANKは1,2,3…の順位です
0.666のような小数で見にくい 表示形式が標準になっている セルの表示形式を 0.0% にする
100%や0%ちょうどにならない EXCを使っている 端の値を含めたいときは INC を使う
コピーしたら範囲がずれる 範囲が相対参照になっている $B$2:$B$11 のように絶対参照にする

関数の説明

今回使う4つの関数をまとめます。

PERCENTRANK.INC関数(パーセントランク・インクルーシブ)

書式 =PERCENTRANK.INC(配列, 値, [有効桁数])
できること 指定した範囲の中で、ある値が下から何割の位置にあるかを0〜1の数値で返します。
戻り値 百分率の順位(0〜1の数値。最大値は1、最小値は0)
こんなときに 人数が違う集団の中での位置を、%で比べたいとき。
注意 返すのは割合で、順位(何位か)ではありません。順位はRANK関数を使います。既定の有効桁数は3桁なので、細かく出したいときは第3引数を大きくしてください。

PERCENTRANK.EXC関数(パーセントランク・エクスクルーシブ)

書式 =PERCENTRANK.EXC(配列, 値, [有効桁数])
できること 範囲の端を含めずに、百分率の順位を0〜1で返します。
戻り値 百分率の順位(0と1を含まない数値)
こんなときに 端の値を避けて、より内側の割合で評価したいとき。
注意 最小値でも0%にならず、最大値でも100%になりません。

RANK関数(ランク)

書式 =RANK(数値, 範囲, [順序])
できること 範囲の中で、その数値が何番目に大きい(小さい)かを順位で返します。
戻り値 順位(1,2,3…の整数)
こんなときに 全体の中で何位かを、そのまま順位で知りたいとき。
注意 順序を省略すると降順(大きいほど1位)です。0を指定しても降順になります。

QUARTILE.INC関数(クォータイル)

書式 =QUARTILE.INC(配列, 四分位数)
できること データを4等分する区切りの値を返します。
戻り値 第2引数 0=最小値/1=第1四分位/2=中央値/3=第3四分位/4=最大値
こんなときに 集団を上位25%・中間・下位25%に分けて評価したいとき。
注意 古いExcelでは QUARTILE という名前です。動作は同じです。
=QUARTILE.INC($B$2:$B$11, 1)

完成

点数に対して、百分率の順位が0〜100%で表示されました。
佐藤さんは 66.6%(上位33.4%)、いちばん高い渡辺さんは100%になっています。
順位のRANKと並べて見ると、順位と割合の違いもはっきり分かりますね。
人数が違う表でも、この割合さえ出せば同じ基準でくらべられます。
思ったとおりに動きましたか?
完成したテスト結果

さいごに

今回は、

・Excelで百分率の順位を求める方法(PERCENTRANK.INC/PERCENTRANK.EXC/RANK/QUARTILE.INC関数)

についてまとめました。

まずは今回のサンプル表で一度試してみましょう。
「順位」と「百分率」は似ているようで役割が違います。
人数が違う集団をくらべるときは、百分率の順位が役に立ちますよ。
また、他にも便利なExcelの時短テクニックがありますので、よろしければご参照頂ければと思います。



この記事の関連キーワード

こちらの記事の関連キーワード一覧です。クリックするとキーワードに関連する記事一覧が閲覧できます。






コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

CAPTCHA ImageChange Image