ExcelのNORM.S.DIST関数の使い方|標準正規分布の確率を求める方法

スポンサーリンク

「zスコアが1.96のとき、上位何%に入るんだっけ?」。統計の教科書で見かけるこの疑問、Excelで一発で解決できます。

正規分布表をめくって値を探すのは手間がかかりますよね。しかも表を読み間違えると計算がずれてしまいます。

そんなときに使うのがNORM.S.DIST関数です。この記事では基本の書き方から実務での活用例まで解説します。NORM.DIST関数との違いもあわせて整理しました。

NORM.S.DIST関数とは?標準正規分布の確率を返す関数

NORM.S.DIST関数(読み方: ノルム・エス・ディスト)は、標準正規分布に従う確率を返す関数です。「NORM」は「Normal Distribution(正規分布)」、「S」は「Standard(標準)」、「DIST」は「Distribution(分布)」の略です。

標準正規分布とは、平均0・標準偏差1に固定された正規分布のことです。実データをzスコア(標準化した値)に変換すると、この分布を使って確率を計算できます。

NORM.S.DIST関数は、NORM.DIST関数の特殊ケースです。NORM.DIST関数で平均0、標準偏差1を指定したときと同じ結果を返します。引数が2つだけなので、zスコアの確率を求めるときはこちらのほうがシンプルに書けます。

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

  • zスコアから「下位何%に位置するか」を計算する
  • 統計的検定でp値や臨界値を確認する
  • 正規分布表を引く代わりにExcelで確率を求める
  • STANDARDIZE関数と組み合わせて実データの確率を求める

NOTE

NORM.S.DIST関数はExcel 2010以降で使えます。Microsoft 365、Excel 2013〜2024のすべてのバージョンに対応しています。

NORM.S.DIST関数の書き方(構文と引数)

基本構文

=NORM.S.DIST(z, 関数形式)

カッコの中に、確率を求めたいzスコアと出力の形式を指定します。NORM.DIST関数と違い、平均と標準偏差の指定は不要です(平均0・標準偏差1に固定されているため)。

引数の説明

引数必須/任意説明
z必須確率を求めたい値(zスコア)。数値を指定する
関数形式必須TRUEで累積分布関数(CDF)、FALSEで確率密度関数(PDF)

2つの引数はどちらも必須です。省略するとエラーになります。

TIP

関数形式にはTRUE/FALSEのほか、1/0でも指定できます。実務ではほとんどの場面でTRUE(累積分布関数)を使います。

累積分布関数(CDF)と確率密度関数(PDF)の違い

ちょっとむずかしく見えますが、やっていることはシンプルです。

  • CDF(TRUE): 「z以下になる確率」を返す。0〜1の値になる。「下位何%?」を知りたいときに使う
  • PDF(FALSE): 「zにおける確率密度」を返す。標準正規分布の曲線の高さ。グラフ描画で使う

たとえばz = 1.96のとき、CDFは「1.96以下になる確率(約97.5%)」を返し、PDFは「z = 1.96における曲線の高さ」を返します。

NORM.S.DIST関数の基本的な使い方

zスコアを使った基本的な計算例を見ていきましょう。

z = 0(平均値)の確率を求める

=NORM.S.DIST(0, TRUE)

結果は 0.5(50%)です。z = 0は標準正規分布のちょうど真ん中なので、「0以下になる確率」は50%になります。

z = 1.96の確率を求める(95%信頼区間)

=NORM.S.DIST(1.96, TRUE)

結果は約 0.975(97.5%)です。統計でよく使う値で、「平均から1.96標準偏差以内に全体の95%が収まる」ことを意味します。

z = -1.96の確率を求める

=NORM.S.DIST(-1.96, TRUE)

結果は約 0.025(2.5%)です。標準正規分布は左右対称なので、z = -1.96の確率は z = 1.96の確率を1から引いた値と等しくなります。

マイナスのzスコアとプラスのzスコアの確率をまとめて確認する

よく使うzスコアの確率を一覧表にしておくと便利です。

zスコア=NORM.S.DIST(z, TRUE)意味
-20.0228(2.3%)下位2.3%
-10.1587(15.9%)下位15.9%
00.5000(50%)ちょうど真ん中
10.8413(84.1%)上位15.9%
20.9772(97.7%)上位2.3%

TIP

z = 1なら約68%のデータが平均から1標準偏差以内に収まり、z = 2なら約95%が収まります。この「68-95-99.7ルール」は統計の基本なので、覚えておくと便利ですよ。

NORM.S.DIST関数の実践的な使い方・応用例

STANDARDIZE関数と組み合わせて実データの確率を求める

テストの点数が平均65点、標準偏差12点で、80点の生徒が上位何%に入るかを求めてみましょう。

まずSTANDARDIZE関数でzスコアに変換します。

=STANDARDIZE(80, 65, 12)

結果は 1.25 です。次にNORM.S.DIST関数で確率を求めます。

=NORM.S.DIST(1.25, TRUE)

結果は約 0.8944(89.4%)です。80点はクラスの上位約10.6%に位置することがわかります。

1つの数式にまとめることもできます。

=NORM.S.DIST(STANDARDIZE(80, 65, 12), TRUE)

この方法は、NORM.DIST関数を使って =NORM.DIST(80, 65, 12, TRUE) と書いた場合と同じ結果になります。zスコアの算出過程を明示したいときはSTANDARDIZE関数との組み合わせが、シンプルに結果だけ欲しいときはNORM.DIST関数のほうが便利です。

統計的検定でp値を計算する

データ分析で「この結果は偶然ではないか?」を判断するとき、zスコアからp値を求める場面があります。

たとえば、あるABテストの結果からzスコアが2.33と算出されたとします。この値の片側p値を求めてみましょう。

=1 - NORM.S.DIST(2.33, TRUE)

結果は約 0.0099(約1%)です。p値が0.05(5%)より小さいので、「統計的に有意な差がある」と判断できます。

両側検定のp値を求めたい場合は、片側の値を2倍にします。

=2 * (1 - NORM.S.DIST(2.33, TRUE))

結果は約 0.0198(約2%)です。両側検定でも有意水準5%を満たしています。

製品検査でzスコアによる合否判定を行う

製品の重量を標準化して、規格外かどうかをzスコアで判定する方法です。

平均500g、標準偏差5gの製品で、zスコアが2を超えたら「要検査」とフラグを立てる場合、次のように数式を組めます。

=IF(ABS(STANDARDIZE(A2, 500, 5)) > 2, "要検査", "合格")

このとき、zスコアが2を超える確率はNORM.S.DIST関数で確認できます。

=2 * (1 - NORM.S.DIST(2, TRUE))

結果は約 0.0456(約4.6%)です。全体の約4.6%が「要検査」に該当する計算になります。

TIP

AVERAGE関数STDEV.P関数で平均と標準偏差を求めれば、STANDARDIZE関数に渡してzスコアを算出し、NORM.S.DIST関数で確率を求める一連の流れが完成します。

よくあるエラーと対処法・似た関数との違い

#VALUE!エラー

引数に数値以外の文字列を指定すると発生します。

=NORM.S.DIST("abc", TRUE)  → #VALUE!エラー

セル参照を使う場合は、参照先に数値が入っているか確認してください。

引数不足エラー

NORM.S.DIST関数は2つの引数がどちらも必須です。関数形式を省略するとエラーになります。

=NORM.S.DIST(1.96)  → エラー(引数不足)

必ず第2引数にTRUEまたはFALSEを指定してください。

結果が0や1に極端に近くなるケース

エラーではありませんが、zスコアが大きい(または小さい)場合、結果が0.0000…や0.9999…のように極端な値になることがあります。

=NORM.S.DIST(5, TRUE)   → 0.99999971(ほぼ1)
=NORM.S.DIST(-5, TRUE)  → 0.00000029(ほぼ0)

これは標準正規分布の性質どおりの正しい結果です。平均から5標準偏差も離れた値は、ほぼ確実にその範囲内(または範囲外)に収まります。

TIP

NORM.S.DIST関数はNORM.DIST関数と違い、#NUM!エラーが発生しにくいです。NORM.DIST関数では標準偏差に0以下を指定すると#NUM!エラーになりますが、NORM.S.DIST関数は標準偏差が1に固定されているためこの問題が起きません。

NORM.S.DIST関数とNORM.DIST関数の違い

項目NORM.S.DISTNORM.DIST
引数の数2(z, 関数形式)4(x, 平均, 標準偏差, 関数形式)
分布の指定平均0・標準偏差1に固定任意の平均・標準偏差を指定できる
使う場面zスコアの確率を求めるとき実データの確率を直接求めるとき

NORM.DIST関数で平均0、標準偏差1を指定すると、NORM.S.DIST関数と同じ結果になります。

=NORM.S.DIST(1.96, TRUE)        → 0.975
=NORM.DIST(1.96, 0, 1, TRUE)    → 0.975(同じ結果)

どちらを使えばいいか迷ったら

以下の基準で判断してみてください。

  • NORM.S.DIST関数を使う場面: すでにzスコアに変換した値の確率を求めたい、統計的検定のp値を計算したい
  • NORM.DIST関数を使う場面: 実データの平均・標準偏差がわかっていて、生の値の確率を直接求めたい(例: 80点が上位何%か)

実務で「ある値が上位何%か」を手軽に求めたいだけなら、NORM.DIST関数のほうが便利です。平均や標準偏差をわざわざ標準化する必要がないので1つの数式で完結します。一方、統計的検定やzスコアを使った分析ではNORM.S.DIST関数がよく使われます。

NORM.S.INV関数との関係

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)

セットで覚えておくと、統計的な分析の幅が広がります。

旧NORMSDIST関数との互換性

NORM.S.DIST関数はExcel 2010で導入された「新しい名前」の関数です。旧NORMSDIST関数と計算結果はまったく同じです。

項目NORM.S.DISTNORMSDIST(旧)
導入バージョンExcel 2010Excel 2003以前
計算結果同一同一
引数の数2(z, 関数形式)1(zのみ、CDF固定)
今後のサポート推奨互換性のために残存

旧NORMSDIST関数にはCDF/PDFの切り替え機能がなく、常にCDFを返します。Microsoftは新しい関数名の使用を推奨しています。新規で数式を作るときはNORM.S.DIST関数を使いましょう。

関連関数の一覧

関数説明
NORM.DIST正規分布の確率(任意の平均・標準偏差)
NORM.S.DIST標準正規分布の確率(平均0・標準偏差1固定)
NORM.INV正規分布の逆関数(確率→値)
NORM.S.INV標準正規分布の逆関数(確率→zスコア)
NORMSDISTNORM.S.DISTの旧名称
STANDARDIZEデータをzスコアに変換する
STDEV.P母集団の標準偏差を求める
AVERAGE平均値を求める

まとめ

NORM.S.DIST関数は、標準正規分布(平均0・標準偏差1)に従う確率を返す関数です。

この記事のポイント

  • 構文は =NORM.S.DIST(z, 関数形式) の2つの引数を指定する
  • 関数形式をTRUEにすると累積分布関数(CDF)、FALSEにすると確率密度関数(PDF)
  • 実務ではCDF(TRUE)を使う場面がほとんど。「z以下になる確率」が求まる
  • 「z以上の確率」は =1 - NORM.S.DIST(...) で計算する
  • NORM.DIST関数の特殊ケース(平均0・標準偏差1を固定)で、引数が少なくシンプル
  • STANDARDIZE関数と組み合わせれば、実データの確率もNORM.S.DIST関数で求められる

関連記事

NORM.S.DIST関数の使い方がわかったら、以下の関数もあわせて覚えてみてください。データ分析の幅が広がりますよ。

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