スプレッドシートのPERCENTRANK.INC関数の使い方|パーセント順位(0,1含む)

スポンサーリンク

「データの中で、この値って全体の何%くらいの位置なんだろう?」。スプレッドシートで売上や成績を分析していると、こんな疑問が出てきますよね。

RANK関数で順位はわかっても、「上位何%か」はすぐにはわかりません。データの件数が変わるたびに計算し直すのも面倒です。

そんなときに使うのがスプレッドシートのPERCENTRANK.INC関数です。この記事では基本の書き方から実務での活用例まで解説します。PERCENTRANK関数との関係やPERCENTRANK.EXCとの違いもあわせて整理しました。

PERCENTRANK.INC関数とは?スプレッドシートでパーセント順位を返す関数

PERCENTRANK.INC関数(読み方: パーセントランク・インクルーシブ)は、データセットの中で指定した値が何%の位置にあるかを返す関数です。

INCは「Inclusive(包括的)」の略です。戻り値の範囲に0と1を含むのが特徴です。最小値は0、最大値は1を返します。

たとえば結果が0.75なら「下から75%の位置にある」という意味です。0なら最下位、1なら最上位です。

PERCENTRANK.INC関数にできることをまとめると、次のとおりです。

  • データの中で値が何%の位置にあるかを求める(0と1を含む)
  • 売上や成績の相対的な位置づけを数値で把握する
  • PERCENTILE.INC関数と対で使って値とパーセントを相互変換する
  • RANK.EQ関数では表せない「割合ベースの順位」を出す

NOTE

PERCENTRANK.INC関数はGoogleスプレッドシートとExcel(2010以降)で使えます。Excelとの互換性も問題ありません。

PERCENTRANK.INC関数の書き方(構文と引数)

基本構文

=PERCENTRANK.INC(データ, 値, [有効桁数])

引数の説明

引数必須/任意説明
データ必須パーセント順位を求める対象のセル範囲または配列
必須順位を調べたい数値
有効桁数任意戻り値の有効桁数。省略すると3(小数第3位まで)

引数の構成はPERCENTRANK関数とまったく同じです。実は、PERCENTRANK.INC関数はPERCENTRANK関数の後継として作られた関数です。結果もまったく同じになりますよ。

TIP

有効桁数は省略すると3桁です。データ件数が多いときは5〜6を指定すると、より細かい順位の差がわかります。

PERCENTRANK.INC関数の基本的な使い方

以下の売上データでPERCENTRANK.INC関数を使ってみましょう。

B2からB11に10人分の売上データが入っているとします。

 A列(担当者)B列(売上)
2行目田中120
3行目鈴木85
4行目佐藤200
5行目山田150
6行目高橋95
7行目伊藤180
8行目渡辺110
9行目中村130
10行目小林160
11行目加藤140

各担当者のパーセント順位を求める

C2セルに以下の数式を入力します。

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

範囲を絶対参照($B$2:$B$11)にして、下にコピーしましょう。結果は以下のとおりです。

担当者売上パーセント順位意味
田中1200.333下から33.3%の位置
鈴木850最小値なので0(最下位)
佐藤2001最大値なので1(最上位)
山田1500.666下から66.6%の位置
高橋950.111下から11.1%の位置
伊藤1800.888下から88.8%の位置
渡辺1100.222下から22.2%の位置
中村1300.444下から44.4%の位置
小林1600.777下から77.7%の位置
加藤1400.555下から55.5%の位置

注目すべきポイントは2つあります。鈴木(最小値85)のパーセント順位が0になっています。佐藤(最大値200)は1です。これがINC(包括的)の特徴で、0と1を含む範囲で結果を返します。

計算のしくみ

PERCENTRANK.INC関数の計算式は (その値の昇順順位 - 1) / (データ件数 - 1) です。10件のデータなら分母は9になります。

  • 最小値(85): (1 – 1) / 9 = 0
  • 2番目(95): (2 – 1) / 9 = 0.111
  • 5番目(130): (5 – 1) / 9 = 0.444
  • 最大値(200): (10 – 1) / 9 = 1

分子が「順位 – 1」、分母が「データ件数 – 1」なので、最小値は必ず0、最大値は必ず1になるしくみです。

有効桁数を変えてみる

第3引数で結果の精度を変えられます。

=PERCENTRANK.INC($B$2:$B$11, B9, 1)   → 0.4
=PERCENTRANK.INC($B$2:$B$11, B9, 3)   → 0.444(デフォルト)
=PERCENTRANK.INC($B$2:$B$11, B9, 6)   → 0.444444

データ件数が多いときは桁数を増やすと、順位の差がより正確に見えますよ。

PERCENTRANK.INC関数の実践的な使い方・応用例

売上データをパーセンタイルでランク分けする

パーセント順位をもとに、売上をS〜Dの5段階で評価してみましょう。IF関数と組み合わせます。

=IF(PERCENTRANK.INC($B$2:$B$11, B2)>=0.8, "S",
 IF(PERCENTRANK.INC($B$2:$B$11, B2)>=0.6, "A",
 IF(PERCENTRANK.INC($B$2:$B$11, B2)>=0.4, "B",
 IF(PERCENTRANK.INC($B$2:$B$11, B2)>=0.2, "C", "D"))))

結果が0.8以上なら「S」、0.6以上なら「A」のように判定できます。RANK.EQ関数は人数が変わると基準の見直しが必要ですが、パーセント順位なら割合ベースなのでデータ件数に左右されません。

データ範囲にない値のパーセント順位を求める

PERCENTRANK.INC関数はデータ範囲内であれば、データに含まれない値も線形補間で計算できます。

=PERCENTRANK.INC(B2:B11, 100)

データ {85, 95, 110, …} の中に100はありませんが、95と110の間で補間されて結果が返ります。「もし売上が100万円だったら全体の何%の位置か」といった仮定の計算に使えますよ。

PERCENTILE.INC関数と組み合わせる

PERCENTRANK.INC関数とPERCENTILE.INC関数は入力と出力が逆の関係です。

=PERCENTILE.INC(B2:B11, 0.75)    → 165(75パーセンタイルの値)
=PERCENTRANK.INC(B2:B11, 165)    → 0.75(値165のパーセント順位)

INC同士で組み合わせると結果が正確に一致します。EXCとINCを混ぜると値がずれるので注意してください。

組み合わせ整合性
PERCENTRANK.INC + PERCENTILE.INC一致する
PERCENTRANK.INC + PERCENTILE.EXCずれる
PERCENTRANK.EXC関数 + PERCENTILE.EXC一致する

PERCENTRANK.INCとPERCENTRANK.EXCの違い

PERCENTRANK.INC関数とPERCENTRANK.EXC関数の最大の違いは、戻り値に0と1を含むかどうかです。

比較表

項目PERCENTRANK.INCPERCENTRANK.EXC
戻り値の範囲0〜1(端点を含む)0より大〜1より小(端点を含まない)
最小値の結果01/(N+1)
最大値の結果1N/(N+1)
計算式の分母N-1(データ件数-1)N+1(データ件数+1)
INCの意味Inclusive(包括的)Exclusive(排他的)
NORM.S.INVとの併用端点で#NUM!エラーエラーなし

10件のデータで結果を比べる

先ほどの売上データ(10人分)で、両関数の結果を並べてみましょう。

担当者売上PERCENTRANK.INCPERCENTRANK.EXC
鈴木8500.090+0.090
高橋950.1110.181+0.070
渡辺1100.2220.272+0.050
田中1200.3330.363+0.030
中村1300.4440.454+0.010
加藤1400.5550.545-0.010
山田1500.6660.636-0.030
小林1600.7770.727-0.050
伊藤1800.8880.818-0.070
佐藤20010.909-0.091

端に近いほど差が大きく、中央付近ではほぼ同じ値になります。データ件数が増えるほど両者の差は小さくなりますよ。

どちらを使うべき?

使い分けの目安は以下のとおりです。

  • PERCENTRANK.INC関数: 売上ランキング、成績の相対評価など通常の業務用途。直感的にわかりやすい
  • PERCENTRANK.EXC関数: 偏差値計算やNORM.S.INV(正規分布の逆関数)との組み合わせ

迷ったらPERCENTRANK.INC関数を使えば大丈夫です。0と1が含まれるので「最下位=0%、最上位=100%」と直感的に理解できます。

PERCENTRANK.INC関数とPERCENTRANK関数の関係

PERCENTRANK.INC関数は、PERCENTRANK関数の後継関数です。結果はまったく同じになります。

=PERCENTRANK(B2:B11, B2)       → 0.333
=PERCENTRANK.INC(B2:B11, B2)   → 0.333

どちらを使っても構いませんが、新しく数式を書くときはPERCENTRANK.INC関数がおすすめです。INC(包括的)とEXC(排他的)のどちらを使っているか、関数名だけで判断できるためです。

PERCENTRANK関数の記事で基本的な使い方を詳しく解説しているので、あわせて参考にしてみてください。

よくあるエラーと対処法

#N/Aエラー

PERCENTRANK.INC関数で最もよく見るエラーです。

原因対策
値がデータ範囲の最小値〜最大値の範囲外範囲内の値を指定する
データ範囲に数値が1つもない数値が入った範囲を指定する

データが {85, 95, 110} のとき、値に200を指定すると#N/Aになります。データ範囲外の値は処理できないので注意してください。

TIP

IFERROR関数で囲めばエラーを回避できます。=IFERROR(PERCENTRANK.INC(B2:B11, B2), "範囲外") のように書くと安心ですよ。

#NUM!エラー

以下の場合に発生します。

  • 有効桁数に1未満の値(0やマイナス)を指定した
  • データ範囲が空(数値が1つもない)

有効桁数は1以上の整数を指定してください。

#VALUE!エラー

引数に文字列を指定すると発生します。値や有効桁数には数値を入力しましょう。

まとめ

PERCENTRANK.INC関数は、データセットの中で値が何%の位置にあるかを0と1を含む範囲で返す関数です。

この記事のポイント

  • 構文は =PERCENTRANK.INC(データ, 値, [有効桁数]) の3引数
  • 戻り値は0〜1の範囲(包括的)で、最小値=0、最大値=1
  • 計算式は (昇順順位 - 1) / (データ件数 - 1) で0と1を含む
  • PERCENTRANK関数と結果は同じ(INCは後継関数の正式名)
  • PERCENTRANK.EXC関数との違いは端点(0と1)を含むかどうか
  • PERCENTILE.INC関数と対で使うと結果が正確に一致する

関連する統計関数

PERCENTRANK.INC関数の使い方がわかったら、以下の関数もあわせて覚えてみてください。データ分析の幅が広がりますよ。

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