xellstorm 学習センター
JA
アプリを開く

Excelで正規乱数を作る:NORM.INV、平均、標準偏差

ガイド · 2026年10月更新

ひとことで言うと:釣り鐘型の曲線です。結果の大半は平均の近くに集まり、平均から離れるほど少なくなります。平均の上側も下側も、同じように減ります。

正規分布は、平均のまわりに左右対称にばらつく量を表し、広がりは標準偏差で決まります。Excelでは、=NORM.INV(RAND(), mean, sd) で1つの値を引けます。平均1,000個、標準偏差200個の需要なら、P10は744、P90は1,256で、結果の約95%は標準偏差2つ分の範囲(600〜1,400)に収まります。

正規分布とは

正規分布は釣り鐘型の曲線です。結果の大半は平均の近くに集まり、離れるほど少なくなって、左右は鏡のように対称です。この分布は2つの数値だけで決まります。平均は中心の位置で、中央値と最頻値にも一致します。標準偏差は幅で、結果の約3分の2は、平均から標準偏差1つ分の範囲に入ります。

グラフの見方:棒は、シミュレーションで引いた10,000個の値がその区間にいくつ入ったかを表し、線は理論上の曲線です。棒が高いほど、その付近の値がよく出ます。点線はP10とP90の位置で、10回のうち8回は、この間に入ります。

正規分布、平均1,000、標準偏差200xellstormが需要を10,000回引いた値のヒストグラム。釣り鐘型で、理論上の正規分布の曲線を線で重ねています。平均1,000を中心に左右対称で、P10は744、P90は1,256です。5001,0001,500P10 744P90 1,256
来シーズンの需要、平均1,000・標準偏差200の正規分布。棒:xellstormによる10,000回の引き、線:理論上の曲線。引いた値の80%がP10〜P90に入ります。
68–95–99.7の法則:平均1,000、標準偏差200の需要の場合
範囲需要結果の割合
平均 ± 標準偏差1つ分800 – 1,20068.3%
平均 ± 標準偏差2つ分600 – 1,40095.4%
平均 ± 標準偏差3つ分400 – 1,60099.7%

パーセンタイルも、同じ2つの数値から決まります。P90は平均より標準偏差の1.2816倍だけ上、P10は同じだけ下にあるので、結果の80%は744〜1,256に入ります。

Excelでの正規分布

NORM.INV(probability, mean, standard_deviation) は、指定した割合の結果がそれを下回る値を返します。確率を固定するとパーセンタイル、確率に RAND() を使うと乱数による値になり、シートを再計算するたびに新しい値が出ます。このページのExcelファイルは、乱数を別のセルに置いてあるので、どの乱数からどの値が出たかを確認できます。1つのセルにまとめると、数式は =NORM.INV(RAND(),D5,F5) です。

Excelでの正規分布:Excelファイルの5行目(平均はD5、標準偏差はF5)
セル数式値
乱数 u(I5)=RAND()
引いた値(J5)=NORM.INV(I5,D5,F5)
1つのセルで引く=NORM.INV(RAND(),D5,F5)
平均(K5)=D51,000
P10 (L5)=NORM.INV(0.1,D5,F5)744
P90 (M5)=NORM.INV(0.9,D5,F5)1,256
数値の確認:理論値と、Excelとxellstormがそれぞれ引いた10,000個の値の比較
来シーズンの需要、正規分布:理論値と各10,000回の引き
理論値Excel(RAND())xellstorm
平均1,0009981,000
標準偏差200199200
P10744743744
P50(中央値)1,0009961,000
P901,2561,2511,256

Excelは RAND() で完全にランダムに引きます。xellstormは範囲全体に均等に散らして引く(ラテンハイパーキューブサンプリング)ので、統計値が理論値に近くなります。

逆の問い、つまり需要がある水準を下回る確率は、NORM.DIST(x, mean, standard_deviation, TRUE) で求めます。=NORM.DIST(700, 1000, 200, TRUE) は6.7%で、需要が700個を下回るシーズンになる確率です。旧名の NORMINV と NORMDIST も引き続き使えます。1回引いた値は、起こりうる1シーズンにすぎません。不確実性が利益や在庫水準にどう響くかを見るには、何千回もの引きが必要です。それを繰り返すのがモンテカルロシミュレーションです(Excelでのモンテカルロシミュレーションを参照)。

正規分布が合う場面

合わない場面

正規分布には下限がなく、一定の確率で負の値を出します。このページの需要では、その確率は無視できる程度です。しかし、標準偏差が平均の半分の500になると、引いた値の2.3%が負の需要になります。負にならず、ばらつきが大きい量には、対数正規分布かガンマ分布を使うか、正規分布を0で切断します。

左右対称である点にも注意が要ります。コストや所要期間は、たいてい下回る幅より上回る幅の方が大きくなります。その偏りは、PERT分布、三角分布、対数正規分布なら表せます。また、正規分布では極端な値がとてもまれで、平均から標準偏差3つ分より離れた値はほとんど出ません。そのため、価格や収益率の大きな変動は小さく見積もられます。極端な値がもっと出るのは、t分布です。

xellstormで正規分布を入力する

  1. Excelファイルを開き、不確かなセルをクリックして「入力にする」を選びます。
  2. 「分布」ステップで正規分布を選び、平均と標準偏差を入力します。実行する前に、「平均」と「P10 – P90」の列で、2つの数値から何が得られるかを確認できます。
  3. 標準偏差ではなく、低い値・代表的な値・高い値で考える場合は、入力を選び、サイドパネルの「見積もりから」を使います。P10、P50、P90を入力して、正規分布を選びます。過去の値があれば、「データから」で正規分布などの形を当てはめ、順位を付けます。
  4. 引いた値を0以上に保つには、パラメーターの下にある「切断 / シフト / 倍率」を開き、切断の下限に0を設定します。

すでに =NORM.INV(RAND(), mean, sd) で値を引いているExcelファイルは、書き換えずに使えます。「Excelファイルから取り込み」を使うと、こうしたセルが正規分布の入力に変わり、平均と標準偏差はセルに連動したままです。アドイン向けに作られたモデルの RiskNormal、VoseNormal、PsiNormal も、同じように変換します。

よくある質問

Excelで正規乱数(正規分布に従う乱数)を作るには?

=NORM.INV(RAND(), mean, sd) を使います。たとえば平均1,000、標準偏差200なら =NORM.INV(RAND(), 1000, 200) です。再計算(F9)のたびに新しい値が出ます。数式を列の下へコピーすれば多数の値が得られ、その平均は指定した平均に、標準偏差は指定した標準偏差に近づきます。

NORM.INVとNORM.DISTの違いは何ですか?

2つは逆の問いに答えます。NORM.DIST(x, mean, sd, TRUE) は値を受け取り、それを下回る確率を返します。NORM.INV(p, mean, sd) は確率を受け取り、その割合の結果が下回る値を返します。平均1,000、標準偏差200の需要では、NORM.INV(0.9, 1000, 200) が1,256で、その値を NORM.DIST に入れると0.9が返ります。

正規分布のP90はどう求めますか?

P90は、平均に標準偏差の1.2816倍を足した値で、Excelでは =NORM.INV(0.9, mean, sd) です。平均1,000、標準偏差200なら1,256になります。P10は平均から同じだけ下の744、P95は1,329です。これらは1つの入力のパーセンタイルです。複数の入力の合計のP90は、パーセンタイルが足し合わせられないので、シミュレーションで求めます(P50、P80、P90を参照)。

正規分布は負の値を出すことがありますか?

あります。正規分布は両方向に限りなく広がるので、一定の確率で必ず負の値が出ます。平均がゼロより標準偏差で約4つ分以上高ければ、その確率はごくわずかです。標準偏差が平均の半分なら2.3%です。負にならない量には、分布を0で切断するか、対数正規分布かガンマ分布を使います。

関連ページ

xellstormは、Excelモデル向けのブラウザー型モンテカルロシミュレーションツールです。アドインは不要で、Excelファイルがパソコンの外に出ることはありません。