ExcelのPERCENTRANK.INC|百分位ランクの使い方

スポンサーリンク

PERCENTRANK.INC関数とは

「この売上データは全体の中でどれくらいの位置にあるんだろう?」
「テストの点数が上位何%に入るか、サッと確認したい…」

こんな場面で、手作業でデータを並べ替えて順位を計算していませんか。件数が増えるほど面倒ですし、ミスも出やすいですよね。

ExcelのPERCENTRANK.INC関数を使えば、数式ひとつでデータの百分位ランク(パーセント順位)を求められます。この記事では基本の書き方から実践例、似た関数との違いまで丁寧に解説します。

INCの意味(Inclusive=0と1を含む)

PERCENTRANK.INCの読み方は「パーセントランク・インク」です。INCは「Inclusive(包括的)」の略で、結果に0と1を含むという意味があります。

百分位ランクとは、データを小さい順に並べたとき「指定した値が下から何%の位置にあるか」を示す指標です。結果は0~1の小数で返されます。たとえば0.75なら「下から75%の位置」、つまり上位25%に相当します。

PERCENTRANK.INC関数はデータの最小値に対して0、最大値に対して1を返す点が特徴です。

旧PERCENTRANK関数との関係と互換性

Excel 2007以前には「PERCENTRANK」という関数がありました。PERCENTRANK.INC関数はExcel 2010で追加された後継関数です。

旧PERCENTRANK関数と計算結果は完全に一致します。つまり互換性は100%です。ただし旧関数はMicrosoftが非推奨としており、将来廃止されるリスクがあります。新しく数式を作るときはPERCENTRANK.INCを使いましょう。

対応バージョンはExcel 2010以降(Microsoft 365 / 2024 / 2021 / 2019 / 2016)です。

PERCENTRANK.INC関数の書き方と引数

基本構文

まずは基本の書き方を確認しましょう。

=PERCENTRANK.INC(array, x, [significance])

引数は3つあり、最初の2つが必須です。

引数必須/省略可説明
array必須百分位ランクを求めたいデータ範囲
x必須順位を調べたい値
significance省略可結果の有効桁数(省略時は3桁)

引数の詳細

array(データ範囲) には、数値データが入ったセル範囲を指定します。文字列や空白セルは無視されます。

x(値) には、データ範囲内の特定の値を指定します。範囲内に存在しない値でも、最小値と最大値の間であれば補間計算で結果を返します。

significance(有効桁数) は省略可能です。省略すると小数点以下3桁(0.xxx)で結果が返ります。たとえばsignificance=5と指定すれば、0.xxxxxのように5桁まで表示されます。

=PERCENTRANK.INC(A2:A11, 85)       → 0.666(3桁)
=PERCENTRANK.INC(A2:A11, 85, 5)    → 0.66666(5桁)

精度が必要な場面ではsignificanceを大きめに設定しておくと安心です。

PERCENTRANK.INC関数の使い方【実践5パターン】

売上データの百分位ランクを求める

営業チーム10人の月間売上データから、特定メンバーの百分位ランクを確認してみましょう。

セルA2:A11に売上データ{50, 60, 70, 80, 90, 100, 110, 120, 130, 140}(単位:万円)が入っているとします。B2に対象メンバーの売上(たとえば90万円)が入っている場合、次の数式を使います。

=PERCENTRANK.INC(A2:A11, B2)

結果は0.444です。つまり90万円は下から約44.4%の位置にあることがわかります。

計算の仕組みを確認しましょう。データを小さい順に並べると、90は5番目(0始まりで4番目)です。百分位ランク = 4 /(10 – 1)= 0.444…となります。

全員の百分位ランクを一括算出

各メンバーの百分位ランクを一覧で出したい場合は、B2に次の数式を入力してB11までコピーします。

=PERCENTRANK.INC($A$2:$A$11, A2)

データ範囲を絶対参照($A$2:$A$11)にするのがポイントです。こうすれば数式をコピーしてもデータ範囲がずれません。

売上(万円)百分位ランク
500(最小値)
600.111
700.222
800.333
900.444
1000.555
1100.666
1200.777
1300.888
1401(最大値)

最小値は0、最大値は1になっていますね。これがINC(Inclusive)の特徴です。

PERCENTILE.INCとの逆関数の関係を活用する

PERCENTRANK.INC関数とPERCENTILE.INC関数は逆関数の関係にあります。

  • PERCENTILE.INC: 百分位(0~1の値)を指定して、その位置にあるデータ値を返す
  • PERCENTRANK.INC: データ値を指定して、その値の百分位ランク(0~1の値)を返す

つまり、一方の出力をもう一方に入力すると元の値に戻ります。

=PERCENTILE.INC(A2:A11, PERCENTRANK.INC(A2:A11, 90))

この数式の結果は90になります。PERCENTRANK.INCで90の百分位ランクを求め、それをPERCENTILE.INCに渡して元の値に復元しているわけです。

この関係を理解しておくと、「値からランクを調べる」「ランクから値を調べる」を自在に切り替えられます。

IF関数と組み合わせて上位/下位を判定

PERCENTRANK.INC関数の結果を使って、データを「上位グループ」と「下位グループ」に分類してみましょう。

=IF(PERCENTRANK.INC($A$2:$A$11, A2) >= 0.75, "上位25%", "その他")

百分位ランクが0.75以上なら上位25%と判定します。

もう少し細かくランク分けしたい場合はIFS関数を使います。

=IFS(
  PERCENTRANK.INC($A$2:$A$11, A2) >= 0.9, "S",
  PERCENTRANK.INC($A$2:$A$11, A2) >= 0.75, "A",
  PERCENTRANK.INC($A$2:$A$11, A2) >= 0.5, "B",
  PERCENTRANK.INC($A$2:$A$11, A2) >= 0.25, "C",
  TRUE, "D"
)

ちょっと数式が長く見えますが、やっていることはシンプルです。上の条件から順にチェックして、最初に当てはまったランクを返しているだけですよ。

条件付き書式で上位をハイライト

PERCENTRANK.INC関数は条件付き書式のルールにも使えます。

  1. ハイライトしたいセル範囲(A2:A11)を選択
  2. 「ホーム」タブ →「条件付き書式」→「新しいルール」
  3. 「数式を使用して、書式設定するセルを決定」を選択
  4. 数式に =PERCENTRANK.INC($A$2:$A$11, A2) >= 0.75 と入力
  5. 書式で背景色を設定して「OK」

これで上位25%のデータが自動的にハイライトされます。データが変わっても基準が自動更新されるので、手作業でのメンテナンスが不要になります。

よくあるエラーと対処法

#N/Aエラー

PERCENTRANK.INC関数で最もよく見かけるのが#N/Aエラーです。

  • xがarrayの最小値未満または最大値超: データ範囲外の値を指定するとエラーになります。xがデータ範囲内にあるか確認してください

たとえばデータが{50, 60, 70, 80, 90}のとき、x=40やx=100を指定すると#N/Aエラーです。

=PERCENTRANK.INC(A2:A6, 40)   → #N/A(最小値50未満)
=PERCENTRANK.INC(A2:A6, 100)  → #N/A(最大値90超)

#NUM!エラー

arrayが空のとき(データが1件もない場合)に#NUM!エラーが発生します。対象範囲にデータが入っているか確認しましょう。

また、significance(有効桁数)に1未満の値を指定した場合もエラーになります。significanceは1以上の整数を指定してください。

エラーを事前に防ぐ方法

エラーが出る可能性があるセルにはIFERROR関数を組み合わせておくと安全です。

=IFERROR(PERCENTRANK.INC(A2:A11, B2), "範囲外の値です")

この書き方なら、エラー発生時にわかりやすいメッセージを表示できます。

似た関数との違い・使い分け

PERCENTRANK.INCとPERCENTRANK.EXCの違い

PERCENTRANK.INC関数とPERCENTRANK.EXC関数は、端点(0と1)を含むかどうかが異なります。

項目PERCENTRANK.INCPERCENTRANK.EXC
結果の範囲0 ≤ 結果 ≤ 10 < 結果 < 1
最小値の結果01/(n+1)
最大値の結果1n/(n+1)
計算式(分母)n – 1n + 1
Excel対応2010~(推奨)2010~

実際にデータ{10, 20, 30, 40, 50}(n=5)でx=10(最小値)の結果を比べてみましょう。

  • PERCENTRANK.INC: 0 /(5 – 1)= 0
  • PERCENTRANK.EXC: 1 /(5 + 1)= 0.166

INCでは最小値が0、最大値が1になりますが、EXCでは0と1にはなりません。

迷ったらPERCENTRANK.INC関数を選べばOKです。理由は3つあります。

  • 結果が0~1の範囲でわかりやすい
  • 旧PERCENTRANK関数と互換性がある
  • 一般的なビジネスシーンではINCの方が直感的

PERCENTRANK.EXC関数は、統計分野でn+1分割の計算方式が求められる場面で使います。

PERCENTRANK.INCとRANK系関数の違い

RANK.EQ関数RANK.AVG関数は「何位か」を整数で返しますが、PERCENTRANK.INC関数は「下から何%の位置か」を0~1の小数で返します。

項目PERCENTRANK.INCRANK.EQ / RANK.AVG
返す値百分位ランク(0~1の小数)順位(1, 2, 3…の整数)
データ数への依存割合なので比較しやすいデータ数が違うと比較しにくい
用途相対的な位置づけの把握何位かを知りたいとき

10人中3位と100人中30位は同じ位置づけですが、RANK関数だと「3」と「30」で数字が違います。PERCENTRANK.INC関数ならどちらも約0.77(上位約23%)と同じ値になるため、異なるデータセット間の比較に便利です。

PERCENTRANK.INCとPERCENTILE.INCの関係

PERCENTILE.INC関数はPERCENTRANK.INC関数の逆関数です。

関数入力出力
PERCENTRANK.INCデータ値 →百分位ランク(0~1)
PERCENTILE.INC百分位(0~1) →データ値

「値からランクを調べる」ときはPERCENTRANK.INC、「ランクから値を調べる」ときはPERCENTILE.INCと覚えておきましょう。

まとめ

PERCENTRANK.INC関数は「データの中で指定した値が下から何%の位置にあるか」を求める関数です。

ポイントを整理しておきましょう。

  • 構文は =PERCENTRANK.INC(array, x, [significance]) で、結果は0~1の小数で返る
  • INCは「Inclusive」の略で、最小値=0、最大値=1を含む点が特徴
  • 旧PERCENTRANK関数と完全互換だが、新規作成ではPERCENTRANK.INCを使う
  • PERCENTRANK.EXC関数とは分母が異なり、端点の扱いが変わる
  • PERCENTILE.INC関数とは逆関数の関係にある

営業成績の相対評価やテスト結果の位置づけ確認など、データの中での立ち位置を知りたい場面でぜひ活用してみてください。

Googleスプレッドシートでも同じ関数が使えます。詳しくはスプレッドシートのPERCENTRANK.INC関数の使い方の記事を参考にしてください。

タイトルとURLをコピーしました