ExcelのPERCENTILE.EXC関数の使い方|百分位数(除く)

スポンサーリンク

ExcelのPERCENTILE.EXC関数とは?百分位数の「除く」型を求める関数

「品質データの上位5%ラインを統計的にきっちり出したい」
「成績データのパーセンタイルを、端を除いた方式で計算したい」

こんな場面でどちらの関数を使うか迷ったことはありませんか。

この記事ではPERCENTILE.EXC関数の使い方を、INC関数との数値比較を交えて解説します。kの有効範囲やよくあるエラーの対処法までしっかり押さえていきましょう。

読み方と語源(EXC=Exclusive=0%と100%を除く)

PERCENTILE.EXC関数の読み方は「パーセンタイル・エクスク」または「パーセンタイル・エクスクルーシブ」です。EXCは「Exclusive(排他的)」の略で、0%と100%の端点を含まないという意味があります。

パーセンタイル(百分位数)とは、データを小さい順に並べたときに「下から何%の位置にある値か」を示す統計指標です。たとえば中央値は50パーセンタイル、第1四分位数は25パーセンタイルにあたります。

PERCENTILE.EXC関数は、この百分位数を「端点を除外する」補間方式で計算する関数です。対応バージョンはExcel 2010以降で、Microsoft 365でも問題なく使えます。

「含む(INC)」と「除く(EXC)」の違いを先に把握する

PERCENTILE関数には「.INC」と「.EXC」の2種類があります。違いをざっくりまとめると次のとおりです。

関数意味kの有効範囲
PERCENTILE.INCInclusive(含む)0以上1以下
PERCENTILE.EXCExclusive(除く)0より大きく1より小さい

INCはk=0で最小値、k=1で最大値を返してくれますが、EXCはこの両端を受け付けません。さらに同じkを指定しても、補間の計算式が違うため結果が変わってきます。

「結局どっちを使えばいいの?」と思いますよね。基本的にはINC関数で十分ですが、統計の教科書や品質管理の現場で「端を除く方式」が指定されている場合はEXC関数の出番です。詳しい比較はPERCENTILE.INC関数の記事も合わせて読んでみてください。

PERCENTILE.EXC関数の書き方(構文と引数)

基本構文

まずは基本の書き方を確認しましょう。引数は2つで、どちらも必須です。

=PERCENTILE.EXC(array, k)
引数必須/省略可説明
array必須パーセンタイルを求めたいデータ範囲
k必須0より大きく1より小さい数値(百分位を小数で指定)

arrayにはセル範囲(A2:A11など)を指定し、kには0.25や0.5など求めたい百分位を小数で渡します。

kの有効範囲(0より大きく1より小さい)

PERCENTILE.EXC関数の最大の特徴は、kの有効範囲が「0 < k < 1」である点です。0と1ちょうどは指定できません。

=PERCENTILE.EXC(A2:A11, 0)    → #NUM!エラー
=PERCENTILE.EXC(A2:A11, 1)    → #NUM!エラー
=PERCENTILE.EXC(A2:A11, 0.5)  → OK(中央値が返る)

PERCENTILE.INC関数だとk=0で最小値、k=1で最大値を返してくれましたよね。EXC関数はそこが違います。「両端を除いて補間する」という思想なので、端点そのものは数式の対象外なんです。

最小値や最大値が必要なら、MIN関数やMAX関数を使うか、INC関数に切り替えればOKです。

PERCENTILE.EXC関数の基本的な使い方

第25パーセンタイル(第1四分位)を求める

実際にPERCENTILE.EXC関数を使ってみましょう。セルA2:A6に5人分のテスト点数{60, 70, 80, 90, 100}が入っているとします。

第25パーセンタイル(下位25%のしきい値)を求める数式はこうなります。

=PERCENTILE.EXC(A2:A6, 0.25)

結果は65です。「あれ、データに65なんて値ないけど?」と思いますよね。これは線形補間で計算された値なんです。

PERCENTILE.EXC関数の計算式は次のとおりです。

内部ランク = k × (n + 1)
        = 0.25 × (5 + 1)
        = 1.5

ランク1.5は「1番目の値(60)と2番目の値(70)の中間」を意味します。60 + 0.5 ×(70 – 60)= 65、というわけですね。

第50パーセンタイル(中央値相当)

同じデータで第50パーセンタイル(中央値)も求めてみましょう。

=PERCENTILE.EXC(A2:A6, 0.5)

結果は80です。計算過程はこう。

内部ランク = 0.5 × (5 + 1) = 3.0
→ 3番目の値そのまま = 80

ランクが3.0と整数になったので、補間なしで3番目の値(80)がそのまま返ります。データの個数が奇数のときは、中央値とPERCENTILE.EXC(範囲, 0.5)の結果は一致します。

第75パーセンタイル(第3四分位)

ついでに第75パーセンタイルも見ておきましょう。

=PERCENTILE.EXC(A2:A6, 0.75)

結果は95です。計算は次のとおり。

内部ランク = 0.75 × (5 + 1) = 4.5
→ 4番目の値(90)+ 0.5 ×(100 - 90)= 95

このようにPERCENTILE.EXC関数は、kに応じてデータ間を線形補間しながら値を返してくれます。

PERCENTILE.EXCとPERCENTILE.INCの違い【数値比較】

計算式の違い

PERCENTILE.INC関数とPERCENTILE.EXC関数は、内部ランクの計算式が違います。

関数内部ランクの計算式
PERCENTILE.INCk × (n – 1) + 1
PERCENTILE.EXCk × (n + 1)

掛ける数が「n-1」と「n+1」で違うのがポイントです。同じデータ・同じkでも結果が変わってくる原因はここにあります。

同じデータでの結果比較

データ{60, 70, 80, 90, 100}(n=5)でINCとEXCの結果を並べてみましょう。

kPERCENTILE.EXCPERCENTILE.INC
0.2565(rank=1.5)70(rank=2.0)
0.5080(rank=3.0)80(一致)
0.7595(rank=4.5)90(rank=4.0)
0#NUM!エラー60(最小値)
1#NUM!エラー100(最大値)

中央値(k=0.5)以外、結果が結構違いますよね。EXCは端点を除外する補間なので、同じkでINCとは異なる値を返します。

kの範囲の違いとk=0・k=1でのエラー

INCとEXCの最大の違いは、kの有効範囲です。

INC: 0 ≤ k ≤ 1     # k=0で最小値、k=1で最大値が返る
EXC: 0 < k < 1     # k=0、k=1は#NUM!エラー

「最小値や最大値もパーセンタイル関数で取りたい」ならINC関数、「端を除く統計手法に従いたい」ならEXC関数、と覚えておけばOKです。

迷ったらINC関数で問題ありません。仕事の現場ではINCの方が直感的で使い勝手がいいですよ。

QUARTILE.EXCとの関係

四分位数(データを4等分した区切り)を求めるQUARTILE.EXC関数は、PERCENTILE.EXC関数の特定のkでの結果と完全に一致します。

QUARTILE.EXCPERCENTILE.EXC(同等の式)返す値
QUARTILE.EXC(範囲, 1)PERCENTILE.EXC(範囲, 0.25)第1四分位数
QUARTILE.EXC(範囲, 2)PERCENTILE.EXC(範囲, 0.50)中央値
QUARTILE.EXC(範囲, 3)PERCENTILE.EXC(範囲, 0.75)第3四分位数

つまりQUARTILE.EXC関数はPERCENTILE.EXC関数で完全に代替できます。

QUARTILE.EXC関数は1〜3の整数しか指定できませんが、PERCENTILE.EXC関数は0.05刻みや0.1刻みなど任意のkを指定できる柔軟性があります。

ちなみにQUARTILE.EXCも、kの引数に0や4を指定すると#NUM!エラーになります。これも「端を除く」EXCシリーズ共通の仕様なので覚えておきましょう。

よくあるエラーと対処法

#NUM!エラー:kが範囲外

PERCENTILE.EXC関数で一番よく見るエラーが#NUM!エラーです。原因は主に2つあります。

  • kが0以下または1以上: k=0、k=1、k=-0.1、k=1.5などはすべてエラーになります
  • arrayが空、またはデータが1件のみ: データが少なすぎると補間できずエラーになります

PERCENTILE.INC関数からEXC関数に書き換えたとき、k=0やk=1のままだとエラーになるパターンが多いです。最小値はMIN関数、最大値はMAX関数で取得しましょう。

=PERCENTILE.EXC(A2:A11, 0)   → #NUM!エラー
=MIN(A2:A11)                 → 最小値が取れる

セル参照でkを指定している場合は、参照先の値が0より大きく1より小さいか確認してみてください。

#VALUE!エラー:kが数値でない

引数kに数値以外の値が入っていると#VALUE!エラーになります。

たとえばkに「25%」と入力したセルを参照したつもりが、実は文字列として保存されていた、というケースがありがちです。kには必ず0.25のような数値を指定してください。

エラーを事前に防ぎたい場合はIFERROR関数で囲む方法もあります。

=IFERROR(PERCENTILE.EXC(A2:A11, B1), "kは0より大きく1より小さい数値を指定")

この書き方なら、エラー発生時にメッセージを表示できるので、データ入力者にも親切ですね。

まとめ

PERCENTILE.EXC関数は「端点を除く補間方式」で百分位数を求める関数です。

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

  • 構文は =PERCENTILE.EXC(array, k) で、kは0より大きく1より小さい範囲で指定する
  • EXCは「Exclusive」の略で、k=0とk=1は#NUM!エラーになる
  • 内部ランク = k ×(n+1)で計算され、INCとは結果が異なることが多い
  • QUARTILE.EXC関数はPERCENTILE.EXC関数で完全に代替できる
  • 迷ったときはPERCENTILE.INC関数を使う方が直感的

品質管理データや統計分析で「端を除く方式」が必要な場面では、PERCENTILE.EXC関数がしっかり活躍してくれます。INC関数との違いを理解した上で、用途に合わせて使い分けてくださいね。

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