スプレッドシートのEXPON.DIST関数の使い方|指数分布

スポンサーリンク

「コールセンターで次の電話が来るまで、あと何分待てばいいんだろう?」。こんな疑問を持ったことはありませんか?

平均的な間隔はわかっていても、次がいつ来るかの確率は感覚でしか語れません。手計算で求めようとすると、指数や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にも同名の関数があり、動作は同じです。

指数分布が使える場面とは

指数分布は、次の条件を満たす場面で使えます。

  1. イベントがランダムに発生する: いつ起きるかは予測できない
  2. 平均発生率が一定: 単位時間あたりの平均回数が変わらない
  3. 各イベントが独立: 前回のイベントが次の発生に影響しない

コールセンターへの着信間隔、機械の故障間隔、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分以内の確率)
10.16370.1813(18.1%)
20.13410.3297(33.0%)
30.10980.4512(45.1%)
50.07360.6321(63.2%)
100.02710.8647(86.5%)
150.01000.9502(95.0%)
200.00370.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正規分布の確率連続データ(身長・体重・気温など)を扱う場合
EXPeのべき乗ネイピア数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関数を使う
タイトルとURLをコピーしました