「95%信頼区間のzスコアって1.96だっけ?」。統計の分析でこの値が必要になるたび、正規分布表を探していませんか。
表から値を読み取る作業は手間がかかりますよね。しかも、確率の行と列を間違えると結果がずれてしまいます。
そんなときに使うのがNORM.S.INV関数です。確率を入力するだけで、対応するzスコアを一発で返してくれます。この記事では基本の書き方から信頼区間の算出まで解説しますね。NORM.S.DIST関数との逆関数の関係もあわせて整理しました。
ExcelのNORM.S.INV関数とは?確率からzスコアを返す関数
NORM.S.INV関数(読み方: ノルム・エス・インバース)は、標準正規分布の累積確率からzスコアを逆算する関数です。「NORM」は「Normal Distribution(正規分布)」、「S」は「Standard(標準)」、「INV」は「Inverse(逆関数)」の略です。
標準正規分布とは、平均0・標準偏差1に固定された正規分布のことです。NORM.S.INV関数は「下位○○%に対応するzスコアはいくつか?」を求めるときに使います。
NORM.S.DIST関数が「zスコア → 確率」を返すのに対し、NORM.S.INV関数は「確率 → zスコア」を返す逆関数の関係です。セットで覚えておくと便利ですよ。
NORM.S.INV関数でできることをまとめると、次のとおりです。
- 信頼区間に必要なzスコアを求める
- 品質管理の管理限界値を算出する
- データの異常値検出の閾値を設定する
- 正規分布表を引く代わりにExcelで確率に対応するzスコアを求める
NOTE
NORM.S.INV関数はExcel 2010以降で使えます。Microsoft 365、Excel 2013〜2024のすべてのバージョンに対応しています。
NORM.S.INV関数の書き方(構文と引数)
基本構文
=NORM.S.INV(確率)
カッコの中に、zスコアを求めたい確率を指定します。NORM.INV関数と違い、平均と標準偏差の指定は不要です(平均0・標準偏差1に固定されているため)。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 確率 | 必須 | zスコアを求めたい累積確率。0より大きく1より小さい値を指定する |
引数は1つだけです。シンプルに使えるのがNORM.S.INV関数の特徴ですね。
TIP
確率には0と1そのものは指定できません。0より大きく1より小さい値(例: 0.025、0.5、0.975)を指定してください。0や1を指定すると#NUM!エラーになります。
NORM.S.INV関数の基本的な使い方
代表的な確率値からzスコアを求める例を見ていきましょう。
確率0.5(50%)のzスコアを求める
=NORM.S.INV(0.5)
結果は 0 です。標準正規分布のちょうど真ん中なので、下位50%に対応するzスコアは0になります。
確率0.975のzスコアを求める(両側95%信頼区間)
=NORM.S.INV(0.975)
結果は約 1.9600 です。統計でよく使う値で、「平均から上下1.96標準偏差の範囲に全体の95%が収まる」ことを意味します。両側95%信頼区間のzスコアとして覚えておくと役立ちますよ。
確率0.025のzスコアを求める
=NORM.S.INV(0.025)
結果は約 -1.9600 です。標準正規分布は左右対称なので、0.025のzスコアは0.975のzスコアの符号を反転した値と等しくなります。
よく使う確率とzスコアの対応表
信頼区間の算出やデータ分析でよく使う値を一覧にしておくと便利です。
| 確率 | =NORM.S.INV(確率) | 主な用途 |
|---|---|---|
| 0.80 | 0.8416 | 片側80%信頼区間 |
| 0.90 | 1.2816 | 片側90%信頼区間 |
| 0.95 | 1.6449 | 片側95%・両側90%信頼区間 |
| 0.975 | 1.9600 | 両側95%信頼区間(最も多用) |
| 0.99 | 2.3263 | 片側99%・両側98%信頼区間 |
| 0.995 | 2.5758 | 両側99%信頼区間 |
TIP
両側信頼区間のzスコアを求めるときは、信頼水準の半分を1に足した値を引数にします。たとえば両側95%なら
=NORM.S.INV(1 - 0.05/2)つまり=NORM.S.INV(0.975)です。
NORM.S.INV関数の実務活用例
信頼区間を算出する
売上データの母平均の95%信頼区間を求めてみましょう。標本平均が500万円、標本標準偏差が80万円、サンプルサイズが30の場合です。
まずNORM.S.INV関数で両側95%のzスコアを求めます。
=NORM.S.INV(0.975)
結果は約 1.96 です。次に、信頼区間の上限と下限を計算します。
上限: =500 + 1.96 * 80 / SQRT(30) → 約528.6(万円)
下限: =500 - 1.96 * 80 / SQRT(30) → 約471.4(万円)
「母集団の平均は471.4万円〜528.6万円の範囲にある」と95%の信頼度で推定できます。SQRT関数は平方根を求める関数です。
1つの数式にまとめると、次のようになります。
上限: =500 + NORM.S.INV(0.975) * 80 / SQRT(30)
下限: =500 - NORM.S.INV(0.975) * 80 / SQRT(30)
品質管理の管理限界を設定する
製造業の品質管理では、「平均から3シグマ以内を管理範囲とする」のが一般的です。NORM.S.INV関数を使えば、任意の信頼水準に対応する管理限界を柔軟に設定できます。
たとえば99.7%の管理範囲(3シグマ相当)のzスコアを求める場合です。
=NORM.S.INV(1 - 0.003/2)
結果は約 2.9677 です。これは「3シグマ」の正確な値に近い数値ですね。
製品の重量が平均500g、標準偏差5gの場合、管理限界は次のように計算できます。
上限: =500 + NORM.S.INV(0.9985) * 5 → 約514.8g
下限: =500 - NORM.S.INV(0.9985) * 5 → 約485.2g
この範囲を外れた製品を「要検査」としてフラグを立てる運用に使えます。
データの異常値を検出する
売上データや測定データから異常値を検出するとき、「上位・下位○%を外れたら異常」という基準を設定できます。
たとえば上下2.5%を異常値とする場合(合計5%)の閾値を求めてみましょう。平均100、標準偏差15のデータを想定します。
下側閾値: =100 + NORM.S.INV(0.025) * 15 → 約70.6
上側閾値: =100 + NORM.S.INV(0.975) * 15 → 約129.4
70.6未満または129.4を超えるデータを「異常値」と判定できます。
IF関数と組み合わせて判定式を作ると、次のようになります。
=IF(OR(A2 < 100 + NORM.S.INV(0.025) * 15, A2 > 100 + NORM.S.INV(0.975) * 15), "異常", "正常")
NORM.S.DIST関数との検算で正確性を確認する
NORM.S.INV関数とNORM.S.DIST関数は逆関数の関係です。この性質を使って、計算結果の検算ができます。
=NORM.S.DIST(NORM.S.INV(0.95), TRUE) → 0.95
=NORM.S.INV(NORM.S.DIST(1.6449, TRUE)) → 1.6449
一方の結果をもう一方に渡すと、元の値に戻ります。計算結果に不安があるときは、このパターンで検算してみてください。
よくあるエラーと対処法
#NUM!エラー
確率に0以下または1以上の値を指定すると発生します。
=NORM.S.INV(0) → #NUM!エラー
=NORM.S.INV(1) → #NUM!エラー
=NORM.S.INV(-0.5) → #NUM!エラー
=NORM.S.INV(1.5) → #NUM!エラー
NORM.S.INV関数の引数は「0より大きく1より小さい値」に限定されています。0と1そのものは指定できないので注意してください。
セル参照を使う場合は、参照先の値が0〜1の範囲内か確認しましょう。
#VALUE!エラー
引数に数値以外の文字列を指定すると発生します。
=NORM.S.INV("abc") → #VALUE!エラー
セル参照を使う場合は、参照先に数値が入っているか確認してください。空白セルを参照すると0として扱われ、#NUM!エラーになります。
#NAME?エラー
関数名のスペルミスで発生します。
=NORMS.INV(0.975) → #NAME?エラー(ピリオドの位置が違う)
=NORM.S.INV.(0.975) → #NAME?エラー(末尾に余計なピリオド)
正しい関数名は NORM.S.INV です。ピリオドの位置に注意してください。Excel 2007以前をお使いの場合は、旧関数名の NORMSINV を使ってください。
結果がマイナスになるケース
エラーではありませんが、確率が0.5未満のとき結果はマイナスになります。
=NORM.S.INV(0.1) → 約-1.2816
=NORM.S.INV(0.025) → 約-1.9600
これは標準正規分布の性質どおりの正しい結果です。確率0.5が平均(zスコア = 0)に対応するので、0.5未満ならzスコアはマイナスになります。
NORM.INV関数・NORM.S.DIST関数との違い
NORM.S.INV関数とNORM.INV関数の違い
| 項目 | NORM.S.INV | NORM.INV |
|---|---|---|
| 引数の数 | 1(確率のみ) | 3(確率・平均・標準偏差) |
| 分布の指定 | 平均0・標準偏差1に固定 | 任意の平均・標準偏差を指定できる |
| 使う場面 | zスコアを求めるとき | 任意の正規分布の値を逆算するとき |
NORM.INV関数で平均0、標準偏差1を指定すると、NORM.S.INV関数と同じ結果になります。
=NORM.S.INV(0.975) → 1.9600
=NORM.INV(0.975, 0, 1) → 1.9600(同じ結果)
どちらを使えばいいか迷ったら
以下の基準で判断してみてください。
- NORM.S.INV関数を使う場面: 信頼区間のzスコアを求めたい、統計的検定の臨界値を求めたい
- NORM.INV関数を使う場面: 実データの平均・標準偏差がわかっていて、確率から元の値を直接逆算したい(例: 上位10%のボーダーラインが何点か)
実務で「上位○%のボーダーはいくつ?」を手軽に求めたいだけなら、NORM.INV関数のほうが便利です。平均と標準偏差を直接指定できるので、zスコアを経由する必要がありません。
NORM.S.DIST関数との逆関数の関係
| 方向 | 関数 | 入力 → 出力 |
|---|---|---|
| 順方向 | NORM.S.DIST | zスコア → 確率 |
| 逆方向 | NORM.S.INV | 確率 → zスコア |
=NORM.S.DIST(1.96, TRUE) → 0.975(z → 確率)
=NORM.S.INV(0.975) → 1.96(確率 → z)
この逆関数の関係を使えば、計算結果の検算が簡単にできます。
旧NORMSINV関数との互換性
NORM.S.INV関数はExcel 2010で導入された「新しい名前」の関数です。旧NORMSINV関数と計算結果はまったく同じです。
| 項目 | NORM.S.INV | NORMSINV(旧) |
|---|---|---|
| 導入バージョン | Excel 2010 | Excel 2003以前 |
| 計算結果 | 同一 | 同一 |
| 引数の数 | 1(同じ) | 1(同じ) |
| 今後のサポート | 推奨 | 互換性のために残存 |
Microsoftは新しい関数名の使用を推奨しています。新規で数式を作るときはNORM.S.INV関数を使いましょう。
関連関数の一覧
| 関数 | 説明 |
|---|---|
| NORM.S.INV | 標準正規分布の逆関数(確率→zスコア) |
| NORM.S.DIST | 標準正規分布の確率(zスコア→確率) |
| NORM.INV | 正規分布の逆関数(確率→値) |
| NORM.DIST | 正規分布の確率(任意の平均・標準偏差) |
| NORMSINV | NORM.S.INVの旧名称 |
| STANDARDIZE | データをzスコアに変換する |
まとめ
NORM.S.INV関数は、標準正規分布(平均0・標準偏差1)の累積確率からzスコアを逆算する関数です。
この記事のポイント
- 構文は
=NORM.S.INV(確率)の引数1つだけ。シンプルに使える - 引数の確率は0より大きく1より小さい値を指定する(0と1は指定不可)
- 確率0.975を指定すると約1.96が返る(両側95%信頼区間のzスコア)
- NORM.S.DIST関数の逆関数。セットで覚えると検算にも使える
- NORM.INV関数の特殊ケース(平均0・標準偏差1を固定)で、引数が少なくシンプル
関連記事
NORM.S.INV関数の使い方がわかったら、以下の関数もあわせて覚えてみてください。統計分析の幅が広がりますよ。
