引き継いだExcelブックを開いたら、見慣れない「EXPONDIST」という関数が入っていて手が止まった——そんな経験はないでしょうか。検索しても「EXPON.DIST」という似た名前の関数ばかりヒットして、結局どちらが正しいのか分からないまま時間が過ぎていく。品質管理の担当者から「MTBFの確率を出して」と頼まれた人にとっても、指数分布という言葉自体が壁になりがちです。
この状態のまま放置すると、古い関数を恐る恐る触り続けることになり、結果の妥当性に自信が持てません。引数の意味(特にlambdaの設定方法)を曖昧にしたまま使うと、出てきた数字が「何の確率なのか」分からなくなり、上司への報告で詰まる原因にもなります。
この記事では、ExcelのEXPONDIST関数の構文・引数・TRUE/FALSEの使い分けを実務目線で整理します。コールセンターの待ち時間や機器の故障率といった具体的なシーンで「どう数式を組み立てるか」までセットで解説します。後継関数のEXPON.DISTとの違い、エラーが出たときの対処法も網羅するので、この1ページで「とりあえず今日の仕事を終わらせる」状態に持ち込めます。
ExcelのEXPONDIST関数とは
EXPONDIST関数は、指数分布の確率を計算するExcelの統計関数です。「エクスポンディスト」と読み、EXPONential DISTribution(指数分布)を略した名前です。「ある事象が次に起こるまでの時間」や「機器が故障するまでの時間」のように、ランダムに発生する事象の間隔を扱うときに使います。
Microsoftの公式ドキュメントでは、EXPONDISTは「精度が向上した1つ以上の新しい関数に置き換えられた」と明記されています。現行版のExcelでは後継関数のEXPON.DISTが推奨されています。ただし、互換性のためEXPONDISTも引き続き利用可能で、計算結果はEXPON.DISTと完全に同一です。
つまり、古いブックでEXPONDISTを見かけても慌てて書き換える必要はありません。新規に数式を組むときはEXPON.DISTを使い、既存ブックの保守ではEXPONDISTのまま運用する、という使い分けが現実解になります。
指数分布が使える場面
指数分布は「ランダムに発生するイベントの待ち時間」をモデル化する確率分布です。実務では次のような場面で登場します。
- コールセンターで次の問い合わせが入るまでの間隔
- 機器が次に故障するまでの稼働時間(MTBF)
- 配送センターでトラックが到着するまでの待ち時間
- ECサイトで次の注文が入るまでの間隔
- ATMの処理時間
共通するのは「平均的な発生頻度が分かっている」「個々のイベントは独立してランダムに起こる」という条件です。この条件を満たすとき、EXPONDIST関数で「○分以内に発生する確率」や「○時間以内に故障する確率」を求められます。
なお、指数分布には「無記憶性」という特徴があります。「すでに100時間動いた機器も、新品と同じ確率で次の1時間に壊れる」という性質です。現実の機器では摩耗による劣化があるため厳密には成り立ちません。あくまで「故障がランダムに発生する」前提の近似モデルとして使う点には注意してください。
基本構文と3つの引数
EXPONDIST関数の構文は以下のとおりです。
=EXPONDIST(x, lambda, cumulative)
引数は3つあり、それぞれの意味は次の表のとおりです。
| 引数 | 必須 | 内容 | 値の条件 |
|---|---|---|---|
| x | 必須 | 評価したい時間や値(待ち時間、稼働時間など) | 0以上の数値 |
| lambda | 必須 | 単位時間あたりの発生率(レートパラメーター) | 0より大きい数値 |
| cumulative | 必須 | TRUE:累積分布関数(CDF)/FALSE:確率密度関数(PDF) | 論理値 |
ここで一番つまずきやすいのが2つ目のlambdaです。「単位時間あたりの発生率」と言われてもピンと来ないため、次のセクションで実務的な決め方を整理します。
lambdaの正しい設定方法(平均から逆数で求める)
lambdaは「単位時間あたり何回イベントが起こるか」を表す値です。平均待ち時間(または平均故障間隔)の逆数として計算できます。
| 業務シーン | 観測されている平均値 | lambdaの計算 | lambdaの値 |
|---|---|---|---|
| コールセンター | 平均5分に1件入電 | 1 ÷ 5 | 0.2 |
| 機器の故障 | MTBF(平均故障間隔)500時間 | 1 ÷ 500 | 0.002 |
| 配送到着 | 平均30分間隔で到着 | 1 ÷ 30 | 0.0333 |
| Webサイト | 1分あたり平均0.5件の注文 | そのまま | 0.5 |
ポイントは2パターンを区別することです。観測値が「平均時間」として与えられていれば1/Tを取り、「発生率」として与えられていればそのまま使います。lambdaに平均時間そのものを入れてしまうのは初心者が最も陥りやすいミスなので注意してください。
EXPONDIST関数のTRUE/FALSEの違い
3つ目の引数cumulativeは、TRUEとFALSEで返ってくる値の意味がまったく異なります。実務では基本的にTRUE(累積分布)を使う場面がほとんどです。両者の違いを理解しておくと、結果の解釈で迷わなくなります。
TRUE(累積分布関数)―x以下となる確率
cumulativeにTRUEを指定すると、累積分布関数(CDF)の値が返ります。これは「時間xまでにイベントが少なくとも1回発生する確率」を意味し、0から1の間の値(つまり確率そのもの)になります。
=EXPONDIST(2, 0.5, TRUE)
たとえば1分あたり平均0.5件の問い合わせが来るコールセンター(λ=0.5)で、「次の問い合わせが2分以内に来る確率」を求めると、上記の数式で約0.6321(63.2%)が返ります。実務で「○分以内に起こる確率は?」と聞かれたら、まずTRUEを使うと考えて構いません。
FALSE(確率密度関数)―ある時点での密度
cumulativeにFALSEを指定すると、確率密度関数(PDF)の値が返ります。これは「ちょうどその時点での確率の密度」を表し、確率そのものではない点に注意が必要です。
=EXPONDIST(0.2, 10, FALSE)
公式ドキュメントの例では、上記の式は1.35335283を返します。結果が1を超えていることに気づくはずです。確率なのに1を超えるのは矛盾しているように見えますが、これは「確率密度」であり「確率」ではないため起こり得ます。FALSEは確率分布の形状を確認したいときや、グラフを描くときに使う指標と理解してください。
2つの結果を比較してみる
公式ドキュメントに掲載されている同一条件(x=0.2、lambda=10)での比較を見ると、両者の違いがはっきりします。
| 数式 | 戻り値 | 意味 |
|---|---|---|
| =EXPONDIST(0.2, 10, TRUE) | 0.86466472 | 0.2分以内に発生する確率は約86.5% |
| =EXPONDIST(0.2, 10, FALSE) | 1.35335283 | 0.2分時点での確率密度(確率ではない) |
業務報告で「○○の確率」を求められたときは、必ずTRUEを使うと覚えておけば安全です。FALSEは分布の形を可視化するなど、特殊な用途に限定されます。
EXPONDIST関数の実務活用例
ここから先は、実際の業務シーンを想定した3パターンの計算例を見ていきます。引数の決め方とセル設計をそのまま真似できる構成にしているので、自分のExcelに置き換えて試してみてください。
コールセンター:次の入電までの待ち時間分析
シフト設計や応対人員の配置を検討するとき、「次の入電が一定時間内に来る確率」が分かるとリソース計画に活かせます。
設定:1分あたり平均0.5件の問い合わせ(λ=0.5)。次の入電が2分以内、5分以内、10分以内に来る確率をそれぞれ求めたいとします。
| セル | 入力値・数式 | 結果 |
|---|---|---|
| A1(λ) | 0.5 | — |
| B1(x=2分) | =EXPONDIST(2, $A$1, TRUE) | 約0.6321(63.2%) |
| B2(x=5分) | =EXPONDIST(5, $A$1, TRUE) | 約0.9179(91.8%) |
| B3(x=10分) | =EXPONDIST(10, $A$1, TRUE) | 約0.9933(99.3%) |
=EXPONDIST(2, 0.5, TRUE)
この結果から「2分以内に約63%の確率で次の電話が鳴る」と読み取れます。lambdaセルを絶対参照($A$1)にしておくと、x(待ち時間)だけ変えて複数行に展開できます。シフト計画表にそのまま組み込めるので便利です。
設備管理:機器故障までの時間(MTBF)
製造現場や設備保守では、MTBF(平均故障間隔)から「一定期間内に故障する確率」を見積もる場面があります。予防保全のスケジュールを引くときの根拠として使えます。
設定:MTBF=500時間の機器(λ=1/500=0.002)。100時間、200時間、300時間以内に故障する確率を求めます。
=EXPONDIST(200, 0.002, TRUE)
| 経過時間 | 数式 | 故障確率 |
|---|---|---|
| 100時間 | =EXPONDIST(100, 0.002, TRUE) | 約0.1813(18.1%) |
| 200時間 | =EXPONDIST(200, 0.002, TRUE) | 約0.3297(33.0%) |
| 300時間 | =EXPONDIST(300, 0.002, TRUE) | 約0.4512(45.1%) |
200時間運転すると約33%の機器が故障する計算になります。これを許容できないなら、100時間より早いタイミングで点検を入れる、といった判断に使えます。なお、指数分布は「無記憶性」を持つため、摩耗劣化が支配的な機器では実態とずれることがあります。電子部品の偶発故障期など、ランダム故障のフェーズで使うのが適切です。
物流・配送:到着予測の信頼区間
配送車両の到着間隔がポアソン過程に近い場合、指数分布で「次の便が○分以内に来る確率」を見積もれます。倉庫の受け入れ要員配置や、ECサイトの納期表示ロジックに応用できます。
設定:平均30分間隔で配送車両が到着(λ=1/30≒0.0333)。15分以内・30分以内・60分以内の到着確率を求めます。
| 経過時間 | 数式 | 到着確率 |
|---|---|---|
| 15分 | =EXPONDIST(15, 1/30, TRUE) | 約0.3935(39.4%) |
| 30分 | =EXPONDIST(30, 1/30, TRUE) | 約0.6321(63.2%) |
| 60分 | =EXPONDIST(60, 1/30, TRUE) | 約0.8647(86.5%) |
=EXPONDIST(15, 1/30, TRUE)
lambdaを「1/30」のように分数で書くと、平均値(30分)から直接計算しているのが式から読み取れます。可読性が上がり、レビュー時に「なぜこの値?」と突っ込まれにくい書き方なので、業務シートではこちらを推奨します。
EXPONDIST関数のよくあるエラーと対処法
EXPONDIST関数で表示される代表的なエラーは2種類です。原因と対処をパターンで覚えておくと、引数を組み替える際に詰まりません。
#NUM!エラー(xが負、lambdaが0以下)
xに負の値を入れたり、lambdaに0以下の値を入れると#NUM!エラーが返ります。指数分布の定義域がx≧0、lambda>0と決まっているため、範囲外の値は計算できないという意味です。
=EXPONDIST(-1, 0.5, TRUE) → #NUM!
=EXPONDIST(2, 0, TRUE) → #NUM!
=EXPONDIST(2, -0.5, TRUE) → #NUM!
対処は単純で、xは0以上、lambdaは0より大きい数値であることを確認するだけです。lambdaを「1/平均」で計算しているなら、平均値のセルが0や空欄になっていないかをチェックします。
#VALUE!エラー(引数に文字列)
xやlambdaのセルに文字列・空白が入っていると#VALUE!エラーが返ります。CSVから取り込んだデータで「30分」のように単位込みで入力されていたり、不要なスペースが混ざっているケースが典型です。
=EXPONDIST("2分", 0.5, TRUE) → #VALUE!
対処としては、ISNUMBER関数でセルの値が数値かどうかを事前確認するか、VALUE関数で文字列を数値に変換しておくのが確実です。データ入力時点で数値だけを入れる運用ルールにできれば、こうしたエラーは未然に防げます。
lambdaに平均時間をそのまま入れる誤り
エラーは出ないのに結果がおかしい、というパターンで一番多いのがこれです。「平均5分待ちだから=EXPONDIST(2, 5, TRUE)」と書いてしまうと、結果は「ほぼ100%」になってしまいます。
正しくは平均値の逆数を入れるのがlambdaのルールです。=EXPONDIST(2, 1/5, TRUE) または =EXPONDIST(2, 0.2, TRUE) と書きます。「lambda=1/平均」を最初に手元のメモに書いてから数式を作ると、このミスを防げます。
EXPON.DIST関数(後継関数)との違い
EXPONDISTとEXPON.DISTは、Microsoftの公式仕様上「構文・引数・戻り値が完全に同一」で、計算結果も一致します。違いは「いつから推奨されているか」と「ピリオドの有無」だけです。
新旧関数の比較表
| 項目 | EXPONDIST(旧) | EXPON.DIST(新) |
|---|---|---|
| 関数名 | EXPONDIST | EXPON.DIST |
| 推奨度 | 互換性のために残されている | 現行推奨 |
| 利用可能バージョン | Excel 2007以前から利用可 | Excel 2016以降 |
| 構文 | EXPONDIST(x, lambda, cumulative) | EXPON.DIST(x, lambda, cumulative) |
| 引数の数 | 3つ | 3つ |
| 戻り値 | 同一 | 同一 |
| 内部精度 | 旧式アルゴリズム | 精度が向上した実装 |
公式ドキュメントによれば、EXPON.DISTは「精度が向上した実装」とされています。一般的な業務での桁数では結果に体感できる差はほぼありません。
どちらを使うべきか
判断のフローは次のとおりです。
- 新規にシートを作る場合:EXPON.DISTを使う。Microsoftの推奨に沿うのが将来的にも安全
- 既存ブックを保守する場合:EXPONDISTのままで問題なし。書き換えても挙動は変わらないので、無理に修正する優先度は低い
- Excel 2016未満との互換性が必要な場合:EXPONDISTを使う。EXPON.DISTはExcel 2016から利用可能なため
- チーム内に古いExcelユーザーが残っている場合:当面はEXPONDISTで揃えると事故が少ない
実務の感覚としては「新しく書くならEXPON.DIST、触らないものは触らない」が無難な落としどころです。新しい書き方の詳細はEXPON.DIST関数の使い方で解説しているので、新規に組む人はそちらも合わせて確認してください。
なお、同じく「旧式の統計互換関数」シリーズとして、カイ二乗分布を扱うCHIDIST関数の使い方や、その逆関数であるCHIINV関数の使い方もあります。EXPONDISTと同じ「旧→新」の置き換え構造なので、社内で旧関数の棚卸しをする際にまとめて確認しておくと効率的です。
まとめ
ExcelのEXPONDIST関数は、指数分布の確率を計算する旧式の統計関数です。現行版のExcelではEXPON.DISTが後継関数として推奨されています。引数・戻り値はEXPON.DISTと完全に同一で、計算結果も一致するため、既存ブックでEXPONDISTを見かけても無理に置き換える必要はありません。
この記事のポイントを振り返ります。
- 構文は
=EXPONDIST(x, lambda, cumulative)の3引数 - lambdaは「単位時間あたりの発生率」で、平均値の逆数(lambda=1/平均)として計算する
- cumulativeはTRUE(累積分布/確率)/FALSE(確率密度)で意味が変わる。実務はTRUEが基本
- コールセンター・MTBF・配送到着など「ランダムに発生するイベントの待ち時間」を扱うときに有効
- xが負またはlambdaが0以下なら#NUM!、引数が文字列なら#VALUE!エラー
- 新規ならEXPON.DIST(Excel 2016以降)、既存ブックはEXPONDISTのままでOK
「平均値の逆数をlambdaに入れる」という1点を押さえれば、引数で迷うことはなくなります。引き継いだ古いブックでEXPONDISTを見かけたら、慌てて書き換えるよりも「結果の意味」を読み解くことから始めると、業務での活用がぐっとスムーズになるはずです。
