ExcelのGAMMAINV関数の使い方|ガンマ分布の逆関数(旧: GAMMA.INV)
ExcelのGAMMAINV関数は、ガンマ分布の逆関数を計算する関数です。
ガンマ分布とは、待ち時間や故障時間の分析に使われる確率分布の一種です。
この関数の役割は「累積確率pからx値を求める」ことです。
累積分布関数(CDF:ある値x以下になる確率)の逆を求める、と言い換えられます。
コールセンターの「90%の顧客を何分以内に対応できるか」といった閾値計算に活躍しますよ。
ExcelのGAMMAINV関数とは?GAMMA.INVとの関係を整理
ExcelのGAMMAINV関数は、Excel 2007以前から使える旧関数です。
Excel 2010以降では、後継のGAMMA.INV関数が追加されました。
両者は引数の数・順番・計算結果がまったく同じです。
既存シートに書かれたGAMMAINVは、そのまま動作します。
ただし、Microsoftは「将来のバージョンで使用不可になる可能性がある」と公式に警告しています。
新規ファイルでは、GAMMA.INVを使うことをおすすめしますよ。
GAMMAINV関数の書式(引数の読み方)
=GAMMAINV(probability, alpha, beta)
| 引数 | 説明 | 有効範囲 |
|---|---|---|
| probability | ガンマ分布の累積確率 | 0以上1未満 |
| alpha | 形状パラメータ(分布の山の形を決める値) | 0より大きい正の数 |
| beta | 尺度パラメータ(分布のスケールを決める値) | 0より大きい正の数 |
形状パラメータ(alpha) は、分布の山がどんな形になるかを決める値です。
alphaが大きいほど、対称なベル型の分布に近づきます。
尺度パラメータ(beta) は、分布の広がり具合を調整する値です。
beta=1を指定すると、標準ガンマ分布(スケール=1)の逆関数値が返ります。
3つの引数はすべて必須です。省略するとエラーになるので、忘れずに入力してくださいね。
GAMMAINV関数の基本的な使い方(数値例)
alpha=2、beta=3のガンマ分布を例に解説します。
この設定では分布の平均はα×β=6、分散はα×β²=18になります。
例1:中央値(50パーセンタイル)を求める
パーセンタイルとは、全体を100等分したときの順位を示す値です。
50パーセンタイルは「下から50番目の位置」、つまり中央値に当たります。
=GAMMAINV(0.5, 2, 3)
結果:5.035041
「50%の確率でx≦5.035の範囲に収まる」と解釈できます。
この値がこのガンマ分布の中央値ですよ。
例2:95パーセンタイルを求める
=GAMMAINV(0.95, 2, 3)
結果:14.231594
「95%の確率でx≦14.23の範囲に収まる」という意味です。
この値を閾値として使えば、95%をカバーする基準線が引けますね。
GAMMA.INV関数との違い・互換性チェック
| 比較項目 | GAMMAINV | GAMMA.INV |
|---|---|---|
| 対応バージョン | Excel 2007以前〜 | Excel 2010〜 |
| 引数の構文 | 完全に同一 | 完全に同一 |
| 計算結果 | 同一 | 同一 |
| 収束反復回数 | 最大100回 | 最大64回 |
| 廃止リスク | あり(将来バージョン) | なし |
引数の内容・順番・計算結果はまったく同じです。
GAMMAINV → GAMMA.INVへの置き換えは、関数名を変更するだけで済みます。
収束反復回数は異なりますが、通常の引数範囲では結果に差は出ません。
新規作成の場合は、GAMMA.INVを選ぶようにしてみてください。
関数挿入ダイアログでGAMMAINVが見つからない場合は、「互換性」カテゴリを確認してみてくださいね。
実務活用例:待ち時間の閾値算出
ガンマ分布は「複数の工程が連続するプロセス」の時間モデルに適しています。
コールセンターや物流の業務改善でよく使われますよ。
シナリオ:コールセンターのSLA設定
SLA(サービスレベル合意:品質保証の取り決め)を数値で示すときに役立ちます。
平均待ち時間6分(alpha=2、beta=3)のガンマ分布に従う場合の計算例です。
=GAMMAINV(0.9, 2, 3) → 11.669161(約11.67分)
=GAMMAINV(0.95, 2, 3) → 14.231594(約14.23分)
「90%の顧客を11.67分以内」「95%を14.23分以内」という根拠数値が求まります。
数値で裏付けられたSLA設定が作れますね。
品質管理・保証期間設定
製品寿命がガンマ分布(alpha=3、beta=100)に従う場合の計算例です。
=GAMMAINV(0.05, 3, 100) → 81.8時間(5%の製品が壊れる時間)
=GAMMAINV(0.95, 3, 100) → 629.6時間(95パーセンタイル)
「製品の5%が壊れる時間(81.8時間)」を保証期間の設計下限として活用できますよ。
GAMMADIST関数との組み合わせで逆関数を検証
GAMMAINVとGAMMADISTは逆の関係にあります。
次の式が、数値誤差の範囲内で成立します。
GAMMAINV(GAMMADIST(x, alpha, beta, TRUE), alpha, beta) ≈ x
具体的な検証例:
=GAMMADIST(5.035041, 2, 3, TRUE) → 0.5(累積確率50%)
=GAMMAINV(0.5, 2, 3) → 5.035041(元のx値に戻る)
GAMMADIST → GAMMAINVと入れ子にすると、元のx値に戻ります。
自分が作った数式の結果が正しいか確認するときに使ってみてください。
ExcelのGAMMADIST関数の使い方では、順方向(x値 → 確率)の求め方を解説しています。
両方読むと、ガンマ分布の全体像が把握できますよ。
よくあるエラー(#NUM! / #VALUE!)と対処法
#NUM! エラー
引数の値が有効範囲外のときに発生します。
| 原因 | 入力例 |
|---|---|
| probabilityが0未満 | =GAMMAINV(-0.1, 2, 3) |
| probabilityが1以上 | =GAMMAINV(1, 2, 3) |
| alphaが0以下 | =GAMMAINV(0.5, -1, 3) |
| betaが0以下 | =GAMMAINV(0.5, 2, -1) |
対処法: probabilityは0以上1未満の数値を使いましょう。
alphaとbetaは、必ず正の数(0より大きい値)を入力します。
なお、probability=0は有効な入力で、このとき結果は0になります。
#VALUE! エラー
引数に数値でない値(テキストや空白)が入っているときに発生します。
=GAMMAINV("a", 2, 3) → #VALUE!
対処法: 参照セルにテキストや空白が混入していないか確認しましょう。
数値として扱えるセルかどうかを確かめてから使ってみてください。
#N/A エラー
収束計算が完了しなかった場合に発生します。
通常の引数範囲では、ほとんど発生しません。
引数に極端に大きい・小さい値を使っている場合は、数値を見直してみてくださいね。
まとめ:GAMMAINV → GAMMA.INVへの移行ポイント
- GAMMAINV関数は「累積確率p → x値」を求める逆関数です
- 引数はprobability・alpha(形状パラメータ)・beta(尺度パラメータ)の3つです
- GAMMA.INVとは引数の内容・順番・計算結果が完全に同一です
- 新規ファイルではGAMMA.INVを使うのが安全です(廃止リスクを回避できます)
- #NUM!は引数の範囲外エラー、#VALUE!は非数値の入力が原因です
ガンマ関数の対数を計算するExcelのGAMMALN関数の使い方も、高度な統計計算では登場します。
合わせて確認しておくと、ガンマ分布系の関数を幅広く使いこなせますよ。
