【関数】各数値データが全体の上位/下位何%か順位付けできる「PERCENTRANK」の使い方
AさんAさん

Excelで「売上金額」等をレコードごとに順位付けしたんですが、レコード数が多くて全体の上位か下位かがパッと見で良く分からないです。。
何か良い方法ありますかね?

森田森田

その場合は、関数のPERCENTRANKを活用すると良いですよ!
では、PERCENTRANKの使い方について解説していきますね。

はじめに

この記事は関数の概要をRANKの使い方を把握していることが前提です。

参考記事

関数の概要とRANKの使い方については以下の記事をご参照ください。


数値データを相対的にランク付けしたい場合は「PERCENTRANK」が有効

実務では、売上金額や受注件数等の数値データを順位付け(ランク付け)することがあります。

こうした場合、通常はRANKを使うことが一般的ですが、レコード数が多い場合、その順位が全体の上位なのか下位なのか分かりにくいケースがあります。

こんな場合、関数のPERCENTRANKを使うと良いです。
PERCENTRANKは「パーセントランク」と読む。

PERCENTRANKを使うことで、各数値データが全体の上位/下位の何%か、百分率で相対的な順位を算出できます。

PERCENTRANKの構文

PERCENTRANKの構文は以下の通りです。

=PERCENTRANK(配列,X,[有効桁数])
値Xの配列内での順位を百分率で表した値を返します。

引数名 必須 データ型 説明
配列 数値 順位を調べる対象のセル範囲(値が数値)を指定します。
X 数値 「配列」の範囲内で順位を調べたい単一セル(値が数値)を指定します。
有効桁数 数値 戻り値の百分率の小数点以下の桁数にしたい値を指定します。
1以上の整数を指定

PERCENTRANKの戻り値は昇順(小さい順)がデフォルト。
RANKと引数(順位を調べる対象のセル範囲と順位を調べたいセル)の順番が逆。
各引数に文字列を指定の場合、エラー値「#VALUE!」が表示。
引数「X」が引数「配列」のセル範囲外にある場合、エラー値「#N/A」が表示。
引数「有効桁数」を省略した場合、小数点第3位まで計算される(「3」を指定した状態と同じ)。
引数「有効桁数」が「0」以下の値を指定した場合、エラー値「#NUM!」が表示。

【参考】PERCENTRANKは「統計関数」

あくまで参考情報となりますが、PERCENTRANKは統計関数です。

ただし、リボン「数式」タブの関数ライブラリ上では「その他の関数」の「互換性」に分類されています。
Excel2007以前のバージョン(Excel97-2003ブック(*.xls)含む)と互換性あり。

実際にPERCENTRANKを活用する際は、以下で解説しているように直接入力で挿入していきましょう。

PERCENTRANKの使用結果イメージ

PERCENTRANKを使い、相対的に順位付けするイメージは以下の通りです。

今回は「金額」列を対象に相対的な順位を算出しました。

上記のように計算列としてPERCENTRANKを使う場合、1レコードにつき1つの関数を使います。
「計算列」とは、数値/日付/時刻の列の値を計算した新たな列のこと。
PERCENTRANKをセットしたセルの表示形式は必要に応じて「パーセンテージ」にし、小数点以下の桁数を任意のものへ変更。

ベースの数式をセットしたら、他のセルへペーストしましょう。

なお、今回は引数「配列」は全レコードでF2~F11セルを固定で参照するため、絶対参照にしています(テーブルの場合は不要)。

参考記事

絶対参照/相対参照の詳細については以下の記事をご参照ください。

【参考】順位付けを降順にした場合

PERCENTRANKの順位付けは昇順がデフォルトですが、RANKと違い、引数の設定で順位付けを降順(大きい順)へ変更できません。

降順へ変更したい場合は、PERCENTRANKの数式の前に「1-」を追加しましょう。

これで降順の相対順位を表示できます。
実務ではこちらのケースの方が一般的。

売上や利益等の上位◯%を求めたい場合、こちらの方法で順位付けすると良いでしょう。

PERCENTRANKの数式の挿入手順

上記の結果を得るための手順は以下の通りです。

  1. 関数を挿入するセルを選択
    ※今回はG2セル
  2. =percentr」等と入力
  3. サジェストから「PERCENTRANK」を選択し、「Tab」キーで確定
  4. 順位を調べる対象のセル範囲を選択
    ※今回はF2~F11セル(絶対参照)
  5. コンマ(,)を入力
  6. 順位を調べたい数値セルを選択
    ※今回はF2セル
  7. Enter」キーで確定
  8. 1行目の数式をコピーし、以降のセルへペースト
    ※今回はG3~G11セルへペースト

手順②の際にIMEを半角英数モードにすること。
テーブルの場合、手順⑧は不要(全レコードへ数式が自動的にコピーされる)。

【参考】PERCENTRANKの後継関数は「PERCENTRANK.INC」と「PERCENTRANK.EXC

PERCENTRANKの後継の関数として、Excel2010からPERCENTRANK.INC」(パーセントランク・インクルーシブ)PERCENTRANK.EXC」(パーセントランク・エクスクルーシブ)2種類の新しい関数が登場しました。

=PERCENTRANK.INC(配列,X,[有効桁数])
値Xの配列内での順位を百分率(0以上1以下)で表した値を返します。

=PERCENTRANK.EXC(配列,X,[有効桁数])
値Xの配列内での順位を百分率(0以上1以下を除く)で表した値を返します。

この2つの関数の使い方はPERCENTRANKと同じです(PERCENTRANK.INCは戻り値もPERCENTRANKと同じ)。

PERCENTRANK.EXCの方は、戻り値となる順位の百分率の範囲が「0%<X<100%」になる部分が異なりますPERCENTRANKPERCENTRANK.INCは「0%X100%」)。

上記のように、PERCENTRANKPERCENTRANK.INCは順位の中に「0%」と「100%」が含まれますが、PERCENTRANK.EXCは含まれません。

どちらも相対的な順位を知るためのものであり、データ数が多ければ多いほど似たような結果となるため、基本的には互換性のあるPERCENTRANKを使った方が無難だと思います。

サンプルファイルで練習しよう!

可能であれば、以下のサンプルファイルをダウンロードして、実際に操作練習をしてみてください。

サンプルファイル_ワークシート関数_PERCENTRANK.xlsx

※サンプルファイルのダウンロードには無料メルマガに登録いただく必要があります。
(上記リンクから登録フォームへ遷移します)

ブックを開いたら、次の手順を実施してください。(今までの解説のまとめです)

  1. 関数を挿入するセルを選択
    ※今回はG2セル
  2. =percentr」等と入力
  3. サジェストから「PERCENTRANK」を選択し、「Tab」キーで確定
  4. 順位を調べる対象のセル範囲を選択
    ※今回はF2~F11セル(絶対参照)
  5. コンマ(,)を入力
  6. 順位を調べたい数値セルを選択
    ※今回はF2セル
  7. Enter」キーで確定
  8. 1行目の数式をコピーし、以降のセルへペースト
    ※今回はG3~G11セルへペースト

本記事の解説と同じ結果になればOKです!

さいごに

いかがでしたでしょうか?

PERCENTRANKは数値データを元にした計算列の追加に役立つ関数の一つです。

定期的に順位付けを行う計算列を作成する機会があるなら、ぜひ覚えておいた方が良いですね。

なお、PERCENTRANK以外にもExcelでのデータ整形の各種テクニックを拙著で解説していますので、こちらも参考にしてみてください。

ご参考になれば幸いですm(_ _)m

森田森田

PERCENTRANKとセットで覚えておいた方が良い関数は、実数(自然数)で順位付けできる「RANK」です。
絶対的な順位を調べたい場合は、PERCENTRANKよりRANKの方がおすすめです。
ぜひ、ケースバイケースで使い分けてくださいね!