スプレッドシートのPERCENTRANK関数の使い方|パーセント順位を求める方法

スポンサーリンク

「この売上って、全体の中でどのくらいの位置なの?」。データを見ていて、こんな疑問が浮かぶことはありませんか?

RANK関数で順位はわかっても「上から何%の位置か」は一目ではわかりません。データの相対的な位置づけを把握したい場面は意外と多いですよね。

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

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

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

PERCENTは「百分率」、RANKは「順位」を意味します。つまり「百分率での順位」を求める関数です。

戻り値は0〜1の範囲です。0が最小値、1が最大値の位置を表します。たとえば結果が0.75なら「下から75%の位置(上位25%)」ということです。

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

  • データの中で値が何%の位置にあるかを求める
  • 売上や成績の相対的なポジションを把握する
  • 異なるスケールのデータを0〜1で正規化して比較する
  • PERCENTILE関数の逆方向の計算を行う

NOTE

PERCENTRANK関数はGoogleスプレッドシートの全バージョンで使えます。Excelとの互換性も問題ありません。

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

基本構文

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

引数の説明

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

第3引数の「有効桁数」は結果の精度を指定します。省略すると3桁です。たとえば本来の計算結果が0.55555…の場合、有効桁数3なら「0.555」が返ります。

TIP

有効桁数を大きくすると、より細かい順位の差がわかります。データ件数が多いときは5〜6を指定すると精度が上がりますよ。

PERCENTRANK関数の基本的な使い方

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

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($B$2:$B$11, B2)

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

担当者売上パーセント順位意味
田中1200.333下から33.3%の位置
鈴木850最下位(0%)
佐藤2001最上位(100%)
山田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%の位置

佐藤(売上200)のパーセント順位は1で最上位です。鈴木(売上85)は0で最下位です。

計算のしくみ

PERCENTRANK関数は、データを昇順に並べて各値の位置を0〜1にマッピングします。

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

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

値がデータセットに存在しない場合は、前後の値から線形補間で計算します。関数が自動で行うので、計算方法を覚える必要はありません。

有効桁数を変えてみる

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

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

有効桁数1だと大まかな位置、6だと細かい位置がわかります。

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

成績の相対評価に使う

テスト点数のパーセント順位を求めれば「クラス全体の中でどの位置か」がひと目でわかります。

=PERCENTRANK($B$2:$B$31, B2)

結果が0.8以上なら上位20%、0.5なら真ん中です。偏差値のようなイメージで成績を評価できます。

IF関数と組み合わせれば、ランク分けも簡単です。

=IF(PERCENTRANK($B$2:$B$31, B2)>=0.8, "A",
 IF(PERCENTRANK($B$2:$B$31, B2)>=0.6, "B",
 IF(PERCENTRANK($B$2:$B$31, B2)>=0.4, "C",
 IF(PERCENTRANK($B$2:$B$31, B2)>=0.2, "D", "E"))))

この数式で上位20%がA、次の20%がBと均等にランク分けできます。

売上の相対位置を可視化する

複数店舗の売上を0〜1のスケールで比較するときに便利です。

店舗売上パーセント順位評価
新宿店5001最上位
渋谷店4200.75上位
池袋店3800.5中位
品川店3500.25中下位
上野店3000最下位

「渋谷店は下から75%の位置(上位25%)」「品川店は下から25%」と具体的にわかります。

よくあるエラーと対処法

#N/Aエラー

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

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

データが {50, 100, 150} のとき、値に200を指定すると#N/Aです。PERCENTRANK関数はデータ範囲外の値を処理できません。

TIP

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

#NUM!エラー

有効桁数に1未満の値(0やマイナス)を指定すると発生します。有効桁数は1以上の整数を指定してください。

#VALUE!エラー

引数に文字列を指定すると発生します。値や有効桁数には数値を入力してください。

PERCENTILE関数との関係・PERCENTRANK.EXCとの違い

PERCENTILE関数との逆関係

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

項目PERCENTRANKPERCENTILE
入力データ + データ + パーセンタイル
出力パーセント順位(0〜1)パーセンタイル位置の
用途「この値は何%の位置?」「上位○%のラインは何点?」

たとえば、先ほどの売上データで以下の関係が成り立ちます。

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

どちらの関数を使うかは「知りたいものが何か」で決まります。

  • 値がわかっていて順位を知りたい → PERCENTRANK関数
  • 順位(%)がわかっていて値を知りたい → PERCENTILE関数

RANK関数との違い

RANK.EQ関数RANK.AVG関数は「何位」という整数の順位を返します。一方、PERCENTRANK関数は0〜1のパーセント順位です。

項目RANK系関数PERCENTRANK
戻り値整数の順位(1位、2位…)0〜1のパーセント順位
スケールデータ件数に依存常に0〜1
比較同じデータ内でのみ有効異なるデータ間でも比較しやすい

データ件数が異なるグループ間で順位を比較するなら、PERCENTRANK関数が便利です。

PERCENTRANK.EXCとの違い

スプレッドシートにはPERCENTRANK関数の派生版があります。

関数戻り値の範囲説明
PERCENTRANK0〜1標準版。0(最小値)と1(最大値)を含む
PERCENTRANK.EXC0より大〜1より小0と1を除外する。統計的にはこちらが厳密

PERCENTRANK.EXCは、最小値でも0にならず最大値でも1にならない計算方法を使います。統計学的にはEXCのほうが厳密ですが、通常の業務ではPERCENTRANK関数で十分です。

PERCENTILE関数にも同じ関係のPERCENTILE.EXC関数PERCENTILE.INC関数があります。

まとめ

PERCENTRANK関数は、データセットの中で値が何%の位置にあるかを返す関数です。

この記事のポイント

  • 構文は =PERCENTRANK(データ, 値, [有効桁数]) の3引数
  • 戻り値は0〜1の範囲。0が最小値、1が最大値の位置
  • 有効桁数は省略すると3(小数第3位まで)
  • PERCENTILE関数の逆:値→パーセント順位を返す
  • PERCENTRANK.EXCは0と1を除外するバリエーション
  • 売上や成績の相対的な位置づけの把握に最適

次のステップ:関連する統計関数

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

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