エクセルで、ある値がデータ全体の中で下から何%の位置にあるかを、0% と 100% を含まない考え方で求めるには PERCENTRANK.EXC関数を使います。10人の点数で 85 点の佐藤さんなら、=PERCENTRANK.EXC(C3:C12,C4) で 0.909(約91%)です。
PERCENTILE.EXC関数の逆で、「点数から位置(率)」を求めます。この記事では、PERCENTRANK.EXC関数の基本、計算のしくみ、小数の桁数の指定、データに無い値の扱い、PERCENTRANK.INC関数との違いまでを、1つの表で説明します。下の練習ツールで、点数を書き換えて結果の変わり方を試せます。
まず動かしてみよう|この記事のサンプルをその場で試せます
練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。
PERCENTRANK.EXC関数の書き方
| 引数 | 入れるもの | ポイント |
|---|---|---|
| 配列 | 数値の範囲 | 並べ替えておく必要はありません。 |
| x | 位置を知りたい値 | 配列の最小値〜最大値の間で指定します。 |
| 有効桁数(省略可) | 結果の小数の桁数 | 省略すると 3桁。それより下は切り捨てられます。 |
PERCENTRANK.EXC関数の使い方|やりたいこと別の式
| やりたいこと | 式(例) | 結果 |
|---|---|---|
| 85点の位置 | =PERCENTRANK.EXC(C3:C12,C4) | 0.909 |
| 70点の位置 | =PERCENTRANK.EXC(C3:C12,C3) | 0.454 |
| 55点(最低点)の位置 | =PERCENTRANK.EXC(C3:C12,C7) | 0.09 |
| データに無い 72 点 | =PERCENTRANK.EXC(C3:C12,72) | 0.581 |
| 小数2桁 | =PERCENTRANK.EXC(C3:C12,C3,2) | 0.45 |
| INC(85点) | =PERCENTRANK.INC(C3:C12,C4) | 1 |
| 範囲の外(50点) | =IFERROR(PERCENTRANK.EXC(C3:C12,50),”範囲外”) | 範囲外 |

値の位置を率で求める
結果は 0.909 です。=TEXT(PERCENTRANK.EXC(C3:C12,C4),"0.0%") のように TEXT関数を使うと 90.9% と表示できます(TEXT関数の使い方)。
▶ この式(F3)を、上の練習ツールで試す / この式(F11)を、上の練習ツールで試す
計算のしくみ
点数を小さい順に並べると、55・60・60・65・70・70・75・80・80・85 です。PERCENTRANK.EXC関数は「(その値より小さい個数+1)÷(個数+1)」で位置を求めます。
| 値 | それより小さい個数 | 計算 | 結果 |
|---|---|---|---|
| 85 | 9 | (9+1)÷11=0.90909… | 0.909 |
| 70 | 4 | (4+1)÷11=0.45454… | 0.454 |
| 55 | 0 | (0+1)÷11=0.09090… | 0.09 |
70点は 0.45454… ですが、結果は四捨五入ではなく 切り捨て で 3桁の 0.454 になります。55点の 0.090 は、表示では 0.09 です。
▶ この式(F4)を、上の練習ツールで試す / この式(F5)を、上の練習ツールで試す
小数の桁数を指定する
有効桁数に 2 を指定すると、70点は 0.45454… を切り捨てて 0.45 です。
データに無い値・範囲の外の値
データに無い 72 点は、70 点と 75 点の間の位置を比例で計算して 0.581 になります。最低点 55 より小さい 50 点や、最高点 85 より大きい値は #N/A エラーになるので、=IFERROR(PERCENTRANK.EXC(C3:C12,50),"範囲外") のように表示を決めておけます(IFERROR関数の使い方)。
▶ この式(F6)を、上の練習ツールで試す / この式(F10)を、上の練習ツールで試す
PERCENTRANK.INC関数との違い
PERCENTRANK.INC関数は最低点を 0、最高点を 1 とするので、85点は 1、70点は =PERCENTRANK.INC(C3:C12,C3) で 0.444 です。EXC は両端を含まないので、最高点でも 1 にならず 0.909 です(PERCENTRANK.INC関数の使い方)。
| 関数 | 計算 | 85点 | 70点 |
|---|---|---|---|
| PERCENTRANK.EXC | (小さい個数+1)÷(個数+1) | 0.909 | 0.454 |
| PERCENTRANK.INC | 小さい個数÷(個数−1) | 1 | 0.444 |
▶ この式(F8)を、上の練習ツールで試す / この式(F9)を、上の練習ツールで試す
PERCENTRANK.EXC関数がうまくいかないときの確認表
| 症状 | 考えられる原因 | 対処 |
|---|---|---|
| 「#N/A」になる | x がデータの最小値より小さい、または最大値より大きい | 範囲の中の値を指定する。IFERROR関数で表示を決める。 |
| 四捨五入した値と違う | 結果は指定した桁数で切り捨てられる | 有効桁数を増やす。 |
| 同じ点数の人が同じ値になる | 同じ値は同じ位置として計算される | 決まり通りの動き。 |
| 「#NUM!」になる | 有効桁数が 1 より小さい | 1 以上を指定する。 |
PERCENTRANK.EXC関数のよくある質問
上位何%かを知りたいときは?
1 から引きます。=1-PERCENTRANK.EXC(C3:C12,C4) は 0.091 で、85点は上位約9%です。
率から値を求めるには?
逆の計算は PERCENTILE.EXC関数を使います(PERCENTILE.EXC関数の使い方)。
あわせて読みたい:統計の関連記事
練習用ファイル:練習用Excelファイル(.xlsx・無料)
