スプレッドシートのNORMSINV関数の使い方|標準正規分布逆関数(互換)

スポンサーリンク

「ExcelでNORMSINVを使っていたけど、スプレッドシートでも同じ関数は使えるの?」。Excel から Google スプレッドシートに乗り換えたとき、関数名が変わっていて戸惑うことがありますよね。

結論から言うと、NORMSINV関数はスプレッドシートでもそのまま使えます。ただし、現在は後継のNORM.S.INV関数が推奨されています。

この記事では、NORMSINV関数の基本的な使い方から、NORM.S.INVとの違い、Excel移行時のポイントまでまとめて解説します。

スプレッドシートのNORMSINV関数とは?

NORMSINV関数(読み方: ノームエスインバース関数)は、標準正規分布の逆関数です。累積確率を入力すると、対応するzスコア(標準化された値)を返してくれます。

関数名の由来を分解すると次のとおりです。

  • NORM = Normal(正規分布)
  • S = Standard(標準)
  • INV = Inverse(逆)

ひとことで言えば、「確率からzスコアを逆算する関数」ですね。

ただし、NORMSINV は Excel 2007 以前から使われている旧関数名です。Excel 2010 以降でピリオド付きの新関数名(NORM.S.INV)に移行されました。Google スプレッドシートでは両方使えますが、新しく数式を書くならNORM.S.INV関数を使うのがおすすめです。

構文と引数

=NORMSINV(x)

引数はたった1つです。

引数必須/任意説明
x必須zスコアを求めたい累積確率。0より大きく1より小さい値を指定する

xには0 < x < 1の範囲で値を入れます。0ちょうどや1ちょうどは指定できません。

NORMSINV と NORM.S.INV は何が違う?

結論から言うと、計算結果はまったく同じです。

=NORMSINV(0.95)      → 約 1.6449
=NORM.S.INV(0.95)    → 約 1.6449

NORMSINV は「互換性のために残されている旧関数名」という位置づけです。Googleの公式ヘルプでも、NORM.S.INVのページにNORMSINVが旧名として記載されています。

比較項目NORMSINVNORM.S.INV
導入時期Excel 2007以前Excel 2010以降
構文=NORMSINV(x)=NORM.S.INV(x)
計算結果同じ同じ
Googleスプレッドシート使用可能使用可能(推奨)
将来性将来廃止の可能性あり現行の標準

新しくシートを作るときはNORM.S.INVを使いましょう。既存のシートでNORMSINVが使われている場合は、そのままでも問題なく動作しますよ。

NORMSINVの基本的な使い方

NORMSINV関数の基本を、よく使う2つのパターンで見ていきましょう。

片側95%の臨界値を求める

「上位5%の境目にあたるzスコアはいくつ?」を求めるケースです。

=NORMSINV(0.95)

結果は約1.6449です。zスコアが1.6449を超えると、上位5%に入ることを意味します。統計的検定で有意水準5%の臨界値(きかいち)を出したいときに使います。

両側95%信頼区間の臨界値を求める

両側95%信頼区間では、上下2.5%ずつを除外します。右側の臨界値は確率0.975で求めます。

=NORMSINV(0.975)

結果は約1.9600です。左側の臨界値は符号を反転して-1.9600になります。

よく使う確率値とzスコアの対応をまとめておきます。

確率(x)zスコア(戻り値)よく使う場面
0.901.2816片側10%臨界値
0.951.6449片側5%臨界値
0.9751.9600両側95%信頼区間
0.992.3263片側1%臨界値
0.9952.5758両側99%信頼区間

1.96という数字は統計で最も頻出する値の1つです。覚えておくと便利ですよ。

実務での活用例

基本の使い方がわかったところで、実務で役立つパターンを紹介します。

品質管理で合否ラインを設定する

製造業の品質管理で「不良率を3%以下にしたい」場面を考えます。上位3%を超えたら規格外とする場合、合否ラインのzスコアは次のように求めます。

=NORMSINV(1 - 0.03)

これは=NORMSINV(0.97)と同じで、結果は約1.8808です。

zスコアが1.8808を超えるデータは規格外と判定できます。平均と標準偏差(ひょうじゅんへんさ)がわかれば、元の単位に換算して具体的な合否ラインを設定できますよ。

テスト結果を偏差値に変換する

「上位10%は偏差値いくつ以上か?」を求める場合です。偏差値は平均50・標準偏差10に変換した値です。

=50 + 10 * NORMSINV(1 - 0.10)

NORMSINV(0.90)は約1.2816なので、結果は約62.8です。偏差値63以上が上位10%の目安になります。

NORM.S.DISTで計算結果を検証する

NORMSINV関数の出力をNORM.S.DIST関数に渡すと、元の確率に戻るはずです。

=NORM.S.DIST(NORMSINV(0.95), TRUE)

結果は0.95です。元の確率と一致すれば、計算が正しいと確認できます。この「往復検証」は統計関数を使うときの基本テクニックです。覚えておくと安心ですよ。

Excel から移行するときの注意点

ExcelでNORMSINVを使っていたシートをスプレッドシートに移行する場合、知っておきたいポイントをまとめます。

そのままコピーしても動く

NORMSINVはスプレッドシートでも互換サポートされています。ExcelファイルをGoogleドライブにアップロードしても、数式はそのまま動作します。

新しい数式はNORM.S.INVで書く

既存シートのNORMSINVは放置でOKです。ただし、新しくセルに数式を追加するときはNORM.S.INV関数を使いましょう。

理由は2つあります。

  • 将来性: NORMSINVは互換用の旧関数名なので、将来廃止される可能性がある
  • 一貫性: 1つのシートに旧名と新名が混在すると、メンテナンスしにくくなる

一括置換で移行する方法

シート内のNORMSINVをまとめてNORM.S.INVに置き換えたい場合は、次の手順で対応できます。

  1. Ctrl + H(Mac: Cmd + H)で「検索と置換」を開く
  2. 検索欄に NORMSINV( と入力
  3. 置換欄に NORM.S.INV( と入力
  4. 「すべて置換」をクリック

引数の構造が同じなので、カッコの中身を変える必要はありません。置換後に数式エラーが出ていないか確認すれば完了です。

関連する統計関数との使い分け

NORMSINVの周辺にある統計関数を整理しておきます。

やりたいこと使う関数記事リンク
確率 → zスコア(標準正規分布)NORMSINV / NORM.S.INVNORM.S.INV関数
zスコア → 確率(標準正規分布)NORMSDIST / NORM.S.DIST 
確率 → 値(任意の正規分布)NORMINV / NORM.INV 
値 → 確率(任意の正規分布)NORMDIST / NORM.DIST 
値をzスコアに変換STANDARDIZE 

NORMSINVは「標準正規分布で確率→zスコア」の旧関数名です。目的に合った関数を選んでみてくださいね。

よくあるエラーと対処法

NORMSINV関数で起きやすいエラーを2つ紹介します。

#NUM! エラー:確率の範囲外

引数に0以下や1以上の値を指定すると#NUM!エラーになります。

=NORMSINV(0)       → #NUM! エラー(0は不可)
=NORMSINV(1)       → #NUM! エラー(1は不可)
=NORMSINV(-0.5)    → #NUM! エラー(負の値は不可)

有効な範囲は0より大きく1より小さい値です。0と1自体は含まないので注意してください。

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

引数に文字列を渡すと#VALUE!エラーになります。

=NORMSINV("abc")   → #VALUE! エラー

セル参照を使うときは、参照先が数値かどうかを確認しましょう。IF関数とISNUMBER関数(値が数値かどうか判定する関数)を組み合わせると、エラーを事前に防げます。

=IF(ISNUMBER(A1), NORMSINV(A1), "数値を入力してください")

まとめ

NORMSINV関数は、標準正規分布の確率からzスコアを逆算する旧関数名です。

  • 構文は =NORMSINV(x) で、引数は確率値1つだけ
  • NORM.S.INV関数と計算結果はまったく同じ
  • Excel 2010以降で新関数名に移行されたが、スプレッドシートでは今も使える
  • 新しく数式を書くなら NORM.S.INV を使うのがおすすめ
  • 既存シートのNORMSINVは「検索と置換」で一括移行できる

ExcelからスプレッドシートにNORMSINVを含むシートを移行しても、数式はそのまま動きます。慌てて書き直す必要はありませんよ。ただ、今後新しく入力する数式はNORM.S.INV関数に統一しておくと、メンテナンスがラクになります。

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