「zスコアが1.5のとき、上位何%に入るんだろう?」。データ分析で標準化した値を扱うとき、こんな疑問が出てきませんか?
zスコア(標準化された値)を確率に変換するには、標準正規分布表を引くのが昔ながらの方法です。でも毎回表を見るのは面倒ですよね。
そんなときに使えるのが、GoogleスプレッドシートのNORM.S.DIST関数です。この記事では基本構文から実務での活用パターン、似た関数との使い分けまで解説します。
スプレッドシートのNORM.S.DIST関数とは
NORM.S.DIST関数(読み方: ノーム・エス・ディスト関数)は、標準正規分布にもとづいて確率を返す関数です。「NORM」は「Normal(正規)」、「S」は「Standard(標準)」、「DIST」は「Distribution(分布)」の略です。
標準正規分布とは、平均が0、標準偏差が1の正規分布のことです。あの釣り鐘型のグラフ(ベルカーブ)の中でも、基準となる形ですね。
NORM.S.DIST関数にできることをまとめると、次のとおりです。
- zスコアから「その値以下になる確率」を求める(累積確率)
- 標準正規分布グラフ上の密度(高さ)を取得する
- 標準化済みデータの相対的な位置を数値化する
- 統計的な判定(p値の算出など)に活用する
NOTE
NORM.S.DIST関数はGoogleスプレッドシートの全バージョンで使えます。Excelにも同名の関数があり、動作は同じです。
NORM.S.DIST関数の書き方(構文と引数)
基本構文
=NORM.S.DIST(z, 累積)
カッコの中に2つの引数を指定します。
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| z | 必須 | 確率を求めたいzスコア(標準化された値) |
| 累積(cumulative) | 必須 | TRUEで累積分布、FALSEで確率密度 |
NORM.DIST関数は4つの引数が必要ですが、NORM.S.DIST関数は2つだけです。平均と標準偏差は「0と1」に固定されているので、指定する必要がありません。
TIP
zスコアとは、データを「平均0・標準偏差1」に変換した値のことです。STANDARDIZE関数で計算できますよ。
NORMSDIST(旧関数名)との関係
GoogleスプレッドシートにはNORMSDISTという関数もあります。これはNORM.S.DISTの旧バージョンです。
=NORMSDIST(1.5) ← 旧関数名(累積確率のみ)
=NORM.S.DIST(1.5, TRUE) ← 新関数名(推奨)
NORMSDISTは常に累積確率(TRUE相当)を返します。確率密度(FALSE)を指定できません。新しく数式を書くときはNORM.S.DISTを使いましょう。
基本的な使い方
NORM.S.DIST関数の基本を、TRUE(累積確率)とFALSE(確率密度)に分けて見ていきましょう。
TRUE(累積分布関数)— z以下は全体の何%?
TRUEを指定すると、累積分布関数(CDF)の値を返します。「指定したz以下になる確率」がわかります。
=NORM.S.DIST(1.5, TRUE)
結果は約0.9332(93.3%) です。zスコアが1.5以下のデータは全体の約93.3%を占めます。つまり上位約6.7%に位置するということですね。
FALSE(確率密度関数)— その点の密度は?
FALSEを指定すると、確率密度関数(PDF)の値を返します。正規分布グラフ上のy座標の高さです。
=NORM.S.DIST(1.5, FALSE)
結果は約0.1295です。これは「確率」ではなくグラフの高さなので、直接「何%」と読むことはできません。正規分布のグラフを描くときに使います。
代表的なzスコアと確率の対応表
よく使うzスコアの値をまとめておきます。
| zスコア | TRUE(累積確率) | 意味 |
|---|---|---|
| -1.96 | 0.0250(2.5%) | 下位2.5% |
| -1 | 0.1587(15.9%) | 平均より1σ下 |
| 0 | 0.5000(50.0%) | ちょうど平均 |
| 1 | 0.8413(84.1%) | 平均より1σ上 |
| 1.96 | 0.9750(97.5%) | 上位2.5% |
| 2.58 | 0.9951(99.5%) | 上位0.5% |
z = 0のときちょうど0.5(50%)になるのが、標準正規分布の特徴です。平均を中心に左右対称なので、ちょうど半分になりますよ。
実務での活用パターン
NORM.S.DIST関数の基本がわかったところで、実際の業務で使えるパターンを紹介します。
テスト成績の相対位置をzスコアから求める
テストの点数をzスコアに変換してから、NORM.S.DIST関数で確率を求めるワークフローです。
たとえば平均点65点・標準偏差12点の試験で82点を取った場合を考えます。
ステップ1: zスコアを計算する
=STANDARDIZE(82, 65, 12)
結果は1.4167です。平均から約1.4σ上に位置しています。
ステップ2: NORM.S.DIST関数で累積確率を求める
=NORM.S.DIST(STANDARDIZE(82, 65, 12), TRUE)
結果は約0.9217(92.2%) です。82点以下が全体の92.2%なので、上位約7.8%に入っていることがわかります。
TIP
この計算は
=NORM.DIST(82, 65, 12, TRUE)と同じ結果になります。すでに平均と標準偏差がわかっているなら、NORM.DIST関数を直接使うほうがシンプルです。NORM.S.DIST関数が活きるのは、zスコアが先に手元にある場合ですよ。
品質管理の合否判定ラインを確率で示す
製造業で「規格外品が出る確率」を計算する場面を考えます。部品の長さが平均50mm・標準偏差0.5mmで、規格上限が51mmの場合です。
まずzスコアに変換します。
=STANDARDIZE(51, 50, 0.5)
結果はz = 2です。次にNORM.S.DIST関数で上限を超える確率を求めます。
=1 - NORM.S.DIST(2, TRUE)
結果は約0.0228(2.3%) です。規格上限を超える不良品は約2.3%と見込めます。
両側(上限・下限の両方を超える確率)を求めるなら、次のようにします。
=2 * (1 - NORM.S.DIST(2, TRUE))
結果は約0.0456(4.6%) です。品質管理の報告資料で「規格外率」を示すときに便利ですよ。
統計的検定のp値を求める
データ分析で「この差は偶然ではない」と判断するためのp値を求める場面です。
たとえば検定統計量(z値)が2.1だった場合、両側検定のp値は次のように計算します。
=2 * (1 - NORM.S.DIST(2.1, TRUE))
結果は約0.0357です。一般的な有意水準0.05を下回っているので、「統計的に有意な差がある」と判断できます。
p値(probability value)とは、帰無仮説が正しいと仮定したときに、観測された結果以上に極端な値が得られる確率のことです。値が小さいほど「偶然では起きにくい」ことを意味しますよ。
よくあるエラーと対処法
NORM.S.DIST関数でつまずきやすいポイントをまとめました。
引数に文字列を渡して#VALUE!エラー
数値であるべき引数にテキストが入ると#VALUE!エラーになります。セル参照を使うときは、参照先が数値であることを確認しましょう。
=NORM.S.DIST("abc", TRUE) ← #VALUE! エラー
TRUE/FALSEの指定忘れ
2番目の引数は省略できません。目的に合わせてTRUEかFALSEを指定してください。「z以下の確率」が欲しいならTRUE、グラフの高さが欲しいならFALSEです。実務ではTRUEを使う場面がほとんどですよ。
NORM.DIST関数と引数の数を間違える
NORM.S.DIST関数は引数が2つですが、NORM.DIST関数は4つ必要です。間違えて平均や標準偏差を渡そうとすると、引数が多すぎるエラーになります。
=NORM.S.DIST(1.5, 0, 1, TRUE) ← 引数が多すぎるエラー
=NORM.S.DIST(1.5, TRUE) ← 正しい書き方
似た関数との違い・使い分け
Googleスプレッドシートには、正規分布に関連する関数がいくつかあります。それぞれの役割を整理しておきましょう。
| 関数 | 引数 | 用途 | 関係性 |
|---|---|---|---|
| NORM.S.DIST | z, 累積 | 標準正規分布の確率を求める | 本記事の関数 |
| NORM.DIST | x, 平均, 標準偏差, 累積 | 任意の正規分布の確率を求める | NORM.S.DISTの汎用版 |
| NORM.INV | 確率, 平均, 標準偏差 | 確率から値を逆算する | NORM.DISTの逆関数 |
| GAUSS | z | 平均からzまでの面積を求める | NORM.S.DIST(z,TRUE) – 0.5 |
| PHI | z | 標準正規分布の密度を返す | NORM.S.DIST(z,FALSE) と同じ |
使い分けのポイントをまとめます。
- zスコアが手元にある → NORM.S.DIST(引数2つでシンプル)
- 生データから直接確率を求めたい → NORM.DIST(平均・標準偏差を指定)
- 確率から値を逆算したい → NORM.INV
- 平均からの片側面積だけ知りたい → GAUSS
- グラフの高さだけ欲しい → PHI
NORM.S.DISTとNORM.DISTの関係を数式で表すと、こうなります。
=NORM.S.DIST(1.5, TRUE) ← 標準正規分布に特化
=NORM.DIST(1.5, 0, 1, TRUE) ← 平均0・標準偏差1を明示(結果は同じ)
すでにzスコアに変換済みのデータを扱うならNORM.S.DIST関数が便利です。生データから確率を求めるならNORM.DIST関数を使いましょう。
まとめ
NORM.S.DIST関数は、標準正規分布にもとづいてzスコアから確率を求める関数です。
- 引数は2つだけ。z値とTRUE/FALSEを指定する
- TRUEで「z以下の確率」、FALSEでグラフの密度値を返す
- STANDARDIZE関数でzスコアに変換してから使うのが基本のワークフロー
- テスト成績の分析、品質管理の規格外率、統計的検定のp値算出に活用できる
- NORM.DIST関数の「平均0・標準偏差1」版。引数が少ないぶんシンプルに書ける
- GAUSS関数やPHI関数との関係も押さえておくと、場面に応じた使い分けができる
「このzスコアは上位何%?」をスプレッドシートでサッと計算できるようになると、統計分析の幅がぐっと広がります。ぜひ実際のデータで試してみてくださいね。
