「この部品、あと何時間もつんだろう?」。設備管理や品質保証で、こんな疑問を抱えたことはありませんか?
平均寿命だけでは、いつ壊れるかの確率はわかりません。手計算で求めるとべき乗やeの計算が出てきて大変ですよね。
そんなときに使うのがWEIBULL.DIST関数です。この記事では基本構文から実務活用まで解説します。累積分布と確率密度の使い分けや、WEIBULL関数との違いもあわせて紹介しますよ。
WEIBULL.DIST関数とは
WEIBULL.DIST関数(読み方: ワイブル・ディスト関数)は、ワイブル分布にもとづいて確率を返す関数です。ワイブル分布とは、製品の寿命や故障までの時間をモデル化するのに使われる確率分布です。
「WEIBULL」はスウェーデンの数学者ワロディ・ワイブル(Waloddi Weibull)に由来しています。「DIST」は「Distribution(分布)」の略です。
たとえば「平均1,000時間で故障する部品が、500時間以内に壊れる確率」を1つの数式で求められます。
WEIBULL.DIST関数にできることをまとめると、次のとおりです。
- ある時間内に製品が故障する確率を求める(累積分布)
- 特定の時点での故障確率の密度を求める(確率密度)
- 製品寿命の予測やメンテナンス計画の立案に使う
- 形状パラメータを変えて故障パターン(初期故障・偶発故障・摩耗故障)を分析する
NOTE
WEIBULL.DIST関数はGoogleスプレッドシートの全バージョンで使えます。Excelにも同名の関数があり、動作は同じです。
ワイブル分布が使える場面とは
ワイブル分布は、次のような場面で使われます。
- 製品の寿命分析: 電子部品やモーターなどの故障時間を予測する
- 品質管理: 不良品の発生タイミングを統計的に把握する
- メンテナンス計画: 予防保全のタイミングを確率で決める
- 信頼性工学: 製品の故障率が時間とともにどう変化するかを分析する
指数分布(EXPON.DIST関数)は「故障率が一定」という前提です。一方、ワイブル分布は「故障率が時間とともに変化する」場面も扱えます。そこがワイブル分布の強みですね。
TIP
ワイブル分布の形状パラメータ(alpha)を1にすると、指数分布とまったく同じになります。ワイブル分布は指数分布を含む、より汎用的な分布といえます。
基本構文と4つの引数
=WEIBULL.DIST(x, alpha, beta, cumulative)
カッコの中に4つの引数を指定します。
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| x | 必須 | 評価する値(故障時間など、0以上の数値) |
| alpha(アルファ) | 必須 | 形状パラメータ(分布の形を決める、0より大きい数値) |
| beta(ベータ) | 必須 | 尺度パラメータ(分布のスケールを決める、0より大きい数値) |
| cumulative | 必須 | TRUEで累積分布関数、FALSEで確率密度関数 |
alphaは「形状パラメータ」と呼ばれ、分布の形(故障パターン)を決めます。betaは「尺度パラメータ」と呼ばれ、時間のスケール(目安となる寿命)を決めます。
WARNING
alphaとbetaはどちらも0より大きい値を指定してください。0以下を指定すると
#NUM!エラーになります。
WEIBULL関数(互換関数)との関係
GoogleスプレッドシートにはWEIBULL関数という関数もあります。これはWEIBULL.DIST関数の旧バージョン(互換関数)です。計算結果はまったく同じです。
=WEIBULL.DIST(500, 2, 1000, TRUE) --- 新関数名(推奨)
=WEIBULL(500, 2, 1000, TRUE) --- 旧関数名(互換関数)
引数の数・順番・意味もすべて同じです。新しく数式を書くときはWEIBULL.DIST関数を使いましょう。
NOTE
WEIBULL関数の詳しい使い方は、別の記事で解説しています。既存のシートでWEIBULL関数が使われていても、そのまま動作するので急いで書き換える必要はありません。
WEIBULL.DIST関数のTRUE/FALSEの違い
4番目の引数(cumulative)にTRUEとFALSEのどちらを指定するかで、返ってくる値の意味がまったく変わります。
TRUE(累積分布関数)——x時間以内に故障する確率
TRUEを指定すると累積分布関数(CDF: Cumulative Distribution Function)の値を返します。「時間x以内に故障する確率」です。
たとえば形状パラメータ alpha=2、尺度パラメータ beta=1000のとき、500時間以内に故障する確率を求めてみましょう。
=WEIBULL.DIST(500, 2, 1000, TRUE)
結果は約0.2212(22.1%)です。500時間以内に故障する確率は約22%とわかります。
数学的には、次の式で計算されています。
F(x) = 1 - e^(-(x/beta)^alpha)
実務で「何時間以内に故障する確率は?」と聞かれたら、TRUEを使ってください。
FALSE(確率密度関数)——特定時点での密度
FALSEを指定すると確率密度関数(PDF: Probability Density Function)の値を返します。「時間xでの故障確率の密度」を表す値です。
=WEIBULL.DIST(500, 2, 1000, FALSE)
結果は約0.000778です。
数学的には、次の式で計算されています。
f(x) = (alpha / beta^alpha) * x^(alpha-1) * e^(-(x/beta)^alpha)
確率密度はそのままでは「ちょうどx時間での故障確率」にはなりません。連続分布なので、ある範囲の確率を求めたいときはTRUE(累積分布関数)を使うのが一般的です。
2つを比較してみる(サンプルデータつき)
alpha=2、beta=1000の場合で、経過時間ごとの結果を比べてみましょう。
| 経過時間(h) | FALSE(確率密度) | TRUE(x時間以内の故障確率) |
|---|---|---|
| 100 | 0.000198 | 0.0100(1.0%) |
| 200 | 0.000385 | 0.0392(3.9%) |
| 500 | 0.000778 | 0.2212(22.1%) |
| 800 | 0.000805 | 0.4727(47.3%) |
| 1000 | 0.000736 | 0.6321(63.2%) |
| 1500 | 0.000316 | 0.8946(89.5%) |
| 2000 | 0.000073 | 0.9817(98.2%) |
alpha=2なので、確率密度(FALSE列)は beta 付近でピークを迎えます。累積確率(TRUE列)は時間とともに1に近づいていきますね。
「x時間以上もつ確率」を求めたいときは =1-WEIBULL.DIST(x, alpha, beta, TRUE) と書きます。たとえば「1,500時間以上もつ確率」なら次のとおりです。
=1-WEIBULL.DIST(1500, 2, 1000, TRUE)
結果は約0.1054(10.5%)です。
WEIBULL.DIST関数の実務活用3パターン
基本がわかったところで、実際の業務で使えるパターンを紹介します。
製品の保証期間を設定する
「平均寿命が約1,000時間のモーターがある。保証期間を500時間に設定したい。保証期間内に故障する確率はどのくらいか?」を考えてみましょう。
過去の故障データから alpha=1.5、beta=1000 が推定されているとします。
=WEIBULL.DIST(500, 1.5, 1000, TRUE)
結果は約0.1455(14.6%)です。保証期間500時間以内に故障する確率は約15%とわかります。
では保証期間を300時間に短縮するとどうでしょうか。
=WEIBULL.DIST(300, 1.5, 1000, TRUE)
結果は約0.0570(5.7%)です。300時間なら故障確率が約6%に下がります。保証コストとのバランスを考える判断材料になりますね。
形状パラメータで故障パターンを見分ける
ワイブル分布の最大の特徴は、形状パラメータ(alpha)の値で故障パターンが変わることです。これは「バスタブ曲線」として知られています。
| alphaの値 | 故障パターン | 意味 |
|---|---|---|
| alpha < 1 | 初期故障型 | 使い始めに故障が多く、時間とともに故障率が下がる |
| alpha = 1 | 偶発故障型 | 故障率が一定(指数分布と同じ) |
| alpha > 1 | 摩耗故障型 | 使い続けるほど故障率が上がる |
実際にbeta=1000で固定して、alphaを変えて500時間以内の故障確率を比較してみましょう。
=WEIBULL.DIST(500, 0.5, 1000, TRUE) --- alpha=0.5(初期故障型)
=WEIBULL.DIST(500, 1, 1000, TRUE) --- alpha=1(偶発故障型)
=WEIBULL.DIST(500, 2, 1000, TRUE) --- alpha=2(摩耗故障型)
=WEIBULL.DIST(500, 3, 1000, TRUE) --- alpha=3(摩耗故障型・急激)
| alpha | 故障パターン | 500h以内の故障確率 |
|---|---|---|
| 0.5 | 初期故障型 | 0.5073(50.7%) |
| 1.0 | 偶発故障型 | 0.3935(39.3%) |
| 2.0 | 摩耗故障型 | 0.2212(22.1%) |
| 3.0 | 摩耗故障型 | 0.1175(11.8%) |
alphaが小さいほど初期に故障しやすく、大きいほど初期は安定しています。自社製品の故障データからalphaを推定して、どの故障パターンに当てはまるかを把握するのが品質改善の第一歩です。
メンテナンス時期を逆算する
「故障確率が10%を超える前にメンテナンスしたい」という場合、経過時間ごとの故障確率を見ていく方法が実用的です。
| 経過時間(h) | 数式 | 故障確率 |
|---|---|---|
| 200 | =WEIBULL.DIST(200, 2, 1000, TRUE) | 3.9% |
| 300 | =WEIBULL.DIST(300, 2, 1000, TRUE) | 8.6% |
| 350 | =WEIBULL.DIST(350, 2, 1000, TRUE) | 11.5% |
alpha=2、beta=1000の場合、300時間前後でメンテナンスするのが妥当です。300時間での故障確率は約8.6%で、目標の10%以内に収まっていますね。
スプレッドシートで経過時間を100刻みで並べてWEIBULL.DIST関数を入力し、グラフ化すると故障確率の推移が一目で確認できます。
WEIBULL.DIST関数でよくあるエラーと対処法
WEIBULL.DIST関数でつまずきやすいポイントをまとめました。
| エラー | 原因 | 対処法 |
|---|---|---|
#NUM! | xが負の値 | 0以上の数値を指定する |
#NUM! | alphaが0以下 | 0より大きい数値を指定する |
#NUM! | betaが0以下 | 0より大きい数値を指定する |
#VALUE! | 引数に文字列が含まれる | セル参照先が数値か確認する |
| 想定外の値 | TRUE/FALSEの指定ミス | 累積確率ならTRUE、密度ならFALSE |
WARNING
4番目の引数(cumulative)は省略できません。TRUEとFALSEでは結果がまったく異なります。「x時間以内に故障する確率」を求めたいのにFALSEを指定すると、確率密度が返ってきてしまうので注意してください。
WEIBULL.DIST関数とWEIBULL関数の違い
WEIBULL.DIST関数は、WEIBULL関数の新しいバージョンです。引数・計算結果はまったく同じです。
| 比較項目 | WEIBULL.DIST | WEIBULL |
|---|---|---|
| 関数名 | 新名称(推奨) | 旧名称(互換関数) |
| 引数の数 | 4つ | 4つ |
| 引数の順番 | x, alpha, beta, cumulative | x, alpha, beta, cumulative |
| 計算結果 | 同じ | 同じ |
| Googleスプレッドシート | 使用可 | 使用可 |
| Excel | 使用可(推奨) | 使用可(互換関数) |
新しく数式を書くときはWEIBULL.DIST関数を使いましょう。既存のシートでWEIBULL関数が使われていても問題なく動作します。急いで書き換える必要はありません。
ただし、今後のバージョンアップで互換関数が廃止される可能性はゼロではありません。新規のシートではWEIBULL.DISTを選んでおくのが安心です。
確率分布関数ファミリー
Googleスプレッドシートには、確率分布に関連する関数がいくつかあります。目的に応じて使い分けましょう。
| 関数 | 用途 | いつ使うか |
|---|---|---|
| WEIBULL.DIST | ワイブル分布の確率(推奨) | 製品寿命・故障率を分析する場合 |
| WEIBULL | ワイブル分布の確率(互換関数) | 既存のシートで使われている場合 |
| EXPON.DIST | 指数分布の確率 | 故障率が一定の場合(ワイブル分布のalpha=1に相当) |
| NORM.DIST | 正規分布の確率 | 連続データ(寸法・重量・品質指標など)を扱う場合 |
| POISSON.DIST | ポアソン分布の確率 | 一定期間内のイベント発生回数を分析する場合 |
迷ったときの判断基準はシンプルです。
- 故障率が時間とともに変化する → WEIBULL.DIST
- 故障率が一定 → EXPON.DIST
- 連続データの確率 → NORM.DIST
- イベントの発生回数 → POISSON.DIST
Excelとの違い
WEIBULL.DIST関数は、ExcelとGoogleスプレッドシートの両方で使えます。引数の数・順番・計算結果はすべて同じです。
| 比較項目 | Googleスプレッドシート | Excel |
|---|---|---|
| 関数名 | WEIBULL.DIST | WEIBULL.DIST |
| 引数 | 同じ | 同じ |
| 計算結果 | 同じ | 同じ |
| 互換関数 | WEIBULL | WEIBULL |
ExcelとGoogleスプレッドシートを併用している環境でも、WEIBULL.DIST関数ならそのまま使い回せます。
まとめ
WEIBULL.DIST関数は、ワイブル分布にもとづいて確率を求める関数です。
- 4番目の引数にTRUEで「x時間以内に故障する確率」が返る
- FALSEで「時間xでの確率密度」が返る
- alphaは形状パラメータ(故障パターンを決める)、betaは尺度パラメータ(時間のスケールを決める)
- alpha < 1で初期故障型、alpha = 1で偶発故障型、alpha > 1で摩耗故障型
- 製品の保証期間設定、故障パターン分析、メンテナンス計画の立案に使える
- 「x時間以上もつ確率」は
=1-WEIBULL.DIST(x, alpha, beta, TRUE)で求める - xが負、alphaやbetaが0以下だと
#NUM!エラー - WEIBULL関数と計算結果は同じ。新規にはWEIBULL.DISTを推奨
- 故障率が一定ならEXPON.DIST関数、連続データの確率ならNORM.DIST関数を使う
