「コールセンターで次の電話が来るまで、あと何分待てばいいんだろう?」。こんな疑問を持ったことはありませんか?
平均的な間隔はわかっていても、次がいつ来るかの確率は感覚でしか語れません。手計算で求めようとすると、指数やeの計算が出てきて大変ですよね。
そんなときに使うのがEXPON.DIST関数です。この記事では基本構文から実務活用まで解説します。TRUE/FALSEの違いや、EXPONDIST関数との関係もあわせて紹介しますよ。
EXPON.DIST関数とは
EXPON.DIST関数(読み方: エクスポン・ディスト関数)は、指数分布にもとづいて確率を返す関数です。指数分布とは、あるイベントが次に起こるまでの「待ち時間」を表す確率分布です。
「EXPON」は「Exponential(指数)」の略です。「DIST」は「Distribution(分布)」の略です。
たとえば「平均10分に1件の問い合わせが来る窓口で、5分以内に次の問い合わせが来る確率」を1つの数式で求められます。
EXPON.DIST関数にできることをまとめると、次のとおりです。
- ある時間内にイベントが起きる確率を求める(累積分布)
- 特定の時点での確率密度を求める
- コールセンターの待ち時間を確率で計算する
- 機械の故障間隔やメンテナンス周期の予測に使う
NOTE
EXPON.DIST関数はGoogleスプレッドシートの全バージョンで使えます。Excelにも同名の関数があり、動作は同じです。
指数分布が使える場面とは
指数分布は、次の条件を満たす場面で使えます。
- イベントがランダムに発生する: いつ起きるかは予測できない
- 平均発生率が一定: 単位時間あたりの平均回数が変わらない
- 各イベントが独立: 前回のイベントが次の発生に影響しない
コールセンターへの着信間隔、機械の故障間隔、Webサイトへのアクセス間隔などが典型的な場面です。
TIP
指数分布には「無記憶性」という特徴があります。すでに5分待っていても、あと何分待つかの確率は最初から数えた場合と同じです。過去の待ち時間が未来に影響しない、というわけですね。
基本構文と3つの引数
=EXPON.DIST(x, lambda, 累積)
カッコの中に3つの引数を指定します。
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| x | 必須 | 評価する値(待ち時間など、0以上の数値) |
| lambda(ラムダ) | 必須 | 率パラメータ(1/平均待ち時間) |
| 累積(cumulative) | 必須 | TRUEで累積分布、FALSEで確率密度 |
lambdaは「率パラメータ」と呼ばれます。平均待ち時間の逆数です。たとえば平均10分に1件なら lambda = 1/10 = 0.1 です。
WARNING
lambdaは「平均待ち時間」ではなく「1/平均待ち時間」です。平均10分なら10ではなく0.1を指定してください。ここを間違えると結果が大きくずれます。
EXPONDIST関数(互換関数)との関係
GoogleスプレッドシートにはEXPONDISTという関数もあります。これはEXPON.DISTの旧バージョンです。計算結果はまったく同じです。
=EXPONDIST(5, 0.1, TRUE) --- 旧関数名(動作は同じ)
=EXPON.DIST(5, 0.1, TRUE) --- 新関数名(推奨)
引数の数・順番・意味もすべて同じです。新しく数式を書くときはEXPON.DISTを使いましょう。既存のシートでEXPONDIST関数が使われていても、そのまま動作します。急いで書き換える必要はありません。
NOTE
EXPONDIST関数の詳しい使い方は、別の記事で解説しています。
EXPON.DIST関数のTRUE/FALSEの違い
EXPON.DIST関数の3番目の引数「累積」は、TRUEかFALSEで結果がまったく変わります。この違いを押さえることが使いこなすポイントです。
FALSE(確率密度関数)——ある時点での密度
FALSEを指定すると確率密度関数(PDF)の値を返します。「時間xでの確率の密度」を表す値です。
=EXPON.DIST(5, 0.2, FALSE)
lambda=0.2は平均5分間隔を意味します。この数式は時間5での確率密度を返します。結果は約0.0736です。
数学的には、次の式で計算されています。
f(x) = lambda * e^(-lambda * x)
確率密度はそのままでは「ちょうどx分の確率」にはなりません。連続分布なので、確率はTRUEで求めるのが一般的です。
TRUE(累積分布関数)——x以内に起きる確率
TRUEを指定すると累積分布関数(CDF)の値を返します。「時間x以内にイベントが起きる確率」です。
=EXPON.DIST(5, 0.2, TRUE)
平均5分間隔のとき、5分以内に次のイベントが起きる確率です。結果は約0.6321(63.2%)です。
数学的には、次の式で計算されています。
F(x) = 1 - e^(-lambda * x)
実務で「何分以内に起きる確率は?」と聞かれたら、TRUEを使ってください。
2つを比較してみる(サンプルデータつき)
平均5分間隔(lambda=0.2)の場合で、経過時間ごとの結果を比べてみましょう。
| 経過時間(分) | FALSE(確率密度) | TRUE(x分以内の確率) |
|---|---|---|
| 1 | 0.1637 | 0.1813(18.1%) |
| 2 | 0.1341 | 0.3297(33.0%) |
| 3 | 0.1098 | 0.4512(45.1%) |
| 5 | 0.0736 | 0.6321(63.2%) |
| 10 | 0.0271 | 0.8647(86.5%) |
| 15 | 0.0100 | 0.9502(95.0%) |
| 20 | 0.0037 | 0.9817(98.2%) |
FALSE列は時間が短いほど大きく、長くなるほど0に近づきます。TRUE列は時間が増えるほど1に近づいていきます。
「x分以上待つ確率」を求めたいときは =1 - EXPON.DIST(x, lambda, TRUE) と書きます。たとえば「10分以上待つ確率」なら次のとおりです。結果は約0.1353(13.5%)です。
=1 - EXPON.DIST(10, 0.2, TRUE)
EXPON.DIST関数の実務活用3パターン
基本がわかったところで、実際の業務で使えるパターンを3つ紹介します。
コールセンター——次の着信までの待ち時間
「平均8分間隔で着信があるコールセンター」を考えましょう。次の電話が3分以内に来る確率を求めます。lambda = 1/8 = 0.125です。
=EXPON.DIST(3, 0.125, TRUE)
結果は約0.3127(31.3%)です。約31%の確率で3分以内に次の電話が来ます。
では「15分以上電話が来ない確率」はどうでしょうか。
=1 - EXPON.DIST(15, 0.125, TRUE)
結果は約0.1534(15.3%)です。15分以上の空白時間が生まれる確率は約15%です。この情報が他の作業に充てるかの判断材料になりますね。
機械のメンテナンス——故障間隔の予測
「平均500時間で故障するプリンター」を考えてみましょう。300時間以内に故障する確率を求めます。lambda = 1/500 = 0.002です。
=EXPON.DIST(300, 0.002, TRUE)
結果は約0.4512(45.1%)です。300時間以内に故障する確率は約45%です。
では「1,000時間を超えても故障しない確率」はどうでしょうか。
=1 - EXPON.DIST(1000, 0.002, TRUE)
結果は約0.1353(13.5%)です。1,000時間もつ確率は約14%です。メンテナンス計画は500時間を目安に組むのが妥当だとわかります。
配送業務——次の注文が届くまでの時間
「平均20分間隔で注文が入るECサイト」を考えましょう。10分以内に次の注文が来る確率を求めます。lambda = 1/20 = 0.05です。
=EXPON.DIST(10, 0.05, TRUE)
結果は約0.3935(39.4%)です。約39%の確率で10分以内に次の注文が来ます。
一方で「30分以上注文が来ない確率」を見ると、
=1 - EXPON.DIST(30, 0.05, TRUE)
結果は約0.2231(22.3%)です。30分以上空く確率は約22%です。この時間帯には梱包作業を進める、といった判断ができますね。
POISSON.DIST関数との関係——回数と間隔の違い
EXPON.DIST関数とPOISSON.DIST関数は、同じ現象を異なる角度から見ている関数です。
- POISSON.DIST: 一定期間に「何回」起きるか(離散的な回数)
- EXPON.DIST: 次のイベントまで「どのくらい待つか」(連続的な時間)
たとえば「1時間に平均6件の問い合わせが来る」場合を考えましょう。
POISSON.DIST関数で「1時間に8件以上来る確率」を求めるなら、
=1 - POISSON.DIST(7, 6, TRUE)
結果は約0.1528(15.3%)です。
EXPON.DIST関数で「次の問い合わせが5分以内に来る確率」を求めてみましょう。平均間隔は60/6=10分なので lambda=0.1 です。
=EXPON.DIST(5, 0.1, TRUE)
結果は約0.3935(39.4%)です。
同じデータでも、知りたいことに合わせて関数を選び分けましょう。
確率分布関数ファミリー
Googleスプレッドシートには、確率分布に関連する関数がいくつかあります。目的に応じて使い分けましょう。
| 関数 | 用途 | いつ使うか |
|---|---|---|
| EXPON.DIST | 指数分布の確率 | 次のイベントまでの待ち時間を扱う場合 |
| EXPONDIST | 指数分布の確率(互換関数) | 既存のシートで使われている場合 |
| POISSON.DIST | ポアソン分布の確率 | 一定期間のイベント発生回数を扱う場合 |
| NORM.DIST | 正規分布の確率 | 連続データ(身長・体重・気温など)を扱う場合 |
| EXP | eのべき乗 | ネイピア数eのべき乗を直接計算する場合 |
迷ったときの判断基準はシンプルです。
- 次のイベントまでの待ち時間 → EXPON.DIST
- 一定期間にイベントが何回起きるか → POISSON.DIST
- 連続データの確率 → NORM.DIST
よくある間違いと注意点
EXPON.DIST関数でつまずきやすいポイントをまとめました。
xが負の値で#NUM!エラー
xは0以上の数値で指定します。負の値を入れるとエラーになります。
=EXPON.DIST(-1, 0.2, TRUE) --- #NUM! エラー
lambda(ラムダ)が0以下で#NUM!エラー
lambdaは正の数で指定します。0以下の値を入れるとエラーになります。
=EXPON.DIST(5, 0, TRUE) --- #NUM! エラー
=EXPON.DIST(5, -0.1, TRUE) --- #NUM! エラー
引数に文字列を渡して#VALUE!エラー
数値であるべき引数にテキストが入ると#VALUE!エラーになります。セル参照を使うときは、参照先が数値であることを確認しましょう。
lambdaに平均待ち時間をそのまま入れてしまう
よくある間違いの筆頭です。lambdaは「率パラメータ」です。平均待ち時間の逆数を指定します。平均10分なら lambda = 1/10 = 0.1 です。セル参照で =EXPON.DIST(5, 1/B1, TRUE) と書くと間違いを防げますよ。
TRUE/FALSEの指定を間違える
3番目の引数を省略することはできません。TRUEとFALSEでは結果がまったく異なります。「x以内に起きる確率」を求めたいのにFALSEを指定すると、確率密度が返ってしまいます。目的に合った値を選んでくださいね。
Excelとの違い
EXPON.DIST関数は、GoogleスプレッドシートとExcelで構文・動作ともにほぼ同じです。
=EXPON.DIST(5, 0.2, TRUE)
この数式はどちらの環境でも同じ結果を返します。Excelでも旧関数名EXPONDISTが使えます。ただしMicrosoft公式ではEXPON.DISTが推奨されています。
ExcelとGoogleスプレッドシートを併用している方は、EXPON.DISTで統一しておけば問題ありませんよ。
まとめ
EXPON.DIST関数は、指数分布(次のイベントまでの待ち時間)にもとづいて確率を求める関数です。
- 3番目の引数にTRUEで「x以内にイベントが起きる確率」が返る
- FALSEで「時間xでの確率密度」が返る
- lambdaは平均待ち時間の逆数(1/平均)を指定する
- コールセンターの待ち時間・機械故障間隔・注文間隔の予測に使える
- 「x以上待つ確率」を求めるには
=1 - EXPON.DIST(x, lambda, TRUE)と書く - xが負の値やlambdaが0以下だと
#NUM!エラー - EXPONDIST関数と計算結果は同じ。新規にはEXPON.DISTを推奨
- 「回数」を扱うならPOISSON.DIST関数、「連続データの確率」ならNORM.DIST関数を使う
