「このデータの中で、売上が100万〜200万円に収まる確率ってどれくらいだろう?」
こんなふうに、データの分布から特定の範囲に入る確率を知りたい場面はありませんか。手作業で計算するのは面倒ですよね。
ExcelのPROB関数を使えば、データと確率の組み合わせから、指定した範囲に収まる確率をサッと求められますよ。この記事では基本的な書き方から、品質管理・在庫分析・試験合格率といった実務での活用例、COUNTIFやFREQUENCYと組み合わせて確率表を自動で作る方法まで、まとめて解説します。
ExcelのPROB関数とは?
PROB関数は「プロバビリティ」と読みます。英語の「Probability(確率)」が語源です。
この関数は、数値データとそれぞれの出現確率をもとに、指定した範囲の値が出現する確率を計算します。たとえば「テスト結果が60〜80点になる確率は何%か」といった計算ができます。
入力するのは「数値の一覧」「各数値の確率」「下限値」「上限値」の4つです。出力は0〜1の確率値で返ってきます。0.35なら35%という意味ですね。
PROB関数はExcel 2010以降およびMicrosoft 365で使えます。なお、Googleスプレッドシートには対応していません。スプレッドシートで同じ計算をしたい場合は、SUMPRODUCT関数で代用することになります。
PROB関数の書き方(構文と引数)
基本構文
=PROB(x範囲, 確率範囲, 下限, [上限])
引数の説明
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| x範囲 | 必須 | 確率に対応する数値データのセル範囲 |
| 確率範囲 | 必須 | 各数値に対応する確率の値(0以上1以下) |
| 下限 | 必須 | 確率を求めたい範囲の下限値 |
| 上限 | 省略可 | 確率を求めたい範囲の上限値 |
ポイントは2つあります。
1つ目は、x範囲と確率範囲のセル数は必ず同じにすることです。対応関係がズレると#N/Aエラーになります。
2つ目は、確率範囲の合計値が1(つまり100%)になる必要があることです。合計が1でない場合は#NUM!エラーが返ります。
上限を省略した場合は、下限の値とぴったり一致するデータの確率だけが返りますよ。
PROB関数の基本的な使い方
ここでは、商品の売上個数と出現確率のデータを使って説明します。
たとえば以下のようなデータがあるとしましょう。
| セル | A列(売上個数) | B列(確率) |
|---|---|---|
| 2行目 | 10 | 0.10 |
| 3行目 | 20 | 0.20 |
| 4行目 | 30 | 0.30 |
| 5行目 | 40 | 0.25 |
| 6行目 | 50 | 0.15 |
確率の合計は0.10+0.20+0.30+0.25+0.15=1.00で、ちゃんと100%になっていますね。
特定の値に一致する確率を求める
売上個数がちょうど30個になる確率を求めるには、上限を省略して次のように入力します。
=PROB(A2:A6, B2:B6, 30)
結果は 0.30(30%)です。30個に対応する確率がそのまま返ります。
範囲内に収まる確率を求める
売上個数が20〜40個の範囲に収まる確率を求めるには、下限と上限を指定します。
=PROB(A2:A6, B2:B6, 20, 40)
結果は 0.75(75%)です。20個の確率0.20、30個の確率0.30、40個の確率0.25を合計した値になります。
このように、PROB関数は下限以上かつ上限以下に該当するデータの確率を合算してくれますよ。
下限・上限の境界の扱い
PROB関数は下限と上限の両端を含む「以上・以下」で判定します。つまり上の例で下限20・上限40と指定した場合、20と40もカウント対象です。「20より大きく、40未満」のように境界を除外したい場合は、実データの値を見て下限・上限を少しずらす(たとえば21と39にする)などの工夫が必要になります。
PROB関数の実践的な使い方・応用例
ここからは実際の業務でどう使うかを、3つのシーン別に見ていきます。
品質管理での不良率の計算
製造ラインで計測した製品サイズと、その出現確率のデータがあるとします。
| セル | A列(サイズmm) | B列(確率) |
|---|---|---|
| 2行目 | 9.5 | 0.05 |
| 3行目 | 9.8 | 0.15 |
| 4行目 | 10.0 | 0.40 |
| 5行目 | 10.2 | 0.25 |
| 6行目 | 10.5 | 0.10 |
| 7行目 | 11.0 | 0.05 |
規格範囲が9.8〜10.2mmだとして、規格内の確率を求めてみましょう。
=PROB(A2:A7, B2:B7, 9.8, 10.2)
結果は 0.80(80%)です。つまり規格外の不良率は20%と分かります。このまま「1 – PROB(…)」と書けば不良率だけをダイレクトに求めることもできますよ。
=1 - PROB(A2:A7, B2:B7, 9.8, 10.2)
品質管理では「上限規格外」「下限規格外」を分けて把握したいこともあります。その場合は下限より小さい側、上限より大きい側それぞれにPROB関数を当てれば内訳が出せます。
在庫分析・需要予測での欠品リスク
日ごとの出荷数量と、その出現確率のデータを使って「在庫50個で1日持ちこたえられる確率」を求めたい、というケースです。
| セル | A列(出荷数量) | B列(確率) |
|---|---|---|
| 2行目 | 10 | 0.10 |
| 3行目 | 20 | 0.25 |
| 4行目 | 30 | 0.30 |
| 5行目 | 40 | 0.20 |
| 6行目 | 50 | 0.10 |
| 7行目 | 60 | 0.05 |
在庫50個でまかなえる確率は「出荷が50個以下の確率」なので、下限をデータの最小値10、上限を50にします。
=PROB(A2:A7, B2:B7, 10, 50)
結果は 0.95(95%)です。欠品リスクは残り5%と読み取れますね。在庫水準を変えたときのリスク変化をシミュレーションするのに便利です。
試験合格率・スコア分布の評価
社内検定や模擬試験の点数分布から、合格点以上を取る受験者の割合を出す使い方です。
| セル | A列(得点) | B列(確率) |
|---|---|---|
| 2行目 | 40 | 0.05 |
| 3行目 | 50 | 0.10 |
| 4行目 | 60 | 0.20 |
| 5行目 | 70 | 0.30 |
| 6行目 | 80 | 0.20 |
| 7行目 | 90 | 0.10 |
| 8行目 | 100 | 0.05 |
合格ラインを70点とした場合の合格率は、次の式で求まります。
=PROB(A2:A8, B2:B8, 70, 100)
結果は 0.65(65%)。合格ラインを80点に上げるとどうなるかも、上限と下限を変えるだけで即座に確認できますよ。
COUNTIF・FREQUENCYと組み合わせて確率表を自動生成する
実務では「各値の確率」があらかじめ用意されていることは少なく、生データから確率を求めるところからスタートします。そこで便利なのがCOUNTIF関数やFREQUENCY関数との組み合わせです。
COUNTIFで個別値の確率を作る
たとえば D列に100件分の売上個数の生データが並んでいるとします。A列に個別の値(10, 20, 30, 40, 50)を並べ、B列に確率を入れたい場合、次のように書きます。
=COUNTIF($D$2:$D$101, A2) / COUNT($D$2:$D$101)
これをB2からB6までコピーすれば、各値の出現確率が自動計算されます。あとはそのB列をPROB関数の確率範囲として指定すれば完成です。
FREQUENCYで階級(ビン)ごとの確率を作る
売上金額のように連続値を扱うときは、FREQUENCY関数で階級に分けてから確率に変換します。
- A列に階級の上限値(たとえば100, 200, 300, 400, 500)を入力
- B列にFREQUENCYで度数を取得
- C列に
=B2/SUM($B$2:$B$6)で確率に変換 - PROB関数の x範囲 = A列、確率範囲 = C列 として使う
この流れで、生データから「○○円〜○○円の範囲に収まる確率」を計算する仕組みが一発で作れますよ。
SUMPRODUCTとの使い分け
確率の合計値を手動で計算するなら、SUMPRODUCT関数を条件付きで使う方法もあります。たとえば次のような式です。
=SUMPRODUCT((A2:A6>=20)*(A2:A6<=40)*B2:B6)
結果はPROB関数と同じになりますが、PROB関数のほうが意図が伝わりやすく式も短く済みます。確率データが整っている場面ではPROB関数、より複雑な条件を入れたい場面ではSUMPRODUCT関数、と使い分けるのがおすすめです。
PROB関数のよくあるエラーと対処法
PROB関数でよく見かけるエラーは3種類あります。それぞれの原因と対処法をまとめました。
#NUM!エラー
最も多いエラーです。次の3つの原因が考えられます。
- 確率範囲に0未満または1超の値がある: 確率は0以上1以下でないといけません。セルの値を確認して修正しましょう。
- 確率範囲の合計が1にならない: すべての確率の合計がちょうど1.00になっているか確認してください。SUM関数で合計を検算するのがおすすめです。
- 下限が上限より大きい: 引数の下限と上限の順番が逆になっていないか見直してみましょう。
確率の合計が1にならない原因としてよくあるのが、小数点以下の丸め誤差です。COUNTIF÷COUNTで確率を自動計算した場合でも、表示桁を丸めていると目視では1でも実際は0.999999…になっていることがあります。そんなときはSUM(確率範囲)の結果を確認し、末尾のセルで差分を調整するか、確率を「度数/合計度数」のまま数式で保持しておくと誤差を避けられますよ。
#VALUE!エラー
引数に数値以外の文字列が含まれている場合に発生します。x範囲や確率範囲に空白セルや文字が混じっていないかチェックしてみてください。
生データからCOUNTIFなどで確率を作った際、データの中に「N/A」「-」といった文字列が紛れていると起きやすいエラーです。生データ側をクレンジングしてから確率を作り直しましょう。
#N/Aエラー
x範囲と確率範囲のセル数が一致していない場合に発生します。たとえばx範囲がA2:A6の5セルなのに、確率範囲がB2:B5の4セルだとエラーになります。範囲の行数を揃えれば解決しますよ。
PROB関数と似た関数との違い
確率や分布を扱うExcel関数は他にもあります。目的に応じて使い分けましょう。
| 関数名 | 用途 | 特徴 |
|---|---|---|
| PROB | 離散データの確率計算 | 実データと確率の組み合わせから範囲内の確率を求める |
| POISSON.DIST | ポアソン分布の確率 | 一定期間内のイベント発生回数の確率を求める |
| CRITBINOM | 二項分布の累積確率の逆関数 | 「確率がX%を超える最小の成功回数」を求める |
| FREQUENCY | 階級ごとの度数カウント | 生データからヒストグラムの元データを作る |
PROB関数は実際に観測したデータに確率を割り当てて使います。一方、POISSON.DISTやCRITBINOMは理論的な確率分布に基づく関数です。ポアソン分布や二項分布など、数学的なモデルから確率を計算します。
「手元に確率データがある」ならPROB関数を選びましょう。「理論的な分布から求めたい」なら分布関数のほうが適していますよ。データのばらつき自体を把握したい場合はSTDEV.S関数やVAR.S関数などの散布関数と組み合わせると、分析に厚みが出ます。
まとめ
ExcelのPROB関数は、数値データとその確率をもとに、指定範囲に収まる確率を計算する関数です。
この記事のポイントをおさらいしておきましょう。
- 構文は
=PROB(x範囲, 確率範囲, 下限, [上限]) - 確率範囲の合計は必ず1にする(小数誤差に注意)
- 上限を省略すると、下限と一致する値の確率だけ返る
- 下限・上限は両端を含む「以上・以下」で判定される
- 品質管理の規格内率、在庫の欠品リスク、試験の合格率など用途は幅広い
- COUNTIFやFREQUENCYと組み合わせれば、生データからそのまま確率表が作れる
- #NUM!エラーは確率の範囲外や合計不一致が原因
- 理論分布にはPOISSON.DISTやCRITBINOMを使い分ける
品質管理や売上分析、受験者のスコア評価など、データから確率を読み取りたい場面で活用してみてください。一度テンプレート化してしまえば、数値を差し替えるだけで日々の意思決定に使える強力な武器になりますよ。
