スプレッドシートのHYPGEOMDIST関数の使い方|超幾何分布(互換)

スポンサーリンク

「HYPGEOMDISTって関数を見つけたけど、HYPGEOM.DISTとどう違うの?」。スプレッドシートで統計関数を使おうとして、こんな疑問を持ったことはありませんか?

名前がよく似た関数が2つあると、どちらを使えばいいか迷いますよね。間違えたら計算結果が変わるのでは、と不安にもなります。

結論から言うと、HYPGEOMDIST関数はHYPGEOM.DIST関数の互換バージョンです。この記事ではGoogleスプレッドシートでのHYPGEOMDIST関数の使い方を、構文・引数から実務活用、そしてよくある疑問まで解説します。HYPGEOM.DIST関数との関係もはっきりさせますよ。

  1. スプレッドシートのHYPGEOMDIST関数とは
    1. 二項分布(BINOMDIST)との違い
  2. HYPGEOMDIST関数の書き方(構文と引数)
    1. 基本構文
    2. 引数の説明
    3. 数式の中身(COMBIN関数とのつながり)
    4. HYPGEOM.DISTとの引数比較
  3. HYPGEOMDIST関数の基本的な使い方
    1. セル参照で値を変えて試す
    2. 品質検査での活用例
    3. 「k個以上」の確率を求めるには
  4. 実務シナリオ別のHYPGEOMDIST活用
    1. シナリオ1: 抜き取り検査の合格基準を作る
    2. シナリオ2: アンケートのサンプル代表性をチェック
    3. シナリオ3: イベント抽選の当選見込み
  5. 標本サイズと精度のトレードオフ
  6. HYPGEOM.DIST関数との違い・どちらを使うべき?
    1. HYPGEOMDISTからHYPGEOM.DISTへの書き換え
    2. 関連する確率分布関数
  7. よくあるエラーと対処法
    1. #NUM! エラー: 成功数が標本サイズを超えている
    2. #NUM! エラー: 母集団成功数が母集団サイズを超えている
    3. #NUM! エラー: 成功数が母集団成功数を超えている
    4. #NUM! エラー: 標本サイズが母集団サイズを超えている
    5. #VALUE! エラー: 引数に文字列が入っている
    6. 累積確率を求めようとしてエラーになるケース
    7. 引数の意味を取り違えるミス
  8. よくある質問(FAQ)
    1. Q1. HYPGEOMDIST関数とHYPGEOM.DIST関数で、結果が違うことはありますか?
    2. Q2. ExcelのHYPGEOMDIST関数とスプレッドシートのHYPGEOMDIST関数は同じですか?
    3. Q3. 母集団サイズが非常に大きいとき、HYPGEOMDISTとBINOMDISTのどちらを使うべきですか?
    4. Q4. 累積確率(k個以下の確率)はHYPGEOMDISTで求められませんか?
    5. Q5. 引数に小数や負の数を入れるとどうなりますか?
    6. Q6. HYPGEOMDISTの結果が0になるのはどんなときですか?
    7. Q7. ArrayFormulaやMAPと組み合わせて、複数行を一括計算できますか?
  9. まとめ

スプレッドシートのHYPGEOMDIST関数とは

HYPGEOMDIST関数(読み方: ハイパージオムディスト関数)は、超幾何分布(ちょうきかぶんぷ)にもとづいて確率を返す互換関数です。「HYPGEOM」は「Hypergeometric(超幾何)」、「DIST」は「Distribution(分布)」の略です。

超幾何分布とは、非復元抽出にもとづく確率分布のことです。非復元抽出とは、取り出したものを戻さずに次を引く方法です。くじ引きで当たりを引いたら袋に戻さずに次を引く場面をイメージしてください。引くたびに残りの枚数が減るので、毎回の当選確率が変わります。

たとえば次のような場面で使います。

  • 100個の部品から10個を抜き取って不良品を調べる検査
  • 20枚のくじから5枚を引いて当たりが何枚出るかの確率
  • 在庫50個のうち不良品が3個あるとき、8個抜き取って全部良品の確率
  • アンケート回収500件のうち特定回答100件あるとき、ランダムに50件抽出した場合の含有数の確率
  • カードゲームの山札40枚(うち目当てのカード4枚)から手札5枚に1枚以上含まれる確率

NOTE

HYPGEOMDIST関数はHYPGEOM.DIST関数互換関数です。計算結果はHYPGEOM.DISTのFALSE(確率質量)と同じですが、累積確率は求められません。Googleの公式ドキュメントではHYPGEOM.DISTが推奨されています。新しく数式を書くときはHYPGEOM.DISTを使いましょう。

二項分布(BINOMDIST)との違い

超幾何分布とよく対比されるのが二項分布です。両者は「成功・失敗の2値の試行」という点で似ていますが、決定的な違いは次のとおりです。

分布抽出方法試行ごとの成功確率関数
超幾何分布非復元抽出(戻さない)変動するHYPGEOMDIST / HYPGEOM.DIST
二項分布復元抽出(戻す)一定BINOMDIST / BINOM.DIST

母集団のサイズが標本に対してとても大きいときは、超幾何分布と二項分布の差はほぼなくなります。実務的な目安として、標本サイズが母集団の5%以下なら二項分布で代用できると言われています。

HYPGEOMDIST関数の書き方(構文と引数)

基本構文

=HYPGEOMDIST(成功数, 標本サイズ, 母集団成功数, 母集団サイズ)

カッコの中に4つの引数を指定します。HYPGEOM.DIST関数の5番目の引数(cumulative)がない点が大きな違いです。

引数の説明

引数必須/任意説明
成功数(sample_s)必須標本内の成功数(当たりを何個引いたか)
標本サイズ(number_sample)必須標本のサイズ(何個引くか)
母集団成功数(population_s)必須母集団内の成功数(全体の当たりの数)
母集団サイズ(number_pop)必須母集団のサイズ(全体の個数)

引数の並びは「標本→母集団」の流れです。まず「引いた中の当たり数」「何個引いたか」を指定します。次に「全体の当たり数」「全体の個数」を指定します。

TIP

引数に小数を指定すると、小数部分は切り捨てられます。たとえば2.7は2として処理されますよ。

数式の中身(COMBIN関数とのつながり)

HYPGEOMDIST関数が裏で行っている計算は、組合せの考え方(COMBIN関数)にもとづいています。次のような式で表されます。

=COMBIN(母集団成功数, 成功数) * COMBIN(母集団サイズ-母集団成功数, 標本サイズ-成功数) / COMBIN(母集団サイズ, 標本サイズ)

「当たりの中から成功数を引く組合せ」と「ハズレの中から残りを引く組合せ」をかけて、「全体から標本を引く組合せ」で割っているわけです。HYPGEOMDISTはこの計算を1つの式に閉じ込めてくれているので、自分で組合せを書く必要はありません。

たとえば次の2つの式は同じ結果になります。

=HYPGEOMDIST(2, 5, 3, 10)
=COMBIN(3, 2) * COMBIN(7, 3) / COMBIN(10, 5)

どちらも約0.4167です。理屈を知っておくと、エラーが出たときに原因を見極めやすくなりますよ。

HYPGEOM.DISTとの引数比較

HYPGEOMDIST関数とHYPGEOM.DIST関数の引数を並べて比較してみましょう。

引数の位置HYPGEOMDISTHYPGEOM.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%)になりますよ。

セル参照で値を変えて試す

引数を直接書くよりも、セル参照を使うほうが実務的です。次のように表を組むと、母集団サイズや成功数を変えるだけで再計算できます。

セル内容
A2成功数2
B2標本サイズ5
C2母集団成功数3
D2母集団サイズ10
E2確率=HYPGEOMDIST(A2, B2, C2, D2)

D2を10から20に変えれば、母集団サイズが増えたときの確率変化を観察できます。シミュレーションが手早くできて便利ですよ。

品質検査での活用例

品質管理の現場でも活用できます。100個の部品のうち不良品が5個あるロットから、10個を抜き取り検査する場面を考えましょう。

不良品が1個も含まれない確率を求めます。

=HYPGEOMDIST(0, 10, 5, 100)

結果は約0.5838(58.4%) です。不良品率5%のロットでも、10個の抜き取りでは約58%の確率で不良品がゼロになります。検査の精度を見積もるときに使えますよ。

逆に「抜き取り検査で不良品を1個でも検出できる確率」は、次のように余事象で計算します。

=1 - HYPGEOMDIST(0, 10, 5, 100)

結果は約0.4162(41.6%) です。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の大きなメリットです。

実務シナリオ別のHYPGEOMDIST活用

シナリオ1: 抜き取り検査の合格基準を作る

「100個のロットから20個抜いて、不良品が2個以下なら合格」というルールがあったとします。実際の不良率が10%のとき、このロットが合格になる確率はいくつでしょうか。

母集団サイズ100、母集団成功数(不良品数)10、標本サイズ20として、成功数0、1、2の合計を求めます。

=HYPGEOMDIST(0, 20, 10, 100) + HYPGEOMDIST(1, 20, 10, 100) + HYPGEOMDIST(2, 20, 10, 100)

結果は約0.6695(67.0%) です。不良率10%のロットでも、67%の確率で合格と判定されてしまうとわかります。検査基準が緩いことが数字で見える化されますね。基準を厳しくすべきか、サンプル数を増やすべきかの議論につながります。

シナリオ2: アンケートのサンプル代表性をチェック

500件のアンケートを回収して、そのうち100件が特定の回答(たとえば「商品Aを購入したい」)だったとします。ランダムに50件を抽出して詳細分析したとき、抽出した50件に「商品Aを購入したい」が15件以上含まれる確率を求めます。

=1 - (HYPGEOMDIST(0, 50, 100, 500) + HYPGEOMDIST(1, 50, 100, 500) + ... + HYPGEOMDIST(14, 50, 100, 500))

ただし15個分を足すのは大変なので、ここは累積確率に対応したHYPGEOM.DIST関数を使うほうが圧倒的に楽です。

=1 - HYPGEOM.DIST(14, 50, 100, 500, TRUE)

このように「個数が多くなる累積計算」は、HYPGEOM.DISTに乗り換える典型的なケースです。

シナリオ3: イベント抽選の当選見込み

社内イベントで30人の社員から3人を抽選し、3人とも営業部(営業部の人数は12人)に当たる確率を求めてみます。

=HYPGEOMDIST(3, 3, 12, 30)

結果は約0.0542(5.4%) です。営業部の割合が4割なのに、3人連続で当たる確率は5%程度しかありません。抽選結果が偏っていないかの目安にもなります。

標本サイズと精度のトレードオフ

抜き取り検査やサンプル調査では、「どのくらい抜けば信頼できるか」が永遠のテーマです。HYPGEOMDIST関数を使えば、標本サイズを変えながら検出力を確認できます。

たとえば「100個中5個が不良品のロット」から不良品を1個以上検出する確率を、標本サイズ別に求めてみましょう。

=1 - HYPGEOMDIST(0, 5, 5, 100)    ← 5個抜き取り
=1 - HYPGEOMDIST(0, 10, 5, 100)   ← 10個抜き取り
=1 - HYPGEOMDIST(0, 20, 5, 100)   ← 20個抜き取り
=1 - HYPGEOMDIST(0, 30, 5, 100)   ← 30個抜き取り
標本サイズ不良品1個以上を検出できる確率
5個約23.0%
10個約41.6%
20個約68.0%
30個約82.7%

標本サイズを増やすほど検出力は上がりますが、検査コストもかさみます。許容できる見逃しリスクと相談しながら標本サイズを決める、その判断材料になりますよ。

HYPGEOM.DIST関数との違い・どちらを使うべき?

HYPGEOMDIST関数とHYPGEOM.DIST関数の関係を整理しましょう。

項目HYPGEOMDISTHYPGEOM.DIST
種類互換関数(旧バージョン)現行関数(推奨)
引数の数4つ5つ
累積確率非対応TRUE/FALSEで選択可能
確率質量の計算結果同じ同じ(FALSEを指定)
Googleの推奨非推奨推奨

結論としては、新しく数式を書くときはHYPGEOM.DISTを使いましょう。理由は次の3つです。

  1. Googleの公式ドキュメントでHYPGEOM.DISTが推奨されている
  2. 累積確率(TRUE)を使えるため、「k個以下」の確率を1つの数式で求められる
  3. 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 / HYPGEOM.DIST非復元抽出(袋から戻さず引く)
BINOMDIST / BINOM.DIST復元抽出・独立試行(コイン投げなど)
NEGBINOMDIST成功数が決まるまでの失敗回数の分布
POISSON関数単位時間あたりの発生回数(コールセンター入電数など)
PROB関数任意の確率分布から区間確率を求める

母集団が有限で、なおかつ抜き出した個体を戻さない場面では超幾何分布(HYPGEOMDIST)が正解です。

よくあるエラーと対処法

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! エラー

#NUM! エラー: 標本サイズが母集団サイズを超えている

10個しかない母集団から15個引くことはできません。

=HYPGEOMDIST(2, 15, 3, 10)   ← #NUM! エラー

母集団サイズより大きな標本を指定していないか確認しましょう。

#VALUE! エラー: 引数に文字列が入っている

数値であるべき引数にテキストが入ると#VALUE!エラーです。セル参照を使うときは、参照先が数値であることを確認しましょう。

累積確率を求めようとしてエラーになるケース

HYPGEOMDIST関数にはcumulative引数がありません。5番目の引数を指定するとエラーになります。累積確率が必要な場合はHYPGEOM.DIST関数を使ってくださいね。

引数の意味を取り違えるミス

HYPGEOMDISTの引数順は「成功数 → 標本サイズ → 母集団成功数 → 母集団サイズ」です。「全体 → 一部」の順ではなく「一部 → 全体」の順なので、感覚と逆かもしれません。「自分が手元で見るもの(標本)」を先に書く、と覚えるとミスを減らせますよ。

よくある質問(FAQ)

Q1. HYPGEOMDIST関数とHYPGEOM.DIST関数で、結果が違うことはありますか?

A. HYPGEOM.DISTの5番目の引数にFALSEを指定する限り、計算結果は完全に一致します。違いが出るとしたらHYPGEOM.DISTでTRUEを指定して累積確率を取った場合だけです。HYPGEOMDISTは常に確率質量(ちょうどk個の確率)しか返さないので、累積を取りたい場合は数式の構造を変える必要があります。

Q2. ExcelのHYPGEOMDIST関数とスプレッドシートのHYPGEOMDIST関数は同じですか?

A. 引数の構文も計算結果も同じです。Excel 2010以降ではHYPGEOM.DISTが標準関数となり、HYPGEOMDISTは互換関数として残されています。スプレッドシートでもこの仕様にあわせており、どちらの環境でも同じ式が動きます。

Q3. 母集団サイズが非常に大きいとき、HYPGEOMDISTとBINOMDISTのどちらを使うべきですか?

A. 標本サイズが母集団サイズの5%以下なら、BINOMDIST関数で代用してもほぼ同じ結果になります。母集団が100万のように非常に大きい場合は、計算負荷が軽い二項分布で十分なケースが多いです。ただし母集団が小さい(数十から数百)場面ではHYPGEOMDIST(またはHYPGEOM.DIST)のほうが正確です。

Q4. 累積確率(k個以下の確率)はHYPGEOMDISTで求められませんか?

A. 求められません。HYPGEOMDISTは確率質量関数(PMF)専用です。累積確率関数(CDF)が必要な場合はHYPGEOM.DIST関数の5番目の引数にTRUEを指定してください。あるいは、HYPGEOMDISTを足し合わせて自前で累積を作るしかありませんが、計算量が増えるのでおすすめしません。

Q5. 引数に小数や負の数を入れるとどうなりますか?

A. 小数を入れると小数点以下が切り捨てられます(2.7は2として処理)。負の数を入れると#NUM!エラーになります。HYPGEOMDISTは「個数」を扱う関数なので、引数はすべて0以上の整数(または整数として解釈される値)でなければなりません。

Q6. HYPGEOMDISTの結果が0になるのはどんなときですか?

A. 物理的にありえない組合せを指定したときに0が返ることがあります。たとえば「全体100個のうち当たりが0個のとき、当たりを1個引く確率」は当然ゼロです。式が動いているのに結果が0なら、引数の値が現実的かを再確認しましょう。

Q7. ArrayFormulaやMAPと組み合わせて、複数行を一括計算できますか?

A. 可能です。範囲を指定して=ArrayFormula(HYPGEOMDIST(A2:A10, B2:B10, C2:C10, D2:D10))のように書けば一気に計算できます。シミュレーション表を作るときに便利ですよ。最新のスプレッドシートではMAP関数やBYROW関数を使う方法もあります。

まとめ

HYPGEOMDIST関数は、超幾何分布(非復元抽出の確率分布)にもとづいて確率を求める互換関数です。

  • HYPGEOM.DIST関数の旧バージョンで、確率質量の計算結果は完全に同じ
  • 引数は4つで、HYPGEOM.DISTの5番目のcumulative引数がない
  • 常に確率質量(「ちょうどk個当たる確率」)のみを返す
  • 累積確率(「k個以下の確率」)が必要ならHYPGEOM.DISTを使おう
  • 新しく数式を書くときはHYPGEOM.DISTがおすすめ
  • 既存のHYPGEOMDIST数式はそのまま動くので、急いで書き換えなくてOK
  • 計算はCOMBIN関数による組合せの比で表現できる
  • 標本サイズが母集団の5%以下ならBINOMDIST関数で代用できる
  • 成功数 > 標本サイズなどの矛盾した値を指定すると#NUM!エラー
  • ほかの互換関数(BINOMDIST関数POISSON関数NEGBINOMDIST関数など)も同様に現行関数への移行が推奨されている

HYPGEOMDISTとHYPGEOM.DISTで迷ったら、HYPGEOM.DISTを選んでおけば間違いありません。既存ファイルのHYPGEOMDISTも問題なく動くので、安心してくださいね。抜き取り検査やサンプル抽出の現場で、母集団が有限な確率を計算したいときに頼れる関数です。

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