「HYPGEOMDISTって関数を見つけたけど、HYPGEOM.DISTとどう違うの?」。スプレッドシートで統計関数を使おうとして、こんな疑問を持ったことはありませんか?
名前がよく似た関数が2つあると、どちらを使えばいいか迷いますよね。間違えたら計算結果が変わるのでは、と不安にもなります。
結論から言うと、HYPGEOMDIST関数はHYPGEOM.DIST関数の互換バージョンです。この記事ではGoogleスプレッドシートでのHYPGEOMDIST関数の使い方を、構文・引数から実務活用まで解説します。HYPGEOM.DIST関数との関係もはっきりさせますよ。
スプレッドシートのHYPGEOMDIST関数とは
HYPGEOMDIST関数(読み方: ハイパージオムディスト関数)は、超幾何分布(ちょうきかぶんぷ)にもとづいて確率を返す互換関数です。「HYPGEOM」は「Hypergeometric(超幾何)」、「DIST」は「Distribution(分布)」の略です。
超幾何分布とは、非復元抽出にもとづく確率分布のことです。非復元抽出とは、取り出したものを戻さずに次を引く方法です。くじ引きで当たりを引いたら袋に戻さずに次を引く場面をイメージしてください。引くたびに残りの枚数が減るので、毎回の当選確率が変わります。
たとえば次のような場面で使います。
- 100個の部品から10個を抜き取って不良品を調べる検査
- 20枚のくじから5枚を引いて当たりが何枚出るかの確率
- 在庫50個のうち不良品が3個あるとき、8個抜き取って全部良品の確率
NOTE
HYPGEOMDIST関数はHYPGEOM.DIST関数の互換関数です。計算結果はHYPGEOM.DISTのFALSE(確率質量)と同じですが、累積確率は求められません。Googleの公式ドキュメントではHYPGEOM.DISTが推奨されています。新しく数式を書くときはHYPGEOM.DISTを使いましょう。
HYPGEOMDIST関数の書き方(構文と引数)
基本構文
=HYPGEOMDIST(成功数, 標本サイズ, 母集団成功数, 母集団サイズ)
カッコの中に4つの引数を指定します。HYPGEOM.DIST関数の5番目の引数(cumulative)がない点が大きな違いです。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 成功数(sample_s) | 必須 | 標本内の成功数(当たりを何個引いたか) |
| 標本サイズ(number_sample) | 必須 | 標本のサイズ(何個引くか) |
| 母集団成功数(population_s) | 必須 | 母集団内の成功数(全体の当たりの数) |
| 母集団サイズ(number_pop) | 必須 | 母集団のサイズ(全体の個数) |
引数の並びは「標本→母集団」の流れです。まず「引いた中の当たり数」「何個引いたか」を指定します。次に「全体の当たり数」「全体の個数」を指定します。
TIP
引数に小数を指定すると、小数部分は切り捨てられます。たとえば2.7は2として処理されますよ。
HYPGEOM.DISTとの引数比較
HYPGEOMDIST関数とHYPGEOM.DIST関数の引数を並べて比較してみましょう。
| 引数の位置 | HYPGEOMDIST | HYPGEOM.DIST |
|---|---|---|
| 1番目 | 成功数(sample_s) | 成功数(sample_s) |
| 2番目 | 標本サイズ(number_sample) | 標本サイズ(number_sample) |
| 3番目 | 母集団成功数(population_s) | 母集団成功数(population_s) |
| 4番目 | 母集団サイズ(number_pop) | 母集団サイズ(number_pop) |
| 5番目 | なし | 累積(cumulative) |
最初の4つは同じです。HYPGEOM.DISTだけに5番目のcumulative引数があります。HYPGEOMDISTは常に確率質量(HYPGEOM.DISTのFALSE相当)を返します。
HYPGEOMDIST関数の基本的な使い方
実際に数式を入力して確率を求めてみましょう。10枚のくじがあり、そのうち3枚が当たりです。5枚引いたときに、ちょうど2枚が当たる確率を計算します。
=HYPGEOMDIST(2, 5, 3, 10)
結果は約0.4167(41.7%) です。5枚引けばほぼ半分の確率で2枚当たることがわかります。
各当たり枚数の確率も見てみましょう。
| 当たり枚数 | 数式 | 確率 |
|---|---|---|
| 0枚 | =HYPGEOMDIST(0, 5, 3, 10) | 0.0833(8.3%) |
| 1枚 | =HYPGEOMDIST(1, 5, 3, 10) | 0.4167(41.7%) |
| 2枚 | =HYPGEOMDIST(2, 5, 3, 10) | 0.4167(41.7%) |
| 3枚 | =HYPGEOMDIST(3, 5, 3, 10) | 0.0833(8.3%) |
1枚当たりと2枚当たりの確率がもっとも高く、同じ値になっています。合計するとちょうど1.0000(100%)になりますよ。
品質検査での活用例
品質管理の現場でも活用できます。100個の部品のうち不良品が5個あるロットから、10個を抜き取り検査する場面を考えましょう。
不良品が1個も含まれない確率を求めます。
=HYPGEOMDIST(0, 10, 5, 100)
結果は約0.5838(58.4%) です。不良品率5%のロットでも、10個の抜き取りでは約58%の確率で不良品がゼロになります。検査の精度を見積もるときに使えますよ。
「k個以上」の確率を求めるには
HYPGEOMDIST関数には累積確率の機能がありません。「k個以上」の確率を求めるには、個別の確率を足し合わせる必要があります。
たとえば「10枚のくじ(当たり3枚)から5枚引いて、2枚以上当たる確率」は次のように計算します。
=HYPGEOMDIST(2, 5, 3, 10) + HYPGEOMDIST(3, 5, 3, 10)
結果は約0.5000(50.0%) です。2枚当たる確率と3枚当たる確率を足しています。
ただし、場合の数が多いと個別に足すのは大変です。そんなときはHYPGEOM.DIST関数のTRUE(累積確率)を使うほうが簡単ですよ。
=1 - HYPGEOM.DIST(1, 5, 3, 10, TRUE)
累積確率を使えるのがHYPGEOM.DISTの大きなメリットです。
HYPGEOM.DIST関数との違い・どちらを使うべき?
HYPGEOMDIST関数とHYPGEOM.DIST関数の関係を整理しましょう。
| 項目 | HYPGEOMDIST | HYPGEOM.DIST |
|---|---|---|
| 種類 | 互換関数(旧バージョン) | 現行関数(推奨) |
| 引数の数 | 4つ | 5つ |
| 累積確率 | 非対応 | TRUE/FALSEで選択可能 |
| 確率質量の計算結果 | 同じ | 同じ(FALSEを指定) |
| Googleの推奨 | 非推奨 | 推奨 |
結論としては、新しく数式を書くときはHYPGEOM.DISTを使いましょう。理由は次の3つです。
- Googleの公式ドキュメントでHYPGEOM.DISTが推奨されている
- 累積確率(TRUE)を使えるため、「k個以下」の確率を1つの数式で求められる
- ExcelでもHYPGEOM.DISTが標準で、互換性が高い
ただし、既存のスプレッドシートでHYPGEOMDISTが使われている場合は慌てて書き換える必要はありません。確率質量の計算結果は同じなので、そのまま動き続けますよ。
TIP
HYPGEOM.DIST関数の詳しい使い方(累積確率の活用、品質検査への応用、BINOM.DISTとの使い分けなど)はHYPGEOM.DIST関数の解説記事で詳しく紹介しています。
HYPGEOMDISTからHYPGEOM.DISTへの書き換え
既存の数式を書き換えるなら、関数名を変更して5番目にFALSEを追加するだけです。
=HYPGEOMDIST(2, 5, 3, 10) ← 互換関数
=HYPGEOM.DIST(2, 5, 3, 10, FALSE) ← 推奨関数(FALSEを追加)
どちらも結果は0.4167です。HYPGEOMDISTは常にFALSE(確率質量)相当の値を返すので、書き換えるときは必ずFALSEを指定してくださいね。
スプレッドシートの「検索と置換」機能(Ctrl+H)を使えばシート内のHYPGEOMDISTをまとめて見つけられます。ただし引数の追加が必要なため、BINOM.DIST関数やBINOMDIST関数のように単純な名前の置換だけでは完了しません。1つずつ5番目の引数を追加していきましょう。
よくあるエラーと対処法
HYPGEOMDIST関数でつまずきやすいポイントをまとめました。
#NUM! エラー: 成功数が標本サイズを超えている
成功数は標本サイズ以下でなければなりません。「5個引いて6個当たる」は起こりえないのでエラーになります。
=HYPGEOMDIST(6, 5, 3, 10) ← #NUM! エラー
引数の順番を間違えていないか確認してみてください。
#NUM! エラー: 母集団成功数が母集団サイズを超えている
母集団成功数は母集団サイズ以下でなければなりません。「全体100個のうち当たり120個」は矛盾しています。
=HYPGEOMDIST(2, 5, 120, 100) ← #NUM! エラー
#NUM! エラー: 成功数が母集団成功数を超えている
当たりが全部で3個しかないのに、5個当てることはできません。
=HYPGEOMDIST(5, 10, 3, 100) ← #NUM! エラー
#VALUE! エラー: 引数に文字列が入っている
数値であるべき引数にテキストが入ると#VALUE!エラーです。セル参照を使うときは、参照先が数値であることを確認しましょう。
累積確率を求めようとしてエラーになるケース
HYPGEOMDIST関数にはcumulative引数がありません。5番目の引数を指定するとエラーになります。累積確率が必要な場合はHYPGEOM.DIST関数を使ってくださいね。
まとめ
HYPGEOMDIST関数は、超幾何分布(非復元抽出の確率分布)にもとづいて確率を求める互換関数です。
- HYPGEOM.DIST関数の旧バージョンで、確率質量の計算結果は完全に同じ
- 引数は4つで、HYPGEOM.DISTの5番目のcumulative引数がない
- 常に確率質量(「ちょうどk個当たる確率」)のみを返す
- 累積確率(「k個以下の確率」)が必要ならHYPGEOM.DISTを使おう
- 新しく数式を書くときはHYPGEOM.DISTがおすすめ
- 既存のHYPGEOMDIST数式はそのまま動くので、急いで書き換えなくてOK
- 成功数 > 標本サイズなどの矛盾した値を指定すると
#NUM!エラー - ほかの互換関数(BINOMDIST関数、POISSON関数など)も同様に現行関数への移行が推奨されている
HYPGEOMDISTとHYPGEOM.DISTで迷ったら、HYPGEOM.DISTを選んでおけば間違いありません。既存ファイルのHYPGEOMDISTも問題なく動くので、安心してくださいね。
