「次のイベントまでの待ち時間を、確率で知りたい」。そんな場面で使うのが指数分布です。
Googleスプレッドシートで指数分布を扱う関数は2つあります。EXPONDIST関数とEXPON.DIST関数です。名前は違いますが、計算結果はまったく同じです。
この記事ではEXPONDIST関数の使い方を、基本構文から実務活用まで解説します。EXPON.DIST関数との違いもあわせて紹介しますよ。
EXPONDIST関数とは
EXPONDIST関数(読み方: エクスポンディスト関数)は、指数分布にもとづいて確率を返す関数です。指数分布とは、あるイベントが次に起こるまでの「待ち時間」を表す確率分布です。
たとえば「平均10分に1件の問い合わせが来る窓口で、5分以内に次の問い合わせが来る確率」を1つの数式で求められます。
EXPONDIST関数にできることをまとめると、次のとおりです。
- ある時間内にイベントが起きる確率を求める(累積分布)
- 特定の時点での確率密度を求める
- コールセンターの待ち時間を確率で計算する
- 機械の故障間隔やメンテナンス周期の予測に使う
WARNING
EXPONDIST関数は、以前のバージョンとの互換性を維持するための関数です。Googleスプレッドシートでは問題なく使えますが、新しく数式を書くときはEXPON.DIST関数を使うことをおすすめします。計算結果は同じです。
指数分布が使える場面とは
指数分布は、次の条件を満たす場面で使えます。
- イベントがランダムに発生する: いつ起きるかは予測できない
- 平均発生率が一定: 単位時間あたりの平均回数が変わらない
- 各イベントが独立: 前回のイベントが次の発生に影響しない
コールセンターへの着信間隔、機械の故障間隔、Webサイトへのアクセス間隔などが典型的な場面です。
TIP
指数分布には「無記憶性」という特徴があります。すでに5分待っていても、あと何分待つかの確率は最初から数えた場合と同じです。過去の待ち時間が未来に影響しない、というわけですね。
EXPONDIST関数の書き方(構文と引数)
基本構文
=EXPONDIST(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関数の基本的な使い方
実際にEXPONDIST関数を使ってみましょう。
例題: コールセンターに平均10分間隔で問い合わせが来ます。5分以内に次の問い合わせが来る確率を求めてみます。lambda = 1/10 = 0.1です。
セルに次の数式を入力してください。
=EXPONDIST(5, 0.1, TRUE)
結果は約0.3935(39.4%) です。5分以内に次の問い合わせが来る確率は約39%ということがわかりました。
次に、同じ条件で確率密度を求めてみましょう。
=EXPONDIST(5, 0.1, FALSE)
結果は約0.0607 です。これは時間5での確率の密度を表す値です。「ちょうど5分の確率」ではない点に注意してくださいね。
「10分以上待つ確率」を知りたいときは、1から累積確率を引きます。
=1 - EXPONDIST(10, 0.1, TRUE)
結果は約0.3679(36.8%) です。10分以上の空白時間が生まれる確率は約37%ですね。
TRUE/FALSEの結果を比較する
平均10分間隔(lambda=0.1)の場合で、経過時間ごとの結果を並べてみましょう。
| 経過時間(分) | FALSE(確率密度) | TRUE(x分以内の確率) |
|---|---|---|
| 1 | 0.0905 | 0.0952(9.5%) |
| 3 | 0.0741 | 0.2592(25.9%) |
| 5 | 0.0607 | 0.3935(39.4%) |
| 10 | 0.0368 | 0.6321(63.2%) |
| 15 | 0.0223 | 0.7769(77.7%) |
| 20 | 0.0135 | 0.8647(86.5%) |
| 30 | 0.0050 | 0.9502(95.0%) |
FALSE列は時間が短いほど大きく、長くなるほど0に近づきます。TRUE列は時間が増えるほど1に近づいていきますよ。
EXPONDIST関数の実践的な使い方
基本がわかったところで、実務で使えるパターンを紹介します。
コールセンターの待ち時間を確率で判断する
平均8分間隔で着信があるコールセンターを考えましょう。lambda = 1/8 = 0.125です。
3分以内に次の電話が来る確率を求めます。
=EXPONDIST(3, 0.125, TRUE)
結果は約0.3127(31.3%) です。約31%の確率で3分以内に次の電話が来ます。
では「15分以上電話が来ない確率」はどうでしょうか。
=1 - EXPONDIST(15, 0.125, TRUE)
結果は約0.1534(15.3%) です。15分以上の空白時間が生まれる確率は約15%です。この情報が他の作業に充てるかの判断材料になりますね。
機械のメンテナンス周期を見積もる
平均500時間で故障するプリンターを考えてみましょう。lambda = 1/500 = 0.002です。
300時間以内に故障する確率を求めます。
=EXPONDIST(300, 0.002, TRUE)
結果は約0.4512(45.1%) です。300時間以内に故障する確率は約45%です。
「1,000時間を超えても故障しない確率」も確認してみましょう。
=1 - EXPONDIST(1000, 0.002, TRUE)
結果は約0.1353(13.5%) です。1,000時間もつ確率は約14%です。メンテナンス計画は500時間を目安に組むのが妥当だとわかります。
配送業務の注文間隔を分析する
平均20分間隔で注文が入るECサイトを考えましょう。lambda = 1/20 = 0.05です。
10分以内に次の注文が来る確率を求めます。
=EXPONDIST(10, 0.05, TRUE)
結果は約0.3935(39.4%) です。約39%の確率で10分以内に次の注文が来ます。
一方で「30分以上注文が来ない確率」を見ると、
=1 - EXPONDIST(30, 0.05, TRUE)
結果は約0.2231(22.3%) です。30分以上空く確率は約22%です。この時間帯には梱包作業を進める、といった判断ができますね。
EXPONDIST関数でよくあるエラーと対処法
EXPONDIST関数でつまずきやすいポイントをまとめました。
xが負の値で#NUM!エラー
xは0以上の数値で指定します。負の値を入れるとエラーになります。
=EXPONDIST(-1, 0.2, TRUE) ← #NUM! エラー
lambda(ラムダ)が0以下で#NUM!エラー
lambdaは正の数で指定します。0以下の値を入れるとエラーになります。
=EXPONDIST(5, 0, TRUE) ← #NUM! エラー
=EXPONDIST(5, -0.1, TRUE) ← #NUM! エラー
引数に文字列を渡して#VALUE!エラー
数値であるべき引数にテキストが入ると#VALUE!エラーです。セル参照を使うときは、参照先が数値であることを確認しましょう。
lambdaに平均待ち時間をそのまま入れてしまう
よくある間違いの筆頭です。lambdaは「率パラメータ」です。平均待ち時間の逆数を指定します。平均10分なら lambda = 1/10 = 0.1 です。
セル参照で =EXPONDIST(5, 1/B1, TRUE) と書くと間違いを防げますよ。
TRUE/FALSEの指定を間違える
3番目の引数を省略することはできません。TRUEとFALSEでは結果がまったく異なります。「x以内に起きる確率」ならTRUE、「確率密度」ならFALSEです。
EXPONDIST関数とEXPON.DIST関数の違い
Googleスプレッドシートには、EXPONDIST関数のほかにEXPON.DIST関数があります。結論からいうと、計算結果はまったく同じです。
=EXPONDIST(5, 0.1, TRUE) → 0.3935
=EXPON.DIST(5, 0.1, TRUE) → 0.3935
違いは名前だけで、引数の数・順番・意味もすべて同じです。
| 項目 | EXPONDIST | EXPON.DIST |
|---|---|---|
| 構文 | =EXPONDIST(x, lambda, cumulative) | =EXPON.DIST(x, lambda, cumulative) |
| 引数の数 | 3 | 3 |
| 計算結果 | 同じ | 同じ |
| 位置づけ | 互換関数(旧バージョン向け) | 推奨関数(新バージョン) |
EXPONDIST関数は古いスプレッドシートとの互換性を維持するために残されている関数です。新しく数式を書くときはEXPON.DIST関数を使いましょう。既存のシートでEXPONDIST関数が使われている場合は、そのまま動作するので急いで書き換える必要はありません。
関連する統計関数
指数分布以外の確率分布を扱いたいときは、目的に合った関数を選びましょう。
| 関数 | 用途 | いつ使うか |
|---|---|---|
| EXPON.DIST | 指数分布の確率 | EXPONDIST関数の推奨版。新規数式はこちら |
| POISSON.DIST | ポアソン分布の確率 | 一定期間にイベントが何回起きるかを扱う場合 |
| POISSON | ポアソン分布の確率(互換関数) | 既存のシートで使われている場合 |
| NORM.DIST | 正規分布の確率 | 連続データ(身長・体重・気温など)を扱う場合 |
迷ったときの判断基準はシンプルです。
- 次のイベントまでの待ち時間 → EXPON.DIST(EXPONDISTでも同じ結果)
- 一定期間にイベントが何回起きるか → POISSON.DIST
- 連続データの確率 → NORM.DIST
まとめ
EXPONDIST関数は、指数分布(次のイベントまでの待ち時間)にもとづいて確率を求める互換関数です。
- 3番目の引数にTRUEで「x以内にイベントが起きる確率」が返る
- FALSEで「時間xでの確率密度」が返る
- lambdaは平均待ち時間の逆数(1/平均)を指定する
- コールセンターの待ち時間・機械故障間隔・注文間隔の予測に使える
- 「x以上待つ確率」を求めるには
=1 - EXPONDIST(x, lambda, TRUE)と書く - xが負の値やlambdaが0以下だと
#NUM!エラー - EXPON.DIST関数と計算結果は同じ。新規にはEXPON.DISTを推奨
- 「回数」を扱うならPOISSON.DIST関数、「連続データの確率」ならNORM.DIST関数を使う
「平均的な間隔はわかっているけど、次がいつ来るかの確率は?」を数字で答えられるようになると、人員配置やメンテナンス計画の精度がぐっと上がります。ぜひ実際のデータで試してみてくださいね。
