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

Excelで三角分布の乱数を作る:数式、平均、PERT分布との違い

ガイド · 2026年10月更新

ひとことで言うと:低い値、最も可能性の高い値、高い値の3つを、確率に変える最も簡単な方法です。確率は最も可能性の高い値まで直線で上がり、高い値に向かって直線で下がります。

三角分布は、3点見積もりを、最小値から最頻値まで直線的に上がり、最大値まで直線的に下がる確率に変えます。平均は(最小+最頻+最大)/ 3で、コストを80、100、140(USD千)と見積もると106.7、P90は124.5になります。Excelに三角分布の関数はありませんが、RAND() と SQRT を使った1つの数式で値を引けます。

三角分布とは

3つの数値で決まります。これより下では何も起きない最小値、これより上では何も起きない最大値、そして密度が山になる最頻値です。3点の間は2本の直線で結ばれるので、専門家の低い値・最も可能性の高い値・高い値から結果の全範囲を作る、最も簡単な方法です。

数式:平均、標準偏差、中央値
三角分布の数式(ml = 最頻値)。最小80、最頻100、最大140の場合の計算例
量数式と計算例
平均(min + ml + max) / 3
= 320 / 3 = 106.7
標準偏差√((min² + ml² + max² − min × ml − min × max − ml × max) / 18)
= 12.5
最頻値を下回る確率(ml − min) / (max − min)
= 20/60 = 33.3%
中央値(P50)105.4

最頻値が最小値に近いので、長い側は上です。結果の3分の2が最も可能性の高いコストを上回り、平均の106.7は、それよりかなり上にあります。最も可能性の高い値を足し合わせた予算が、たいてい低すぎるのはこのためです。

Excelでの三角分布

Excelの RAND() は0〜1の乱数uを返し、数式がそれを三角分布の値に変えます。uが小さければ最小値に近い値、大きければ最大値に近い値になり、範囲のどの部分にも、公平な割合で引きが入るようになっています。uが、最頻値より下の部分の割合より小さいときは min + √(u × (max − min) × (ml − min))、そうでなければ max − √((1 − u) × (max − min) × (max − ml)) です。数式にuが2回出てくるので、uは別のセルに置く必要があります。RAND() を2か所に書くと別々の数値になり、分布が正しくなくなります。Excelファイルでは、uがI7、引いた値がJ7にあります。

Excelでの三角分布:Excelファイルの7行目。最小はD7、最頻はF7、最大はH7
セル数式値
乱数 u(I7)=RAND()
引いた値(J7)=IF(I7<(F7-D7)/(H7-D7),D7+SQRT(I7*(H7-D7)*(F7-D7)),H7-SQRT((1-I7)*(H7-D7)*(H7-F7)))
平均(K7)=(D7+F7+H7)/3106.7
P10 (L7)=IF(0.1<(F7-D7)/(H7-D7),D7+SQRT(0.1*(H7-D7)*(F7-D7)),H7-SQRT((1-0.1)*(H7-D7)*(H7-F7)))91.0
P90 (M7)=IF(0.9<(F7-D7)/(H7-D7),D7+SQRT(0.9*(H7-D7)*(F7-D7)),H7-SQRT((1-0.9)*(H7-D7)*(H7-F7)))124.5
数値の確認:理論値と、Excelとxellstormがそれぞれ引いた10,000個の値の比較
1項目のコスト、三角分布:理論値と各10,000回の引き
理論値Excel(RAND())xellstorm
平均106.7106.7106.7
標準偏差12.512.612.5
P1091.090.691.0
P50(中央値)105.4105.6105.4
P90124.5124.7124.5

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

uを固定した確率に置き換えると、シミュレーションなしでパーセンタイルが得られます。0.9ならP90の124.5です。表の2組の引きは、どちらも理論値を再現しています。

三角分布とPERT分布:同じ3つの数値でも、限界値への重みが違う

PERT分布も同じ最小値、最頻値、最大値を使いますが、その間になめらかな曲線を描きます。Excelファイルには両方があり、7行目と8行目です。

グラフの見方:線が高いほど、その下の値が起きやすくなります。どちらの形も、最小値から始まり、最頻値で山になり、最大値で終わります。三角分布は、両端の近くでも線が高いままです。

三角分布とPERT分布の密度、最小80、最頻100、最大140同じ範囲80〜140にある2つの密度。三角分布は100の山まで直線的に上がり、140まで直線的に下がります。PERT分布は山が高く、両端が細いなめらかな曲線です。80100120140三角分布PERT
1項目のコスト(USD千):同じ3つの数値による三角分布とPERT分布。三角分布は、特に長い側で、限界値の付近に重みが多く残ります。
最小80、最頻100、最大140:三角分布とPERT分布の理論値
三角分布PERT
平均106.7103.3
標準偏差12.511.1
P1091.089.2
P90124.5118.7
134を超える確率1.5%0.1%

三角分布は、限界値の付近に重みが多く残ります。134を超えるコストになる確率は、三角分布で1.5%、PERT分布では0.1%です。平均は最頻値を4回ではなく1回しか数えないので、偏った見積もりでは高くなり(106.7、PERT分布は103.3)、P90も高くなります(124.5、PERT分布は118.7)。どちらが正しいということはなく、同じ3つの数値を違う見方で読んだものです。

xellstormで三角分布を入力する

  1. セルを入力にして、「分布」ステップで三角分布を選びます。最小、最頻、最大を入力すると、「平均」と「P10 – P90」の列が入力に合わせて更新されます。
  2. 低い値と高い値がP10とP90なら、代わりにパーセンタイルによる三角分布を選び、下端と上端に入力して、下端%を10、上端%を90にします。または、入力を選んで、サイドパネルの「見積もりから」で形を当てはめます。どのパーセンタイルの組も三角分布にぴったり合うとは限りません。最も近い分布がどれだけずれるかは、パネルに表示されます。
  3. 同じ見積もりの読み方を比べるには、入力をPERTに変えるシナリオを追加します。シナリオは基準ケースと同じ乱数で実行するので、差は分布の形だけから生まれます。

アドイン向けのモデルは、RiskTriang、VoseTriangle、PsiTriangular から変換できます。RiskTrigen は、パーセンタイルによる三角分布に変換します。

よくある質問

Excelで三角分布の乱数を作るには?

1つのセルに乱数 =RAND() を置き、別のセルで逆関数の式を使って値に変換します。乱数がI7、最小がD7、最頻値がF7、最大がH7にあるとき、数式は =IF(I7<(F7-D7)/(H7-D7),D7+SQRT(I7*(H7-D7)*(F7-D7)),H7-SQRT((1-I7)*(H7-D7)*(H7-F7))) です。このページのExcelファイルに入っているので、そのままコピーできます。

三角分布の平均はいくつですか?

平均は(最小+最頻+最大)/ 3です。80、100、140の見積もりでは、320 / 3 = 106.7になります。同じ数値のPERT分布は、平均が(最小+4×最頻+最大)/ 6 = 103.3です。

三角分布のP90はどう求めますか?

乱数の代わりに0.9を入れた、引きの数式を使います。=IF(0.9<(F7-D7)/(H7-D7),D7+SQRT(0.9*(H7-D7)*(F7-D7)),H7-SQRT((1-0.9)*(H7-D7)*(H7-F7))) は、80、100、140の見積もりで124.5になります。これは1つの項目のP90です。複数の項目の合計は、パーセンタイルが足し合わせられないので、シミュレーションで求めます。

三角分布とPERT分布は、どちらが保守的ですか?

同じ3つの数値なら、三角分布の方が広く散らばり、限界値の付近に多くの重みを置きます。右に歪んだ見積もりでは平均もP90も高くなるので、より慎重な読み方です。左右対称の見積もりでは平均は等しく、三角分布は両側とも広くなります。

関連ページ

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