ExcelのGAMMADIST関数の使い方|ガンマ分布(旧: GAMMA.DIST)

スポンサーリンク

古いExcelファイルを開いたら =GAMMADIST(...) という関数が使われていて、戸惑ったことはありませんか。新しいExcelには似た名前の GAMMA.DIST 関数もあって、どちらを使えばいいのか迷いますよね。

そんなときに知っておきたいのが、ExcelのGAMMADIST関数(旧版・互換性関数)です。Excel 2010以降は新しいGAMMA.DIST関数に置き換わりました。ただ、旧バージョンとの互換性のためにGAMMADIST関数も今のExcelに残されているんですよ。

本記事では、GAMMADIST関数の構文と引数の意味、GAMMA.DIST関数との違いを解説します。さらに、xls形式や旧バージョンExcelとの互換性、旧マクロやテンプレート保守の実務シナリオも紹介します。GAMMA.DIST関数への移行手順やよくあるエラー対処法も網羅していますので、ぜひ参考にしてくださいね。

ExcelのGAMMADIST関数とは?旧版・互換性関数の位置づけ

ExcelのGAMMADIST関数(読み方: ガンマ・ディスト)は、ガンマ分布の確率を返す統計関数です。複数イベントの合計待ち時間や、右に裾が長いデータの確率を求めるときに使います。

実はこのGAMMADIST関数、GAMMA.DIST 関数の 旧バージョン(互換性関数) という位置づけです。Excel 2010で新版が登場し、旧名はピリオドなしで残されました。計算結果は新旧どちらも同じになります。旧バージョンExcelや .xls 形式ファイルとの互換性のため、今のExcelにも残っているんですよ。

ガンマ分布で何がわかるのか

ガンマ分布とは、複数のイベントが起こるまでの「合計待ち時間」を表す確率分布です。「成功か失敗か」のような離散的な試行ではなく、連続的な時間や金額のデータを扱うときに使います。

たとえば、1件あたりの問い合わせ対応時間が指数分布に従うとします。3件分の合計対応時間はガンマ分布に従うんですよ。GAMMADIST関数を使えば「3件対応で40分以内に終わる確率」のような数値を、たった1つの数式で計算できます。

ガンマ分布が活躍するのは、次のような場面です。

  1. 複数イベントの合計待ち時間(コールセンターの対応時間など)
  2. 右に裾が長いデータの分析(保険金請求額、修理費用など)
  3. 正の値のみを取る連続データ(降水量、年間売上高など)

なぜ「GAMMADIST」と「GAMMA.DIST」の2つがあるのか

Excelには関数名がよく似た2つのガンマ分布関数が存在します。

関数名登場時期位置づけ
GAMMADISTExcel 2003以前から旧版・互換性関数
GAMMA.DISTExcel 2010から新版(推奨)

Excel 2010で統計関数が大幅にリニューアルされました。このとき、ピリオドを入れた新しい命名規則が導入されたんです。GAMMA.DISTF.TESTT.TEST などが該当しますね。それまでに作られた .xls ブックや古いVBAマクロには旧名の GAMMADIST がたくさん残っています。そのため、互換性関数として今も使えるようにしてあるんですよ。

NOTE

Microsoftは新規で数式を作るときはGAMMA.DIST関数の使用を推奨しています。GAMMADIST関数は「過去のブックを開いたときにエラーにならないため」に残されている関数だと考えてくださいね。

GAMMADIST関数の構文と引数

GAMMADIST関数の基本的な書き方は、新版GAMMA.DISTと完全に同じです。引数も同じ4つを指定します。

構文

=GAMMADIST(x, alpha, beta, 関数形式)

引数の意味

引数必須説明
x必須評価する値(0以上の数値)
alpha(アルファ)必須形状パラメータ(正の数値)
beta(ベータ)必須尺度パラメータ(正の数値)
関数形式(cumulative)必須TRUEで累積分布、FALSEで確率密度

alphaは形状パラメータと呼ばれる数値で、分布の形を決めます。イベント回数に相当しますね。betaは尺度パラメータと呼ばれ、分布の広がりを決めるパラメータです。1回あたりの平均時間に相当します。

平均値は alpha × beta で計算できます。たとえばalpha=3、beta=10なら平均は30です。

WARNING

alphaとbetaはどちらも0より大きい値で指定してください。0以下を指定すると #NUM! エラーになります。xは0以上で指定してくださいね。

戻り値の意味(TRUEとFALSEで変わる)

GAMMADIST関数の戻り値は、4番目の引数によって意味がガラリと変わります。

  • TRUE → 累積分布関数(CDF)の値(xがある値以下となる確率)
  • FALSE → 確率密度関数(PDF)の値(xでの確率密度)

実務でよく使うのはTRUE(累積分布関数)です。「○○以下となる確率は?」を求めたいときはTRUEを指定しましょう。

GAMMADIST関数の基本的な使い方

実際にGAMMADIST関数を使う例を見ていきましょう。コールセンターでの対応時間を分析するシーンを想定します。

サンプルシナリオ

平均10分間隔で問い合わせが来るコールセンターを考えます。3件の問い合わせに対応する合計時間が40分以内に収まる確率を求めましょう。

  • 形状パラメータ alpha = 3(3件分のイベント)
  • 尺度パラメータ beta = 10(1件あたり平均10分)
  • 評価する値 x = 40(40分以内)

累積分布関数(TRUE)の数式と結果

A1セルに次の数式を入れます。

=GAMMADIST(40, 3, 10, TRUE)

結果は約 0.7619(76.2%) が返ってきます。3件の対応が40分以内に終わる確率は約76%ということです。シフト計画やオペレーター人数の判断材料になりますね。

確率密度関数(FALSE)の数式と結果

同じ条件で、確率密度関数の値も見てみましょう。

=GAMMADIST(40, 3, 10, FALSE)

結果は約 0.0090 です。これは「x=40での確率の密度」を表す数値です。確率そのものではない点に注意してください。

TIP

連続分布では「ちょうどx=40となる確率」は厳密にはゼロです。FALSEの戻り値は分布のグラフを描くときや、密度の比較に使う数値ですね。実務で「○○以下となる確率」を求めたいときはTRUEを使ってください。

TRUE/FALSEの結果を比較する

alpha=3、beta=10の条件で、xの値ごとの結果を比べてみましょう。平均値は alpha × beta = 30 です。

xFALSE(確率密度)TRUE(x以下の確率)
100.01840.0803(8.0%)
200.02710.3233(32.3%)
300.02240.5768(57.7%)
400.00900.7619(76.2%)
500.00840.8753(87.5%)
700.00210.9704(97.0%)

FALSE列はx=20付近で最大値を取り、その前後で小さくなります。TRUE列はxが増えるほど1に近づいていきますね。

「x以上となる確率」を求めたいときは 1 - GAMMADIST(...) と書きます。たとえば「50分以上かかる確率」なら、次の数式で計算できますよ。結果は約0.1247(12.5%)です。

=1-GAMMADIST(50, 3, 10, TRUE)

GAMMADIST関数とGAMMA.DIST関数の違いと使い分け

ここがGAMMADIST関数を語るうえで一番大事なポイントです。新旧2つの関数を、どう使い分けるのかを整理しましょう。

計算結果は完全に同じ

まず押さえておきたいのは、GAMMADIST関数とGAMMA.DIST関数の計算結果は 完全に同じ ということです。同じデータに対して同じ値が返ってくるので、結果に違いはありません。

=GAMMADIST(40, 3, 10, TRUE)    --- 0.7619
=GAMMA.DIST(40, 3, 10, TRUE)   --- 0.7619

中身のアルゴリズムも同じなので、「GAMMADIST関数は精度が低い」といった違いはありませんよ。

互換性関数として残されている理由

それでは、なぜGAMMADIST関数は今もExcelに残っているのでしょうか。理由は次の3つです。

  1. 旧VBAマクロが動作し続けるため: 過去に作られたマクロが Application.WorksheetFunction.GammaDist(...) のように旧名で関数を呼び出している場合、新版に変えるとマクロが動かなくなります
  2. 旧テンプレートとの互換性維持: 業界標準テンプレートや社内テンプレートに =GAMMADIST(...) が組み込まれている場合、関数を変えるとブック全体の見直しが必要になります
  3. Excel 2007以前との共有: 古いバージョンのExcelには GAMMA.DIST 関数が存在しません。それらのバージョンとブックを共有する場合は GAMMADIST を使う必要があります

使い分けの判断フロー

新規でブックを作るときと、既存ブックを保守するときで判断が変わります。次のフローで考えてみてください。

ブックの状況は?
├─ 新規作成(Excel 2010以降のみで使う)
│   → GAMMA.DIST を使う(推奨)
│
├─ 既存ブックの保守(GAMMADISTが既に使われている)
│   → そのままGAMMADISTを使う or 一括でGAMMA.DISTに移行
│
├─ xls形式で保存する必要がある
│   → GAMMADISTを使う(GAMMA.DISTはxlsで動かない可能性あり)
│
└─ Excel 2007以前のユーザーと共有する
    → GAMMADISTを使う

判断に迷ったら、「ブックを使う環境にExcel 2007以前が混じっていないか」をまず確認するのがおすすめですよ。

旧GAMMADIST関数を実務で使う3つのシナリオ

ここからは、新版GAMMA.DISTがある今でもGAMMADIST関数を使う場面を具体的に見ていきましょう。

シナリオ1: 旧マクロ・旧テンプレートの保守

過去に作られたマクロやテンプレートに =GAMMADIST(...) が組み込まれているケースです。

たとえば、保険会社で長年使われている請求額予測テンプレートが .xls 形式で配布されているとします。中身を開くと、=GAMMADIST(B2, 2, 50, TRUE) のような数式がたくさん埋め込まれている状況ですね。

このようなテンプレートは、無理に新版に書き換えるよりも、そのままGAMMADIST関数で運用するのが安全です。書き換えに伴う数式破損のリスクを避けられますし、過去のバージョンとの互換性も維持できますよ。

シナリオ2: xls形式ブックの取引先共有

取引先がExcel 2003以前を使っていて、.xls 形式でブックをやり取りする必要がある場合です。

.xls 形式は仕様上、Excel 2010以降の新関数を完全にはサポートしていません。ピリオド付きのGAMMA.DIST、F.TEST、T.TEST などが該当します。GAMMA.DIST関数を使ったブックを .xls で保存して相手に渡すとどうなるでしょうか。相手の環境で #NAME? エラーになる可能性があるんです。

このような共有環境では、最初から GAMMADIST を使ってブックを作っておくと安心ですね。

シナリオ3: 古いExcelバージョンとの互換性確保

社内に複数のExcelバージョンが混在している場合です。最新のMicrosoft 365を使っている人もいれば、古いExcel 2007を使い続けている部署もある。これは大企業や公的機関ではよくある状況ですよね。

そんなときは、共有ブックでは新関数を避けてGAMMADISTを使っておくと、誰の環境でもエラーなく動作します。「最新版で開いたら結果が違う」「古い環境でエラーが出た」といったトラブルを未然に防げますよ。

TIP

自分一人で使うブックなら新版GAMMA.DIST、複数人で共有するブックや配布用テンプレートはGAMMADIST、と使い分けるのが現実的です。

GAMMADIST関数の実務活用例

GAMMADIST関数を使った具体的な業務シーンを2つ紹介します。実際の数値で計算イメージをつかんでくださいね。

例1: 保険金請求額の確率予測

保険金請求額が、形状パラメータ alpha=2、尺度パラメータ beta=50(万円)のガンマ分布に従うとします。過去データから、このパラメータが推定できたケースですね。請求額が150万円以下となる確率を求めましょう。

=GAMMADIST(150, 2, 50, TRUE)

結果は約 0.8009(80.1%) です。請求の約80%が150万円以下に収まる、と予測できますね。

「200万円を超える大口請求の確率」も見てみましょう。

=1-GAMMADIST(200, 2, 50, TRUE)

結果は約 0.0916(9.2%) です。約9%の確率で200万円超の請求が来る計算になります。準備金の設定や保険料の算出に活用できますよ。

例2: 日次売上の達成確率

日次売上が alpha=5、beta=2(万円)のガンマ分布に従うケースを考えましょう。平均は5×2=10万円です。日次売上が8万円以上になる確率を求めます。

=1-GAMMADIST(8, 5, 2, TRUE)

結果は約 0.7149(71.5%) が返ります。約71%の日で8万円以上の売上が見込める計算ですね。

「15万円以上の好調日」の確率も見てみましょう。

=1-GAMMADIST(15, 5, 2, TRUE)

結果は約 0.1321(13.2%) です。好調日は約13%の頻度で発生する計算になります。人員配置や在庫計画の判断材料になりますよ。

GAMMADIST関数のよくあるエラーと対処法

GAMMADIST関数でつまずきやすいエラーをまとめます。原因と対処法を押さえておけば、迷わず解決できますよ。

#NUM! エラー(xが負の値)

項目内容
原因xに負の値(マイナスの数値)を指定した
対処法xは0以上の数値を指定する
=GAMMADIST(-1, 3, 10, TRUE)    --- #NUM! エラー

ガンマ分布は「正の値のみを取る分布」なので、負の数を評価することはできません。

#NUM! エラー(alphaやbetaが0以下)

項目内容
原因alphaまたはbetaに0以下の値を指定した
対処法alphaとbetaは正の数(0より大きい値)で指定する
=GAMMADIST(10, 0, 10, TRUE)    --- #NUM! エラー
=GAMMADIST(10, 3, 0, TRUE)     --- #NUM! エラー

形状パラメータと尺度パラメータは、いずれも0より大きい値が必須です。

#VALUE! エラー

項目内容
原因引数に文字列など数値以外が含まれる
対処法セル参照の中身が数値であることを確認する

「未入力」などの文字列がセルに入っているケースが典型例です。ISNUMBER関数でフィルタするか、IFERROR関数で代替値を入れる対処を行ってくださいね。

#NAME? エラー

項目内容
原因関数名のスペルミス
対処法GAMMADIST のスペルを確認する。ピリオドは入れない
=GAMMA_DIST(...)   --- #NAME? エラー(アンダースコア不可)
=GAMMADIS(...)     --- #NAME? エラー(スペルミス)

旧版はピリオドなしの GAMMADIST、新版はピリオド付きの GAMMA.DIST です。混同しないよう注意してくださいね。

TRUE/FALSEの指定を間違える

4番目の引数を省略することはできません。TRUEとFALSEでは結果がまったく異なるので、目的に合った値を選んでください。「x以下の確率」を求めたいのにFALSEを指定すると、確率密度(小さな数値)が返ってしまいます。

求めたいもの指定
x以下となる確率TRUE
x以上となる確率1 - GAMMADIST(x, alpha, beta, TRUE)
ある値での密度FALSE

GAMMADIST関数からGAMMA.DIST関数への移行手順

旧GAMMADIST関数を使ったブックを、新版GAMMA.DISTに移行する手順を紹介します。社内環境がすべてExcel 2010以降に統一されたタイミングで実施するといいですよ。

一括置換の方法

ブック全体の GAMMADISTGAMMA.DIST に一括で置き換えます。

  1. 移行対象のブックを開く
  2. Ctrl + H で「検索と置換」ダイアログを開く
  3. 「検索する文字列」に GAMMADIST( を入力
  4. 「置換後の文字列」に GAMMA.DIST( を入力
  5. 「すべて置換」をクリック

WARNING

単に GAMMADIST だけで置換すると、関数名以外の文字列(コメント、変数名、シート名など)に「GAMMADIST」が含まれている場合に意図しない置換が起こります。必ず GAMMADIST( のように開きカッコまで含めて置換してくださいね。

移行前のチェックポイント

移行作業を始める前に、次の点を必ず確認しましょう。

  • 共有環境のExcelバージョン: 共有相手の中にExcel 2007以前のユーザーがいないか
  • 保存形式: ブックを .xls 形式で保存する必要がないか
  • VBAマクロ: マクロ内で WorksheetFunction.GammaDist を呼び出している箇所がないか(マクロ側はGAMMA.DISTでも GammaDist_ のような別名で呼び出す必要があり、別途修正が必要)
  • バックアップ: 移行前のブックを必ずバックアップしておく

置換後はサンプル計算で結果が一致するかを確認しましょう。GAMMADISTとGAMMA.DISTは計算結果が同じです。置換前と全く同じ値が返ってくれば移行成功ですよ。

まとめ:GAMMADIST関数は互換性のために残された旧ガンマ分布関数

ExcelのGAMMADIST関数は、ガンマ分布の確率を返す 旧版の統計関数(互換性関数) です。Excel 2010で新しいGAMMA.DIST関数が登場しました。旧バージョンとの互換性のために、GAMMADIST関数も今のExcelに残されているんですよ。

要点を整理すると、次のとおりです。

  • 構文: =GAMMADIST(x, alpha, beta, 関数形式) で新版GAMMA.DISTと完全に同じ
  • 戻り値: TRUEで累積分布関数(x以下となる確率)、FALSEで確率密度関数の値
  • 新版との違い: 計算結果は同じ。違いは関数名(ピリオドの有無)と対応バージョンのみ
  • 使うべきケース: 旧マクロ・旧テンプレート保守、xls形式での保存・共有、Excel 2007以前との共有環境
  • エラー対処: xは0以上、alphaとbetaは正の数(0より大きい値)で指定する
  • 移行手順: GAMMADIST(GAMMA.DIST( に一括置換。共有環境のバージョンを事前確認

新規でブックを作るならGAMMA.DISTが推奨です。とはいえ、古い環境やテンプレートを扱う場面ではGAMMADIST関数の知識が役立ちます。「これは旧名のガンマ分布関数なんだな」と理解できれば、古いブックを開いてもあわてずに対応できますよ。

ガンマ分布の使い方そのものを詳しく知りたい方は、新版GAMMA.DIST関数の解説記事もあわせて参考にしてくださいね。コールセンターの対応時間や保険金請求額のような連続データの確率予測に役立ちます。

関連記事

タイトルとURLをコピーしました