「テストの点数が全体の上位何%に入るか、Excelで計算できないかな?」。こんな疑問を持ったことはありませんか?
平均値と標準偏差がわかっていても、「ある値が全体のどのあたりに位置するか」を手計算で求めるのは大変ですよね。正規分布表を引っ張り出して照らし合わせるのは面倒です。
そんなときに使うのがNORM.DIST関数です。この記事では基本の書き方から実務での活用例まで解説します。PDF/CDFの切り替え方やNORM.S.DIST関数との違いもあわせて整理しました。
NORM.DIST関数とは?正規分布の確率を返す関数
NORM.DIST関数(読み方: ノルム・ディスト)は、正規分布に従うデータの確率を返す関数です。「NORM」は「Normal Distribution(正規分布)」、「DIST」は「Distribution(分布)」の略です。
正規分布とは、平均値を中心に左右対称の釣り鐘型に広がるデータの分布パターンです。テストの点数、身長、製品の重量など、自然界や社会のさまざまなデータがこの分布に従います。
NORM.DIST関数では、cumulative引数を切り替えることで次の2つの値を求められます。
- 累積分布関数(CDF): 「ある値以下になる確率」を返す。cumulative = TRUE
- 確率密度関数(PDF): 「ある値における確率密度」を返す。cumulative = FALSE
実務で使う場面のほとんどはCDF(累積分布関数)のほうです。「ある値以下になる確率は何%か」を求められるので、品質管理や成績分析で活躍します。
NORM.DIST関数にできることをまとめると、次のとおりです。
- ある値が正規分布で「下位何%に位置するか」を計算する
- 品質管理で「規格値以下に収まる確率」を求める
- テストの偏差値的な位置づけを数値化する
- STANDARDIZE関数と組み合わせて標準化した値の確率を求める
NOTE
NORM.DIST関数はExcel 2010以降で使えます。Microsoft 365、Excel 2013〜2024のすべてのバージョンに対応しています。
NORM.DIST関数の書き方(構文と引数)
基本構文
=NORM.DIST(x, 平均, 標準偏差, 関数形式)
カッコの中に、確率を求めたい値、分布の平均と標準偏差、そして出力の形式を指定します。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| x | 必須 | 確率を求めたい値(数値) |
| 平均 | 必須 | 正規分布の平均値 |
| 標準偏差 | 必須 | 正規分布の標準偏差。0より大きい値を指定する |
| 関数形式 | 必須 | TRUEで累積分布関数(CDF)、FALSEで確率密度関数(PDF) |
4つの引数はすべて必須です。省略するとエラーになります。
TIP
関数形式にはTRUE/FALSEのほか、1/0でも指定できます。実務ではほとんどの場面でTRUE(累積分布関数)を使います。
累積分布関数(CDF)と確率密度関数(PDF)の違い
ちょっとむずかしく見えますが、やっていることはシンプルです。
- CDF(TRUE): 「x以下になる確率」を返す。0〜1の値になる。「下位何%?」を知りたいときに使う
- PDF(FALSE): 「xにおける確率密度」を返す。正規分布の曲線の高さ。グラフ描画で使う
たとえば平均50、標準偏差10の正規分布で x = 60 のとき、CDF は「60以下になる確率(約84.1%)」を返し、PDF は「x = 60 における曲線の高さ」を返します。
NORM.DIST関数の基本的な使い方
以下のテスト結果データでNORM.DIST関数を使ってみましょう。
クラス全体の平均点が65点、標準偏差が12点だとします。ある生徒の点数が80点のとき、全体のどのあたりに位置するかを求めます。
「80点以下になる確率」を求める(CDF)
=NORM.DIST(80, 65, 12, TRUE)
結果は約 0.894(89.4%)です。つまり80点はクラス全体の上位約10.6%に位置することがわかります。
別の点数でも確認する
=NORM.DIST(65, 65, 12, TRUE)
結果は 0.5(50%)です。平均点と同じ値は、正規分布のちょうど真ん中に位置します。
=NORM.DIST(50, 65, 12, TRUE)
結果は約 0.106(10.6%)です。50点は下位約10.6%に位置することがわかります。
確率密度関数(PDF)の値を確認する
=NORM.DIST(65, 65, 12, FALSE)
結果は約 0.0332 です。これは正規分布の曲線が平均値で最も高くなることを示しています。PDFの値そのものは「確率」ではないので、グラフ描画や比較に使います。
TIP
CDFの結果が0.5なら平均値と同じ位置、0.5より大きければ平均以上、小さければ平均以下です。直感的に覚えやすいですよね。
NORM.DIST関数の実践的な使い方・応用例
品質管理で「規格内に収まる確率」を求める
製品の重量が正規分布に従い、平均500g、標準偏差5gだとします。規格が490g〜510gの場合、規格内に収まる確率を求めてみましょう。
=NORM.DIST(510, 500, 5, TRUE) - NORM.DIST(490, 500, 5, TRUE)
結果は約 0.9545(95.45%)です。製品の約95.5%が規格内に収まることがわかります。
この式のポイントは、「510g以下の確率」から「490g以下の確率」を引くことで「490g〜510gの範囲に入る確率」を求めている点です。
売上目標の達成確率を予測する
過去データから月間売上の平均が800万円、標準偏差が120万円だとします。「今月1000万円を超える確率」を知りたい場面です。
=1 - NORM.DIST(1000, 800, 120, TRUE)
結果は約 0.0478(4.8%)です。NORM.DIST関数は「x以下の確率」を返すので、1からその値を引くと「xを超える確率」が求められます。
目標を900万円に引き下げると、
=1 - NORM.DIST(900, 800, 120, TRUE)
結果は約 0.2023(20.2%)です。目標の現実度を数値で把握できるので、計画の見直しに役立ちます。
正規分布の曲線グラフを作成する(PDF活用)
PDFの値を使うと、正規分布の釣り鐘型グラフを描けます。
A列に20から80まで1刻みで値を入力し、B列に次の数式を入力します。
=NORM.DIST(A2, 50, 10, FALSE)
B列のデータを散布図(または折れ線グラフ)にすると、平均50・標準偏差10の正規分布カーブが描画されます。プレゼン資料でデータの分布を視覚化したいときに便利です。
TIP
AVERAGE関数とSTDEV.P関数で実データの平均と標準偏差を求めれば、そのままNORM.DIST関数の引数に使えます。データの理論的な分布と実際の分布を比較する分析ができますよ。
よくあるエラーと対処法
#NUM!エラー
NORM.DIST関数で最もよく見るエラーです。以下の原因が考えられます。
| 原因 | 対策 |
|---|---|
| 標準偏差に0以下の値を指定した | 標準偏差は0より大きい正の値を指定する |
| 標準偏差にマイナスの値が入っている | セルの値を確認して正の値に修正する |
標準偏差は「データのばらつきの大きさ」なので、0やマイナスになることはありません。
=NORM.DIST(50, 50, 0, TRUE) → #NUM!エラー
=NORM.DIST(50, 50, -10, TRUE) → #NUM!エラー
=NORM.DIST(50, 50, 10, TRUE) → 正常(0.5)
#VALUE!エラー
引数に数値以外の文字列を指定すると発生します。
=NORM.DIST("abc", 50, 10, TRUE) → #VALUE!エラー
セル参照を使う場合は、参照先に数値が入っているか確認してください。
結果が0や1に極端に近くなるケース
エラーではありませんが、xが平均値から大きく離れている場合、結果が0.0000…や0.9999…のように極端な値になることがあります。
=NORM.DIST(100, 50, 10, TRUE) → 0.99997(ほぼ1)
=NORM.DIST(0, 50, 10, TRUE) → 0.00003(ほぼ0)
これは正規分布の性質どおりの正しい結果です。平均から5標準偏差も離れた値は、ほぼ確実にその範囲内(または範囲外)に収まります。
TIP
「関数形式」の引数を忘れると引数不足でエラーになります。CDFを求めるならTRUE、PDFを求めるならFALSEを必ず指定してください。
NORM.S.DIST関数・旧NORMDIST関数との違い・使い分け
NORM.DIST関数とNORM.S.DIST関数の違い
NORM.S.DIST関数は「標準正規分布」(平均0、標準偏差1)に特化した関数です。
| 項目 | NORM.DIST | NORM.S.DIST |
|---|---|---|
| 引数の数 | 4(x, 平均, 標準偏差, 関数形式) | 2(z, 関数形式) |
| 分布の指定 | 任意の平均・標準偏差を指定できる | 平均0・標準偏差1に固定 |
| 使う場面 | 実データの確率を直接求めるとき | zスコア(標準化済みの値)の確率を求めるとき |
NORM.DIST関数で平均0、標準偏差1を指定すると、NORM.S.DIST関数と同じ結果になります。
=NORM.DIST(1.96, 0, 1, TRUE) → 0.975
=NORM.S.DIST(1.96, TRUE) → 0.975(同じ結果)
どちらを使えばいいか迷ったら
以下の基準で判断してみてください。
- NORM.DIST関数を使う場面: 実データの平均・標準偏差がわかっていて、生の値の確率を求めたい(例: 80点が上位何%か)
- NORM.S.DIST関数を使う場面: すでにzスコアに変換した値の確率を求めたい、または統計の教科書的な計算をしたい
実務ではNORM.DIST関数のほうが使う場面が多いです。平均や標準偏差をわざわざ標準化する必要がないので便利ですよ。
旧NORMDIST関数との互換性
NORM.DIST関数はExcel 2010で導入された「新しい名前」の関数です。旧NORMDIST関数と計算結果はまったく同じです。
| 項目 | NORM.DIST | NORMDIST(旧) |
|---|---|---|
| 導入バージョン | Excel 2010 | Excel 2003以前 |
| 計算結果 | 同一 | 同一 |
| 今後のサポート | 推奨 | 互換性のために残存 |
Microsoftは新しい関数名の使用を推奨しています。新規で数式を作るときはNORM.DIST関数を使いましょう。
TIP
旧NORMDIST関数で作られたブックをNORM.DISTに書き換える必要はありません。結果は変わらないので、そのまま使い続けて大丈夫です。
関連関数の一覧
| 関数 | 説明 |
|---|---|
| NORM.DIST | 正規分布の確率(任意の平均・標準偏差) |
| NORM.S.DIST | 標準正規分布の確率(平均0・標準偏差1固定) |
| NORM.INV | 正規分布の逆関数(確率→値) |
| NORM.S.INV | 標準正規分布の逆関数(確率→zスコア) |
| NORMDIST | NORM.DISTの旧名称 |
| STANDARDIZE | データをzスコアに変換する |
| STDEV.P | 母集団の標準偏差を求める |
| AVERAGE | 平均値を求める |
まとめ
NORM.DIST関数は、正規分布に従うデータの確率を返す関数です。
この記事のポイント
- 構文は
=NORM.DIST(x, 平均, 標準偏差, 関数形式)の4つの引数を指定する - 関数形式をTRUEにすると累積分布関数(CDF)、FALSEにすると確率密度関数(PDF)
- 実務ではCDF(TRUE)を使う場面がほとんど。「ある値以下になる確率」が求まる
- 「x以上の確率」は
=1 - NORM.DIST(...)で計算する - 範囲内の確率は「上限のCDF – 下限のCDF」で求める
- NORM.S.DIST関数は標準正規分布(平均0・標準偏差1)に特化した関数
関連記事
NORM.DIST関数の使い方がわかったら、以下の関数もあわせて覚えてみてください。データ分析の幅が広がりますよ。
