古いExcelファイルを開いたら、見慣れない NORMSDIST という関数が数式に入っていて戸惑った経験はありませんか。これはExcelの統計関数のひとつで、標準正規分布(平均0・標準偏差1の正規分布)の累積確率を返す関数です。
ExcelのNORMSDIST関数はExcel 2007以前から使われている互換性関数です。Excel 2010以降では新しい NORM.S.DIST 関数が登場しています。とはいえ古いテンプレートやマクロでは今も現役で動いているので、引き継ぎ業務やメンテナンスの場面で読めるようにしておくと安心ですよ。
この記事ではExcelのNORMSDIST関数について、構文と基本的な使い方、新関数 NORM.S.DIST との違い、一般正規分布の NORMDIST との使い分けまでを解説します。さらに品質管理(シグマ管理)・z検定・偏差値変換での実務活用例、よくあるエラーの対処法までまとめてカバーしますよ。
ExcelのNORMSDIST関数とは
ExcelのNORMSDIST関数は、標準正規分布の累積分布関数(z以下の確率を返す関数)の値を計算する統計関数です。指定したz値以下になる確率(P(Z ≤ z))を 0〜1 の小数で返してくれます。
「標準正規分布」は、平均が 0、標準偏差が 1 に固定された正規分布のことです。一般の正規分布を標準化(z変換)したあとの形と考えると分かりやすいですよ。
Excel 2007以前から提供されている古い関数で、現行のExcelでは「互換性関数」のカテゴリーに分類されています。Excel 2010以降では後継関数の NORM.S.DIST(ピリオドあり)が用意されており、Microsoft もそちらの利用を推奨しています。
ただし互換性関数も引き続き利用できます。過去のExcelファイルや業務テンプレートで使われている数式を読み解くには、NORMSDIST の知識が欠かせません。
NORMSDISTとNORM.S.DISTの早見表
| 項目 | NORMSDIST(旧) | NORM.S.DIST(新) |
|---|---|---|
| バージョン | Excel全バージョン | Excel 2010以降 |
| カテゴリ | 互換性関数 | 統計関数 |
| 引数の数 | 1個 | 2個 |
| 第2引数 | なし | 関数形式(TRUE / FALSE) |
| 返せる値 | 累積確率(CDF)のみ | 累積(CDF)と密度(PDF)の両方 |
| 推奨度 | 互換性目的のみ | 標準的に推奨 |
NORMSDIST関数の構文と引数
NORMSDIST関数の構文は、引数1つだけのシンプルな形です。
=NORMSDIST(z)
引数 z には、確率を求めたい z 値(標準正規分布上の位置)を指定します。z は「平均から標準偏差何個分離れているか」を表す指標で、負の数も指定できますよ。
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| z | 必須 | 確率を求める z 値(任意の実数。負の値も可) |
戻り値は 0 以上 1 以下の小数で、z 以下になる確率を表します。z=0 のときちょうど 0.5 が返り、z が大きくなるほど 1 に近づきます。逆に z が小さく(負の方向に大きく)なるほど 0 に近づくのが特徴です。
NORMSDIST関数の基本的な使い方
ここから具体的に z 値を入れて、Excel で累積確率を取得してみましょう。標準正規分布の代表的な z 値での結果は以下のとおりです。
| 数式 | 結果 | 意味 |
|---|---|---|
=NORMSDIST(-3) | 0.00135 | z ≤ -3 となる確率(左裾の 0.135%) |
=NORMSDIST(-2) | 0.02275 | z ≤ -2 となる確率(左裾の 2.28%) |
=NORMSDIST(-1) | 0.15866 | z ≤ -1 となる確率(左裾の 15.87%) |
=NORMSDIST(0) | 0.50000 | z ≤ 0 となる確率(中央でちょうど半分) |
=NORMSDIST(1) | 0.84134 | z ≤ 1 となる確率(左から 84.13%) |
=NORMSDIST(1.96) | 0.97500 | 両側5%検定の境界(上側 2.5%) |
=NORMSDIST(2) | 0.97725 | z ≤ 2 となる確率(左から 97.73%) |
=NORMSDIST(3) | 0.99865 | z ≤ 3 となる確率(左から 99.865%) |
z=0 のときに 0.5 が返るのは、標準正規分布が左右対称な釣り鐘型(ベルカーブ)だからです。中央より左側にちょうど半分のデータが入っている、ということですね。
「z 以上」の確率を求めたいとき
NORMSDIST が返すのは「z 以下」の確率なので、「z 以上」を知りたい場合は 1 から引くだけでOKです。
=1 - NORMSDIST(1.96)
→ 0.025 (上側 2.5%)
「a ≤ z ≤ b」の区間確率を求めたいとき
ある区間に入る確率を知りたい場合は、上限の累積から下限の累積を引きます。
=NORMSDIST(1) - NORMSDIST(-1)
→ 0.6827 (±1σ 内に入る確率 = 68.27%)
これが有名な「68-95-99.7ルール」の標準正規分布バージョンの計算方法です。
NORMSDISTとNORM.S.DISTの違い
NORMSDISTとNORM.S.DISTの最大の違いは、第2引数の有無です。新関数 NORM.S.DIST には「関数形式」という第2引数が追加されています。これによって、累積分布(CDF)と確率密度(PDF)を切り替えて計算できるようになりました。
=NORMSDIST(z) ← 旧:常に累積(CDF)
=NORM.S.DIST(z, 関数形式) ← 新:TRUEで累積、FALSEで密度
新関数の第2引数に TRUE を指定すると、旧関数 NORMSDIST と同じ累積確率を返します。FALSE を指定すると、確率密度関数(z 付近の確率の密度)の値を返してくれますよ。
数式の置き換え対応表
| 旧(NORMSDIST) | 新(NORM.S.DIST) | 戻り値 |
|---|---|---|
=NORMSDIST(1.96) | =NORM.S.DIST(1.96, TRUE) | 0.97500(同じ) |
| (旧では計算不可) | =NORM.S.DIST(1.96, FALSE) | 0.05844(密度) |
どちらを使うべきか
新規にExcel 2010以降のファイルで関数を組むなら、NORM.S.DIST を使うのが推奨です。確率密度(PDF)も計算できるので分析の自由度が上がりますし、Microsoft も新関数の利用を案内していますよ。
一方で、以下のケースでは NORMSDIST を使う場面が残ります。
- Excel 2007以前のバージョンと共有するファイル(
.xls形式) - 既存の業務テンプレートに NORMSDIST が組み込まれていてメンテナンスする場合
- 古いVBAマクロが NORMSDIST を呼び出している場合
「とりあえず動けばいい」場合は旧関数のままでも問題ありません。新規開発や大幅な改修のタイミングで新関数に置き換えていくのが現実的ですよ。なお、互換性関数の体系は他の統計関数とも共通の流れになっています。たとえば ExcelのNORMINV関数の使い方|正規分布の逆関数 や ExcelのNEGBINOMDIST関数の使い方 も同様のパターンですよ。
NORMSDISTとNORMDISTの違い
NORMSDIST と NORMDIST も名前が似ているので混乱しがちです。両者の違いは「対象となる正規分布」と「引数の数」にあります。
| 項目 | NORMSDIST(標準) | NORMDIST(一般) |
|---|---|---|
| 対象分布 | 標準正規分布(平均0・標準偏差1 固定) | 任意の正規分布(平均・標準偏差を指定) |
| 引数の数 | 1個(z) | 4個(x, 平均, 標準偏差, 関数形式) |
| 用途 | z 値が手元にある場合・統計検定 | 業務データそのままで確率を求める場合 |
NORMSDIST は標準正規分布の累積確率に特化した関数です。一方の NORMDIST は、任意の正規分布に対応する汎用関数になります。
標準化の式(z 変換)
一般の正規分布の値 x を標準正規分布の z 値に変換するには、以下の式を使います。
z = (x - 平均) / 標準偏差
たとえば平均60点・標準偏差15点のテストで90点を取った場合、z = (90 − 60) / 15 = 2.0 です。これを NORMSDIST に渡せば、90点以下の人の割合がわかります。
=NORMSDIST(2)
→ 0.97725 (90点以下に約 97.73%、つまり90点は上位約 2.28%)
同じ計算を NORMDIST で書くと以下のようになります。
=NORMDIST(90, 60, 15, TRUE)
→ 0.97725 (同じ結果)
業務データを直接使うなら NORMDIST、標準化済みの値(検定統計量や偏差値)を扱うなら NORMSDIST と覚えておくと便利ですよ。NORMDIST 関数の詳細は ExcelのNORMDIST関数の使い方|正規分布 を参照してくださいね。
実務での活用例
活用例1:シグマ管理(品質管理での歩留まり計算)
製造業の品質管理では、製品の寸法や重量が正規分布に従うと仮定します。そのうえで規格内に入る確率(歩留まり)と外れる確率(不良率)を NORMSDIST で計算するのが定番です。
±k シグマの範囲内に入る確率は、NORMSDIST(k) - NORMSDIST(-k) で計算できます。標準正規分布で扱える理由は、データを標準化すれば k シグマがそのまま z=k に対応するからです。
| シグマ範囲 | 内側の確率(=NORMSDIST(k)-NORMSDIST(-k)) | 外側の不良率 | 100万個中の不良数(ppm) |
|---|---|---|---|
| ±1σ | 0.6827 | 0.3173 | 約 317,311 |
| ±2σ | 0.9545 | 0.0455 | 約 45,500 |
| ±3σ | 0.9973 | 0.0027 | 約 2,700 |
| ±4σ | 0.99994 | 0.00006 | 約 63 |
| ±5σ | 0.99999943 | 0.00000057 | 約 0.57 |
| ±6σ | 0.999999998 | 0.000000002 | 約 0.002 |
±3σ で 99.73% という値は、製造業の品質管理で頻出します。Excel 数式で書くと以下のとおりです。
=NORMSDIST(3) - NORMSDIST(-3)
→ 0.9973
外側(不良率)を直接求めたい場合は、対称性を活用してこう書けます。
=2 * (1 - NORMSDIST(3))
→ 0.0027
なお、6シグマ品質で語られる「3.4 ppm」は、平均が 1.5σ ずれることを織り込んだ運用上の指標です。理論値の ±6σ(0.002 ppm)とは別物なので、混同しないように注意してくださいね。
活用例2:z検定の p 値計算
統計検定(z検定)では、検定統計量 z を NORMSDIST に渡して p 値を計算します。p 値は「帰無仮説のもとでこの z 値以上に極端な値が観測される確率」のことです。
| 検定の種類 | 数式 | 意味 |
|---|---|---|
| 片側検定(上側) | =1 - NORMSDIST(z) | z より大きい値が出る確率 |
| 片側検定(下側) | =NORMSDIST(z) | z より小さい値が出る確率 |
| 両側検定 | =2 * (1 - NORMSDIST(ABS(z))) | 両側の極端な値の合計確率 |
具体例:z = 1.96 の両側検定
A/Bテストや母平均の検定で、検定統計量 z = 1.96 が得られたとします。両側 5% で有意かどうかを判定する数式はこうなります。
=2 * (1 - NORMSDIST(1.96))
→ 0.05000 (p 値 ≒ 0.05)
p ≒ 0.05 となるので、有意水準 5% のちょうど境界線です。z = 2.58 なら p ≒ 0.01 となり、1% 水準で有意になりますよ。代表的な棄却域の境界は、信頼区間や検定統計量に応じて以下の値を覚えておくと便利です。
- 両側 5%(信頼区間 95%): z = ±1.96 →
=NORMSDIST(1.96)≒ 0.975 - 両側 1%(信頼区間 99%): z = ±2.58 →
=NORMSDIST(2.58)≒ 0.995 - 片側 5%: z = 1.645 →
=NORMSDIST(1.645)≒ 0.950
活用例3:偏差値の上位パーセンタイル変換
偏差値は標準正規分布のスケール(z 値)を「平均50・標準偏差10」に変換した指標です。式は 偏差値 = 50 + 10z なので、z = (偏差値 − 50) / 10 で変換できます。
| 偏差値 | z 値 | 上位の割合(=1 – NORMSDIST(z)) |
|---|---|---|
| 50 | 0 | 50.00% |
| 55 | 0.5 | 30.85% |
| 60 | 1.0 | 15.87% |
| 65 | 1.5 | 6.68% |
| 70 | 2.0 | 2.28% |
| 75 | 2.5 | 0.62% |
| 80 | 3.0 | 0.135% |
たとえば偏差値 70 の人が「上位約 2.28%」に位置することは、模試判定や合格者の予測でよく使われる指標です。Excel 数式で書くと以下のようになります。
=1 - NORMSDIST((70 - 50) / 10)
→ 0.02275 (上位約 2.28%)
NORMSDIST関数でよくあるエラーと対処法
NORMSDIST は引数が z だけのシンプルな関数なので、エラーパターンも少なめです。代表的な2つを押さえておきましょう。
#VALUE! エラー:z が数値として認識されない
引数 z に数値以外の値(文字列や空白)が入っていると #VALUE! が返ります。たとえばセル参照先に「1.96」と全角で入っていたり、テキスト形式のセルだったりすると発生しがちです。
対処法: セル参照先のデータ型を確認し、必要なら VALUE 関数で数値化します。
=NORMSDIST(VALUE(A1))
#NAME? エラー:関数名のスペルミス
NORMSDIST を NORMDIST と書き間違えると、Excel は別の関数として解釈するので #NAME? にはなりません。むしろ意図しない値が返ってしまうので注意が必要ですよ。
#NAME? が出るのは、NORMSDIST を NOMSDIST(M が抜ける)や NORM_SDIST(アンダースコア混入)のように綴り違いした場合です。
対処法: 関数名の綴りを確認します。「N・O・R・M・S・D・I・S・T」と1文字ずつ確認すると安心ですよ。S は Standard(標準)の S、つまり「標準正規分布版」だと覚えておくと混同しにくくなります。
NORMDIST と書き間違えた場合の落とし穴
=NORMSDIST(1.96) のつもりで =NORMDIST(1.96) と書くと、引数不足のエラーになります。NORMDIST は引数が4つ必要な関数なので、引数1つだけだと正しく動かないからです。
エラーが出たら、関数名と引数の数をセットで確認するのがコツですよ。
まとめ:NORMSDIST関数を使いこなすポイント
ExcelのNORMSDIST関数は、標準正規分布の累積確率を一発で求められる便利な統計関数です。最後にポイントを整理しておきましょう。
- 構文:
=NORMSDIST(z)。引数は z 値1つだけのシンプルな関数 - 戻り値: 標準正規分布で z 以下になる確率(0〜1 の小数)
- 新関数 NORM.S.DIST との違いは第2引数の有無。確率密度(PDF)も使うなら NORM.S.DIST に置き換える
- NORMDIST との違い は対象分布。標準正規(平均0・標準偏差1)に特化したのが NORMSDIST
- シグマ管理 では
=NORMSDIST(k) - NORMSDIST(-k)で ±kσ の歩留まりを計算 - z検定 では
=2 * (1 - NORMSDIST(ABS(z)))で両側 p 値を計算 - 偏差値変換 では
=1 - NORMSDIST((偏差値 - 50) / 10)で上位の割合を計算
互換性関数なので新規開発では NORM.S.DIST が推奨です。とはいえ既存ファイルの読み解きや古いマクロの保守では、NORMSDIST の知識が今も役立ちますよ。新旧どちらでも同じ累積確率が取得できるので、状況に応じて使い分けてくださいね。
正規分布まわりの関連関数として、確率から逆に z 値を求める ExcelのNORMINV関数の使い方|正規分布の逆関数 と、業務データそのままで確率計算ができる ExcelのNORMDIST関数の使い方|正規分布 も合わせて押さえておくと、統計分析の幅が広がりますよ。同じ互換性関数シリーズでは、ExcelのLOGNORMDIST関数の使い方|対数正規分布、ExcelのHYPGEOMDIST関数の使い方|超幾何分布、ExcelのNEGBINOMDIST関数の使い方|負の二項分布 もぜひチェックしてみてください。
