ExcelのNORMINV関数の使い方|正規分布の逆関数(旧: NORM.INV)
「テストで上位5%に入るには何点必要か」「95%信頼区間の上限・下限は何か」——こうした「確率から値を逆算したい」場面で活躍するのが、ExcelのNORMINV関数です。
NORMINV関数は、NORMDIST関数(確率密度・累積確率を求める)の逆関数として機能します。確率を入力すると、その確率に対応するxの値を返してくれます。
Excel 2007以前から使われている互換性関数で、Excel 2010以降では新しい NORM.INV 関数が後継として登場しています。この記事では、ExcelのNORMINV関数の構文と使い方を解説しますよ。NORMDISTとの逆関数の関係や、上位N%の基準点計算・信頼区間・モンテカルロシミュレーションへの応用まで、実務で使えるパターンを揃えて紹介します。
ExcelのNORMINV関数とは
ExcelのNORMINV関数は、正規分布の累積分布関数の逆関数を計算する統計関数です。「累積確率 p に対応するxの値」を返します。
NORMDIST関数(TRUE指定)との関係を一言で言うと、「NORMDISTにxを入れると確率が出る、NORMINVに確率を入れるとxが出る」という逆の方向性ですよ。
Excel 2007以前から提供されている古い関数で、現行のExcelでは「互換性関数」に分類されています。Excel 2010以降では後継の NORM.INV(ドットあり)が用意されました。
NORMINVとNORM.INVの比較表
| 項目 | NORMINV(旧) | NORM.INV(新) |
|---|---|---|
| 提供バージョン | Excel 2007以前 | Excel 2010以降 |
| 引数の数 | 3個 | 3個(同じ) |
| 計算結果 | 同じ | 同じ |
| 計算精度 | 同じ | 同じ |
| 位置づけ | 互換性関数(旧版互換用) | 推奨関数(現行) |
NORMINVとNORM.INVの違い
NORMINVとNORM.INVの違いは、名前だけです。引数の順番・意味・計算結果は完全に一致します。
=NORMINV(確率, 平均, 標準偏差) ← 旧(互換性関数)
=NORM.INV(確率, 平均, 標準偏差) ← 新(推奨)
既存の =NORMINV(...) を =NORM.INV(...) に書き換えるだけで、結果は完全に同じになりますよ。
どちらを使うべきか
新規ファイルを作るなら NORM.INV を使うのが正解です。関数の入力候補に表示されやすく、将来のExcelバージョンでも継続してサポートされる見込みが高いですよ。
一方で、以下のケースでは NORMINV をそのまま使い続けて問題ありません。
- Excel 2007以前のバージョンと共有するファイル(
.xls形式) - 既存の業務テンプレートに NORMINV が組み込まれていてメンテナンスする場合
- 古いVBAマクロが NORMINV を呼び出している場合
NORMINV関数の構文と引数
NORMINV関数の構文は次のとおりです。
=NORMINV(確率, 平均, 標準偏差)
3つの引数すべてが必須です。それぞれの意味と制約を表で整理します。
| 引数名 | 説明 | 制約 |
|---|---|---|
| 確率(Probability) | 累積確率の値(左側からの面積) | 0より大きく1未満(0以下・1以上は #NUM! エラー) |
| 平均(Mean) | 分布の平均値(μ) | 任意の実数 |
| 標準偏差(Standard_dev) | 分布の標準偏差(σ) | 正の数のみ(0以下は #NUM! エラー) |
「確率」は「0より大きく1未満」という制約が特に重要です。0や1をそのまま入れると #NUM! エラーが出ますよ。パーセントで表現する場合は、「95%」ではなく「0.95」と小数で指定してください。
NORMDISTとNORMINVの逆関数の関係
NORMDISTとNORMINVは「逆関数の関係」にあります。同じパラメータで往復すると元の値に戻る、という特性がありますよ。
| 方向 | 数式 | 入力 | 出力 |
|---|---|---|---|
| 順方向(NORMDIST) | =NORMDIST(x, μ, σ, TRUE) | xの値 | 確率 p |
| 逆方向(NORMINV) | =NORMINV(p, μ, σ) | 確率 p | xの値 |
数式で表すと、NORMDIST(NORMINV(p, μ, σ), μ, σ, TRUE) = p が必ず成立しますよ。
具体的な数値で確認(平均50、標準偏差10の場合)
| 確率 p | NORMINV(p, 50, 10) の結果 | 検算 NORMDIST(x, 50, 10, TRUE) |
|---|---|---|
| 0.025 | 約 30.40 | 0.025 |
| 0.05 | 約 33.55 | 0.05 |
| 0.5 | 50.00 | 0.5 |
| 0.95 | 約 66.45 | 0.95 |
| 0.975 | 約 69.60 | 0.975 |
「確率0.5を入れると平均値(50)が返る」「確率0.95を入れると上位5%の下限値(66.45)が返る」という感覚をつかむと、使いどころがイメージしやすくなりますよ。
NORMINV関数の実務での活用例
上位N%の基準点を求める
「TOEICで上位5%に入るには何点必要か」を計算してみます。受験者の平均スコアが600点、標準偏差が100点と仮定します。
「上位5%」は「下位95%」と同義なので、確率 0.95 を使います。
=NORMINV(0.95, 600, 100)
戻り値は 約 764点 です。上位5%の基準点が1つの数式で求まりますよ。
「下位10%の基準点」を求めたいなら =NORMINV(0.10, 600, 100) で約 472点になります。このように確率の入力値を変えるだけで、任意のパーセンタイル点を計算できるのが便利なところです。
95%信頼区間の境界値を求める
統計分析で「95%信頼区間の上限・下限は何か」を求めるときにも NORMINV が役立ちます。
平均50・標準偏差10の集団での95%信頼区間を計算します。両端に0.025ずつ(計5%)を切り捨てる形で境界を決めます。
下限: =NORMINV(0.025, 50, 10) → 約 30.40
上限: =NORMINV(0.975, 50, 10) → 約 69.60
95%信頼区間は「約 30.40〜69.60」です。
TIP
統計学でよく登場する「±1.96」は標準正規分布(平均0・標準偏差1)での95%信頼区間の境界値で、
=NORMINV(0.975, 0, 1)≈ 1.960 から得られます。この値を知っておくと、信頼区間の計算の意味がよりクリアになりますよ。
正規分布の乱数を生成する(モンテカルロシミュレーション)
ExcelのRAND関数(0以上1未満の一様乱数を返す)と組み合わせると、正規分布に従う乱数を生成できます。
=NORMINV(RAND(), 平均, 標準偏差)
たとえば「平均100・標準偏差15の正規分布乱数」なら次のとおりです。
=NORMINV(RAND(), 100, 15)
F9 キーを押すたびに新しいランダムな値が生成されます。モンテカルロシミュレーション(需要予測・リスク分析・原価シミュレーションなど)でよく使われるパターンですよ。
品質管理:規格上下限を逆算する
製品の平均寸法が10.0mm、標準偏差が0.05mmのとき、「不良率1%以内(上下0.5%ずつ)に収まる規格幅」を求めてみましょう。
上限規格: =NORMINV(0.995, 10, 0.05) → 約 10.129mm
下限規格: =NORMINV(0.005, 10, 0.05) → 約 9.871mm
規格を「9.871〜10.129mm」と設定すれば、理論上の不良率を1%以内に収められます。規格値を決めるプロセスでNORMINVを活用すると、数値の根拠を示しやすくなりますよ。
NORMINVでよくあるエラーと対処法
NORMINV関数で起きやすいエラーをまとめます。
| エラー | 主な原因 | 対処法 |
|---|---|---|
#NUM! | 確率に 0 以下または 1 以上の値を指定した | 確率は 0 < p < 1 の範囲で指定する |
#NUM! | 標準偏差に 0 以下の値を指定した | 標準偏差は正の数を指定する |
#VALUE! | 引数のいずれかに文字列など数値以外が入っている | セル参照先のデータ型を確認する |
#NAME? | 関数名のスペルミス(例:NORM.INV と書いた) | NORMINV はピリオドなしで入力する |
最もよく起きるのが「確率に 0 や 1 を指定したときの #NUM!」です。0%や100%という確率は正規分布の定義上「無限大のx」に対応するため、Excelでは計算不能になります。0.0001や0.9999など、0と1を避けた値を使いましょう。
また、「確率として 95 を指定してしまう」ミスも起こりがちです。正しくは 0.95(小数)ですよ。
NORM.INVへの移行ガイド
既存の NORMINV 数式を新関数 NORM.INV に書き換える手順は次のとおりです。
| 旧関数の数式 | 新関数の数式(同等) |
|---|---|
=NORMINV(0.95, 50, 10) | =NORM.INV(0.95, 50, 10) |
=NORMINV(RAND(), 0, 1) | =NORM.INV(RAND(), 0, 1) |
=NORMINV(A2, B$1, C$1) | =NORM.INV(A2, B$1, C$1) |
引数の変更は不要で、関数名の部分だけ書き換えれば完了ですよ。
一括置換の手順:
- Ctrl + H(置換ダイアログ)を開く
- 検索する文字列:
NORMINV( - 置換後の文字列:
NORM.INV( - 「すべて置換」
- いくつかのセルで結果が変わっていないことを確認する
まとめ:NORMINV関数で正規分布の逆算をマスターしよう
ExcelのNORMINV関数のポイントを整理します。
- NORMINV関数は正規分布の逆関数を計算する旧版(互換性関数)
- 構文は
=NORMINV(確率, 平均, 標準偏差)の3引数 - 「確率を入力するとxの値を返す」という、NORMDIST(TRUE指定)と逆方向の関数
- Excel 2010以降の後継は NORM.INV(名前以外は同じ)
- 移行は関数名部分を NORMINV → NORM.INV に書き換えるだけ
- 確率は 0より大きく1未満(0や1は
#NUM!エラー) - 上位N%の基準点・信頼区間の境界値・モンテカルロ乱数生成・品質管理の規格逆算に活用できる
「確率から値を逆算する」という発想が身につくと、データ分析の幅がぐっと広がりますよ。まずは「上位5%の基準点を求める」一場面から、NORMINVを試してみてくださいね。
確率分布関数のシリーズ記事として、NORMDIST関数、NORM.DIST関数、NORM.INV関数、NEGBINOMDIST関数、HYPGEOMDIST関数も合わせて読むと、Excelの統計関数全体の見通しがよくなりますよ。
