スプレッドシートのNORM.INV関数の使い方|正規分布の逆関数

スポンサーリンク

「上位10%のボーダーラインは何点だろう?」。成績評価や品質管理で、こんな疑問を感じたことはありませんか?

平均や標準偏差はわかっていても、「何点以上なら上位○%」を手計算するのは大変ですよね。

そんなときに使うのがNORM.INV関数です。この記事ではGoogleスプレッドシートでのNORM.INV関数の使い方を、基本構文から実務活用まで解説します。NORM.DISTとの関係やエラー対処法もあわせて紹介しますよ。

スプレッドシートのNORM.INV関数とは

NORM.INV関数(読み方: ノーム・インバース関数)は、正規分布の逆関数です。確率を指定すると、その確率に対応する値を返してくれます。「NORM」は「Normal(正規)」、「INV」は「Inverse(逆)」の略です。

たとえば「平均60点・標準偏差10点のテストで、上位5%に入るには何点必要か」を1つの数式で求められます。

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

  • 確率(パーセンタイル)から対応する値を逆算する
  • 成績評価のグレード境界値(上位10%、上位30%など)を算出する
  • 品質管理で規格の上限・下限値を設定する
  • 売上予測で信頼区間の上限・下限を求める

NOTE

NORM.INV関数はGoogleスプレッドシートの全バージョンで使えます。Excelにも同名の関数があり、動作は同じです。

NORM.INV関数の基本構文と引数

基本構文

=NORM.INV(確率, 平均, 標準偏差)

カッコの中に3つの引数を指定します。

引数の意味

引数必須/任意説明
確率(probability)必須0より大きく1より小さい確率値
平均(mean)必須正規分布の平均値
標準偏差(standard_deviation)必須正規分布の標準偏差(0より大きい値)

確率には0と1そのものは指定できません。0や1を入力すると#NUM!エラーになります。

TIP

確率に0.9を指定すると「下位90%の境界値」、つまり「上位10%のボーダーライン」が返ります。「上位○%」で考えるときは「1 – 上位の割合」を確率に指定すると覚えておきましょう。

NORMINVとの違い

GoogleスプレッドシートにはNORMINVという関数もあります。これはNORM.INVの旧バージョンで、計算結果は同じです。

=NORMINV(0.9, 60, 10)   ← 旧関数名(動作は同じ)
=NORM.INV(0.9, 60, 10)  ← 新関数名(推奨)

どちらを使っても結果は変わりませんが、Googleの公式ドキュメントではNORM.INVが推奨されています。新しく数式を書くときはNORM.INVを使いましょう。

NORM.INV関数の使い方(基本例)

まずはシンプルな例で動きを確認してみましょう。平均60点・標準偏差10点のテストを想定します。

=NORM.INV(0.5, 60, 10)

結果は60です。確率0.5(50%)を指定すると、ちょうど平均値が返ります。正規分布は左右対称なので、真ん中が平均値になるわけですね。

確率を変えて、いくつかの値を見てみましょう。

確率数式結果意味
0.1=NORM.INV(0.1, 60, 10)約47.2下位10%の境界値
0.25=NORM.INV(0.25, 60, 10)約53.3下位25%の境界値(第1四分位)
0.5=NORM.INV(0.5, 60, 10)60.0ちょうど平均値
0.75=NORM.INV(0.75, 60, 10)約66.7上位25%のボーダー
0.9=NORM.INV(0.9, 60, 10)約72.8上位10%のボーダー

確率が大きくなるほど、返される値も大きくなります。確率0.5で平均値、それより小さいと平均以下、大きいと平均以上の値が返りますよ。

NORM.INV関数の実務活用3パターン

基本がわかったところで、実際の業務で使えるパターンを3つ紹介します。

成績評価のグレード境界値を算出する

テストや人事評価で「上位10%をA評価、上位30%をB評価」とグレード分けしたいときに使えます。

評価スコアの平均が70点、標準偏差が15点の場合です。

=NORM.INV(0.9, 70, 15)

結果は約89.2です。つまり89点以上が上位10%(A評価)のボーダーラインです。

同じ要領で各グレードの境界値をまとめると、次のようになります。

評価確率数式境界値
A(上位10%)0.9=NORM.INV(0.9, 70, 15)約89.2
B(上位30%)0.7=NORM.INV(0.7, 70, 15)約77.9
C(上位70%)0.3=NORM.INV(0.3, 70, 15)約62.1
D(下位10%)0.1=NORM.INV(0.1, 70, 15)約50.8

実際のデータで使うなら、AVERAGE関数STDEV関数を組み合わせるのがおすすめです。

=NORM.INV(0.9, AVERAGE(B2:B31), STDEV(B2:B31))

データが変わっても境界値が自動更新されるので便利ですよ。

品質管理の規格値を設定する

製造業で「不良率を1%以内に抑えたい」ときの規格上限・下限を求められます。

部品の重量が平均500g・標準偏差5gの場合です。不良率1%以内ということは、下位0.5%と上位0.5%を規格外にします。

=NORM.INV(0.005, 500, 5)   ← 規格下限
=NORM.INV(0.995, 500, 5)   ← 規格上限

結果は下限が約487.1g、上限が約512.9gです。この範囲に収まる製品は全体の99%になります。

規格値をこのように統計的に設定すると、「なぜこの数値なのか」を根拠をもって説明できますよね。

売上予測の信頼区間を求める

月間売上の平均が800万円、標準偏差が120万円のとき、「95%の確率で収まる範囲」を求めてみましょう。

=NORM.INV(0.025, 800, 120)   ← 下限(下位2.5%)
=NORM.INV(0.975, 800, 120)   ← 上限(上位2.5%)

結果は下限が約564.8万円、上限が約1035.2万円です。95%信頼区間(両端2.5%ずつを除外した範囲)を求められました。

予算策定やリスク評価の資料で「この範囲に収まる可能性が95%」と提示できるので、説得力のある分析になりますよ。

NORM.DISTとの関係(順方向と逆方向)

NORM.INV関数は、NORM.DIST関数逆関数です。2つの関数は「入力と出力が逆」の関係にあります。

関数入力出力方向
NORM.DIST値(x)確率(p)値 → 確率
NORM.INV確率(p)値(x)確率 → 値

具体例で確認してみましょう。平均60・標準偏差10の場合です。

=NORM.DIST(72.8, 60, 10, TRUE)   → 約0.9(90%)
=NORM.INV(0.9, 60, 10)           → 約72.8

NORM.DISTに72.8を入れると確率0.9が返り、NORM.INVに0.9を入れると72.8が返ります。お互いの結果を入れ替えても元に戻るということですね。

使い分けのポイントは次のとおりです。

  • 「80点は上位何%?」NORM.DIST(値がわかっていて確率を知りたい)
  • 「上位10%は何点から?」 → NORM.INV(確率がわかっていて値を知りたい)

データを標準化したい場合はSTANDARDIZE関数も便利ですよ。「値から確率」か「確率から値」か、どちらの方向で計算したいかで使い分けてください。

NORM.INV関数でエラーが出るときの対処法

NORM.INV関数でよくあるエラーと、その対処法をまとめました。

確率に0以下や1以上を指定して#NUM!エラー

確率は「0より大きく1より小さい値」でなければなりません。0や1、負の数を指定すると#NUM!エラーになります。

=NORM.INV(0, 60, 10)    ← #NUM! エラー
=NORM.INV(1, 60, 10)    ← #NUM! エラー
=NORM.INV(-0.5, 60, 10) ← #NUM! エラー

他のセルの計算結果を確率として渡すときは、値が0〜1の範囲内か確認しておきましょう。

標準偏差に0以下を指定して#NUM!エラー

標準偏差は0より大きい値が必要です。データがすべて同じ値のとき、STDEV関数は0を返します。その結果をそのままNORM.INVに渡すとエラーになるので注意してください。

=NORM.INV(0.9, 60, 0)   ← #NUM! エラー

引数に文字列を渡して#VALUE!エラー

数値であるべき引数にテキストが入ると#VALUE!エラーになります。セル参照を使うときは、参照先が数値になっているか確認してくださいね。

まとめ

NORM.INV関数は、正規分布で確率から値を逆算する関数です。

  • 3つの引数(確率・平均・標準偏差)を指定するだけで使える
  • 確率0.5を指定すると平均値が返る。確率が大きいほど大きな値が返る
  • 成績評価のグレード境界値、品質管理の規格値設定、売上予測の信頼区間の算出に活用できる
  • NORM.DIST関数の逆関数。「確率→値」の方向で計算したいときに使う
  • AVERAGE関数STDEV関数を組み合わせると、データ更新に自動対応できる
  • 確率に0や1を指定すると#NUM!エラー。範囲は0より大きく1より小さい値

「上位○%のボーダーラインはいくつ?」を即座に答えられるようになると、評価基準の策定や品質管理がぐっとラクになります。ぜひ実際のデータで試してみてくださいね。

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