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

スポンサーリンク

「Excelで使っていたNORMSDIST関数、スプレッドシートでも同じように使えるのかな?」。ExcelからGoogleスプレッドシートへ移行したときに気になるポイントですよね。

結論から言うと、NORMSDIST関数はGoogleスプレッドシートでもそのまま使えます。ただし、現在はNORM.S.DISTという新しい名前の関数が推奨されています。この記事ではNORMSDIST関数の使い方を、NORM.S.DISTとの違いや移行時のポイントとあわせて解説します。

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

NORMSDIST関数(読み方: ノームズ・ディスト関数)は、標準正規分布にもとづいて累積確率を返す互換関数です。関数名の「NORMS」は「Normal Standard(正規・標準)」の略。「DIST」は「Distribution(分布)」の略です。

標準正規分布とは、平均が0、標準偏差が1の正規分布のことです。あの釣り鐘型のグラフ(ベルカーブ)の中でも、基準となる形ですね。

NORMSDIST関数にできることをまとめると、次のとおりです。

  • zスコアから「その値以下になる確率」を求める(累積確率)
  • STANDARDIZE関数で標準化したデータの位置を数値化する
  • 統計的な判定(p値の算出など)に活用する

NOTE

NORMSDIST関数はGoogleスプレッドシートの全バージョンで使えます。ただしGoogleの公式ドキュメントではピリオド付きのNORM.S.DIST関数が推奨されています。新しく数式を書くときはNORM.S.DISTを使いましょう。

NORMSDIST関数の書き方(構文と引数)

基本構文

=NORMSDIST(z)

カッコの中に引数は1つだけです。

引数必須/任意説明
z必須累積確率を求めたいzスコア(標準化された値)

NORMDIST関数は4つの引数が必要ですが、NORMSDIST関数は1つだけです。平均と標準偏差は「0と1」に固定されていて、累積確率の計算(TRUE相当)のみに対応しています。

TIP

zスコアとは、データを「平均0・標準偏差1」に変換した値のことです。STANDARDIZE関数で計算できますよ。

NORM.S.DISTとの違い

NORMSDISTとNORM.S.DISTの最大の違いは「引数の数」です。NORM.S.DISTは2番目の引数で累積確率か確率密度かを選べます。一方、NORMSDISTは常に累積確率を返します。

=NORMSDIST(1.5)              → 0.9332(累積確率のみ)
=NORM.S.DIST(1.5, TRUE)      → 0.9332(累積確率)
=NORM.S.DIST(1.5, FALSE)     → 0.1295(確率密度)

違いをまとめると次の表のとおりです。

項目NORMSDISTNORM.S.DIST
関数名の形式ピリオドなし(旧形式)ピリオドあり(新形式)
引数の数1つ(z値のみ)2つ(z値 + 累積フラグ)
確率密度(FALSE)取得できない取得できる
Googleスプレッドシート使える使える(推奨)
Excel 2007以前使える使えない
Excel 2010以降使える(互換用)使える(推奨)
公式ドキュメントでの扱い互換関数推奨関数

既存のシートにNORMSDISTで書いた数式がある場合、わざわざ書き換える必要はありません。動作に違いはないので、そのまま使い続けて大丈夫ですよ。

基本的な使い方

NORMSDIST関数の基本的な使い方を見ていきましょう。

zスコアから累積確率を求める

zスコアが1.96のとき、「その値以下になる確率」を求めます。

=NORMSDIST(1.96)

結果は約0.9750(97.5%) です。zスコアが1.96以下になる確率が97.5%という意味ですね。ちなみに統計学でよく使われる「95%信頼区間の上限」がz = 1.96です。

「x以上」の確率を求める

「zスコアがx以上になる確率」は、1から累積確率を引くだけです。

=1 - NORMSDIST(1.96)

結果は約0.0250(2.5%) です。zスコアが1.96を超えるのは全体の2.5%しかありません。

マイナスのzスコアを指定する

zスコアにはマイナスの値も指定できます。

=NORMSDIST(-1.5)

結果は約0.0668(6.7%) です。平均よりも1.5標準偏差分低い値以下になる確率が6.7%ということですね。

NORMSDIST関数の実務活用例

基本がわかったところで、実務で使えるパターンを紹介します。

STANDARDIZEと組み合わせて相対位置を求める

NORMSDIST関数は標準正規分布専用なので、元のデータをzスコアに変換してから使います。STANDARDIZE関数と組み合わせると便利です。

平均点が65点、標準偏差が12点の試験で82点を取った場合です。

=NORMSDIST(STANDARDIZE(82, 65, 12))

結果は約0.9222(92.2%) です。82点以下が全体の92.2%なので、上位約7.8%に入っていることがわかります。

TIP

STANDARDIZE関数を使わずに手動で計算する場合は=NORMSDIST((82-65)/12)と書きます。結果は同じですが、STANDARDIZE関数を使った方が読みやすいですよ。

AVERAGE・STDEVと組み合わせる

実際のデータで使うときは、AVERAGE関数STDEV関数を組み合わせると便利です。データが増えても自動で再計算されます。

テストの点数がB2:B31に入っているとします。80点の相対位置を求める数式です。

=NORMSDIST((80 - AVERAGE(B2:B31)) / STDEV(B2:B31))

このようにネスト(入れ子に)すれば、データを追加・変更しても結果が自動更新されます。

ExcelからスプレッドシートへのNORMSDIST移行ガイド

ExcelからGoogleスプレッドシートに移行するとき、NORMSDISTまわりで知っておくべきポイントをまとめました。

移行時に確認すべき3つのポイント

1. 既存のNORMSDIST数式はそのまま動く

ExcelファイルをGoogleスプレッドシートにインポートしたとき、NORMSDISTの数式はそのまま正常に動作します。自動変換や手動書き換えは不要です。

2. 新規作成時はNORM.S.DISTを推奨

既存の数式はそのままで問題ありませんが、新しく数式を書く場合はNORM.S.DIST関数を使いましょう。NORM.S.DISTなら確率密度(FALSE)も取得でき、将来的な互換性の面でも安心です。

3. 他の旧関数名も同じルール

NORMSDISTだけでなく、統計関数は多くが「ピリオドなし→ピリオドあり」に移行しています。

旧関数名新関数名(推奨)
NORMSDISTNORM.S.DIST
NORMDISTNORM.DIST
NORMINVNORM.INV
NORMSINVNORM.S.INV

どの関数も「旧名で書いた数式はそのまま動く。新しく書くなら新名を使う」が基本の考え方です。

よくあるエラーと対処法

NORMSDIST関数でつまずきやすいポイントをまとめました。

引数に文字列を渡して#VALUE!エラー

数値であるべき引数にテキストが入ると#VALUE!エラーです。セル参照を使うときは、参照先が数値か確認しましょう。

=NORMSDIST("abc")   ← #VALUE! エラー

引数を空にして#N/Aエラー

引数を指定せずに=NORMSDIST()と書くとエラーになります。zスコアの値を必ず指定してください。

NORMSDISTで確率密度が欲しい場合

NORMSDIST関数は累積確率しか返せません。確率密度(グラフの高さ)が必要なときは、NORM.S.DIST関数の第2引数にFALSEを指定してください。

=NORM.S.DIST(1.5, FALSE)   → 確率密度を取得

まとめ

NORMSDIST関数は、標準正規分布の累積確率を返す互換関数です。

  • NORM.S.DIST(z, TRUE)と計算結果は同じ。引数は1つだけでシンプル
  • ただし確率密度(FALSE)は取得できない。密度が必要ならNORM.S.DIST関数を使う
  • Excelの旧バージョン(2007以前)で標準だった関数名で、Googleスプレッドシートでも使える
  • 既存シートのNORMSDIST数式は書き換え不要。そのまま動く
  • STANDARDIZE関数と組み合わせると、元のデータから相対位置を一発で計算できる
  • 新しく数式を書くときはNORM.S.DIST関数を推奨

ExcelからGoogleスプレッドシートへ移行した方は、まず既存の数式がそのまま動くことを確認してみてください。その上で、新しく書く数式から少しずつNORM.S.DISTに切り替えていくのがおすすめですよ。

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