スプレッドシートのPROB関数の使い方|確率計算

スポンサーリンク

「この商品が売れる確率ってどのくらいだろう?」。過去のデータから確率を計算したいとき、手作業では面倒ですよね。

それぞれの値に確率が割り当てられたデータがあっても、特定の範囲に収まる確率をいちいち手計算するのは大変です。

そんなときに使えるのがPROB関数です。この記事ではGoogleスプレッドシートでのPROB関数の使い方を、基本構文から実務活用まで解説します。よくあるエラーの対処法や、似た関数との使い分けもあわせて紹介しますよ。

PROB関数とは

PROB関数(読み方: プロバビリティ関数)は、指定した値の範囲に対応する確率の合計を返す関数です。「PROB」は「Probability(確率)」の略です。

たとえば「サイコロの目が3以上5以下になる確率は?」のような計算を、数式1つで求められます。

PROB関数にできることをまとめると、次のとおりです。

  • 特定の値に一致する確率を求める
  • 指定した範囲(下限~上限)に収まる確率を合計する
  • 過去の実績データから将来の発生確率を推定する
  • 品質管理で規格内に収まる製品の割合を計算する

NOTE

PROB関数はGoogleスプレッドシートの全バージョンで使えます。Excelにも同名の関数があり、動作は同じです。

PROB関数の基本構文と引数

=PROB(データ, 確率範囲, 下限, [上限])

カッコの中に4つの引数を指定します。

引数必須/任意説明
データ(x_range)必須確率と対応する数値の範囲
確率範囲(prob_range)必須データに対応する各確率の範囲
下限(lower_limit)必須確率を求めたい範囲の下限値
上限(upper_limit)任意確率を求めたい範囲の上限値

TIP

上限を省略すると、データが下限の値とちょうど一致する確率を返します。範囲ではなくピンポイントの確率を知りたいときは、上限なしで使いましょう。

確率範囲のルール

確率範囲に指定する値には2つの条件があります。

  • 各確率は0以上1以下の数値であること
  • 確率の合計がちょうど1(100%)になること

この条件を満たさないと#NUM!エラーが返ります。確率データを準備するときは、SUM関数で合計が1になっているか確認しておくと安心ですよ。

=SUM(B2:B7)  ← この結果が1であればOK

PROB関数の基本的な使い方

サイコロを例に、PROB関数の基本操作を見ていきましょう。

A列にサイコロの目(1~6)、B列にそれぞれの確率(すべて1/6 = 約0.1667)が入っているとします。

A列(目)B列(確率)
10.1667
20.1667
30.1667
40.1667
50.1667
60.1667

特定の値に一致する確率を求める

「サイコロの目が3になる確率」を求めるには、上限を省略して次のように書きます。

=PROB(A2:A7, B2:B7, 3)

結果は約0.1667(16.7%) です。下限のみを指定しているので、データの中で3にちょうど一致する確率が返ります。

範囲内に収まる確率を求める

「サイコロの目が2以上4以下になる確率」を求めるには、下限と上限の両方を指定します。

=PROB(A2:A7, B2:B7, 2, 4)

結果は約0.5(50%) です。目が2・3・4になる確率(0.1667 x 3)の合計が返ります。

1以上6以下(全範囲)の確率

=PROB(A2:A7, B2:B7, 1, 6)

結果は1(100%) です。すべての目をカバーしているので、確率の合計がそのまま返りますね。

PROB関数の実務活用パターン

基本がわかったところで、実際の業務で使えるパターンを紹介します。

売上予測で特定の売上金額になる確率を求める

過去の売上データから、各売上レンジの発生確率を計算済みだとします。

A列(売上万円)B列(発生確率)
1000.10
2000.20
3000.35
4000.25
5000.10

「売上が200万円以上400万円以下になる確率」を求めてみましょう。

=PROB(A2:A6, B2:B6, 200, 400)

結果は0.80(80%) です。200万円・300万円・400万円の確率を合計した値が返ります。

予算計画の根拠として「売上200~400万円の達成確率は80%」と示せるので、報告資料に説得力が生まれますよ。

品質管理で規格内に収まる製品の割合を計算する

検査データから各重量カテゴリの出現確率がわかっている場合、規格範囲内の確率を一発で求められます。

A列(重量g)B列(出現確率)
950.05
960.08
970.12
980.20
990.25
1000.15
1010.10
1020.05

規格が97g以上101g以下のとき、次のように書きます。

=PROB(A2:A9, B2:B9, 97, 101)

結果は0.82(82%) です。規格内に収まる製品が82%だとわかります。

規格外の割合を求めたいときは、1から引けばOKです。

=1 - PROB(A2:A9, B2:B9, 97, 101)

結果は0.18(18%) です。不良率として報告書に記載できますね。

COUNTIFと組み合わせて確率テーブルを自動生成する

実務では確率データが最初から用意されていないことも多いですよね。そんなときはCOUNTIF関数を使って、元データから確率テーブルを自動生成できます。

たとえばC列に商品の評価スコア(1~5)が100件入っているとします。

ステップ1: 各スコアの出現回数をCOUNTIFで数える

=COUNTIF(C2:C101, A2)

ステップ2: 出現回数をデータ件数で割って確率に変換する

=COUNTIF(C2:C101, A2) / COUNT(C2:C101)

ステップ3: 完成した確率テーブルにPROB関数を適用する

=PROB(A2:A6, B2:B6, 3, 5)

この手順で「評価スコアが3以上5以下になる確率」を求められます。元データが変われば確率も自動で更新されるので、手動計算よりもずっと効率的ですよ。

よくあるエラーと対処法

PROB関数でつまずきやすいポイントをまとめました。

エラー原因対処法
#NUM!確率範囲に0未満または1超の値がある各確率が0以上1以下か確認する
#NUM!確率範囲の合計が1にならないSUM関数で合計を確認し、1に調整する
#N/Aデータと確率範囲のサイズが異なる両方の範囲が同じ行数・列数か確認する
#VALUE!引数に文字列が含まれている数値以外のセルが混ざっていないか確認する

確率の合計が1にならないときの調整テクニック

データから計算した確率は、丸め誤差で合計がぴったり1にならないことがあります。そんなときは、最後の確率を次の式で調整しましょう。

=1 - SUM(B2:B6)  ← 残りの確率を最後のセルに入れる

こうすれば合計がちょうど1になり、#NUM!エラーを防げますよ。

PROB関数と似た関数との使い分け

Googleスプレッドシートには確率を扱う関数がいくつかあります。それぞれの違いを整理しておきましょう。

関数用途データの種類
PROB離散データの確率テーブルから確率を合計する離散データ(サイコロの目、評価スコアなど)
NORM.DIST正規分布にもとづいて確率を求める連続データ(テスト点数、製品重量など)
POISSON.DISTポアソン分布にもとづいて確率を求める一定期間のイベント発生回数
BINOM.DIST二項分布にもとづいて確率を求める成功/失敗の試行回数

使い分けのポイントはこうです。

  • 確率テーブルが手元にある → PROB関数
  • データが正規分布に従う前提でOKNORM.DIST関数
  • 「1時間に何件発生するか」のようなカウントデータ → POISSON.DIST関数
  • 「10回中何回成功するか」のような二者択一 → BINOM.DIST関数

PROB関数は自前の確率テーブルを使う唯一の関数です。理論的な分布モデルに当てはめにくいデータでも、実績ベースで確率を計算できるのが強みですよ。

まとめ

PROB関数は、データに対応する確率テーブルから特定の範囲の確率を合計する関数です。

  • 上限を省略すると、下限の値にちょうど一致する確率を返す
  • 下限と上限を両方指定すると、その範囲に収まる確率の合計を返す
  • 確率範囲は各値が0以上1以下で、合計が1になる必要がある
  • COUNTIF関数と組み合わせれば、元データから確率テーブルを自動生成できる
  • 連続データの確率計算にはNORM.DIST関数が向いている
  • エラーが出たら、まず確率範囲の合計が1かどうかをSUM関数で確認しよう

「このデータが特定の範囲に収まる確率は?」をサッと答えられるようになると、データ分析や報告資料の説得力がぐっと上がります。ぜひ実際のデータで試してみてくださいね。

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