「このデータ全体を見て、売上と広告費は本当に連動しているのかな?」。全社員のテスト結果や全店舗の売上データなど、母集団すべてのデータが手元にあるとき、2つの項目の関係性を数値で確認したいことがありますよね。
平均値だけでは、データが同じ方向に動いているのか逆方向なのかが見えません。母集団全体の関係性を正確に把握するには、共分散という指標が必要です。
そんなときに使うのがExcelの COVARIANCE.P関数 です。この記事では基本の書き方から実務での活用例まで解説します。COVARIANCE.S関数(標本共分散)との違いや、CORREL関数との使い分けもあわせて整理しました。
COVARIANCE.P関数とは?
COVARIANCE.P関数は、2つのデータセットの 母共分散(ぼ きょうぶんさん) を求める関数です。読み方は「コバリアンス ピー」です。
共分散とは
共分散は、2つのデータが「一緒に動く傾向があるかどうか」を数値にしたものです。
- 正の値 → 一方が増えると、もう一方も増える傾向(例: 広告費と売上)
- 負の値 → 一方が増えると、もう一方は減る傾向(例: 気温とホットドリンク売上)
- 0に近い → 2つのデータに目立った関係がない
「母集団」の共分散とは
COVARIANCE.P関数の末尾の「P」は Population(母集団) を意味します。手元のデータが「対象のすべて」であるときに使う関数です。
計算式ではデータの偏差積の合計をデータ数 n でそのまま割ります。一部のサンプルから全体を推定する場合は、n-1で割って補正するCOVARIANCE.S関数を使います。
「このデータは全数か、サンプルか」で使い分けてください。
COVARIANCE.P関数の基本的な書き方
基本構文
=COVARIANCE.P(配列1, 配列2)
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 配列1 | 必須 | 数値データが入っているセル範囲(1つ目のデータ) |
| 配列2 | 必須 | 数値データが入っているセル範囲(2つ目のデータ) |
引数はどちらも必須です。2つの範囲に含まれるデータの個数は同じにしてください。個数が違うと#N/Aエラーになります。
空白セルや文字列、論理値(TRUE/FALSE)が含まれている場合は自動で無視されます。数値の0は計算対象になります。
NOTE
COVARIANCE.P関数はExcel 2010以降で使えます。Excel 2007以前を使っている場合は互換性関数のCOVAR関数を使ってください。計算結果は同じです。
COVARIANCE.P関数の使い方(実践例)
サンプルデータ
ある会社の全5店舗について、広告費と売上のデータがすべて揃っているとします。全店舗分なので「母集団」です。
| A列(広告費・万円) | B列(売上・万円) | |
|---|---|---|
| 東京店 | 30 | 300 |
| 大阪店 | 20 | 220 |
| 名古屋店 | 15 | 180 |
| 福岡店 | 25 | 260 |
| 札幌店 | 10 | 140 |
A2:A6に広告費、B2:B6に売上が入っているとします。
=COVARIANCE.P(A2:A6, B2:B6)
結果は 400 という正の値が返ります。正の値なので「広告費が多い店舗ほど売上も高い傾向がある」と読み取れますね。
NOTE
同じデータでCOVARIANCE.S関数を使うと500になります。COVARIANCE.Sのほうが値が大きいのは、n-1で割る補正が入っているためです。
結果の読み取り方
共分散の結果はデータの単位に依存します。今回は「万円 x 万円」の単位です。そのため、数値の大小だけで関係の強さを比べることは難しいです。
「正か負か」で方向性を確認するのが基本的な使い方です。関係の強さまで知りたい場合はCORREL関数を使うと便利ですよ。相関係数に変換すれば、-1から1の範囲で統一的に比較できます。
COVARIANCE.P関数の実務活用
活用例1: 全社員の残業時間とミス件数の関係を調べる
全社員20名の月間残業時間とミス件数のデータが揃っているケースです。全社員分なのでCOVARIANCE.Pが適切です。
=COVARIANCE.P(A2:A21, B2:B21)
結果が正なら「残業が多い社員ほどミスも多い傾向がある」と読めます。業務改善やリソース配分の根拠として活用できますよ。
活用例2: CORREL関数と組み合わせて関係の強さも確認する
共分散で方向性を確認したら、CORREL関数で強さも数値化しましょう。
=COVARIANCE.P(A2:A6, B2:B6) → 方向性(正/負)を確認
=CORREL(A2:A6, B2:B6) → 強さ(-1〜1)を確認
| 相関係数の目安 | 関係の強さ |
|---|---|
| 0.7〜1.0 | 強い正の相関 |
| 0.4〜0.7 | 中程度の正の相関 |
| 0.0〜0.4 | 弱い正の相関 |
| 負の値 | 上記を逆方向に読み替え |
共分散で「正の関係がある」と分かり、相関係数が0.9なら「かなり強く連動している」と判断できます。
活用例3: 手計算で母共分散を検算する
COVARIANCE.P関数の結果を手計算で確かめたい場合は、次の数式で同じ結果を再現できます。
=SUMPRODUCT((A2:A6-AVERAGE(A2:A6))*(B2:B6-AVERAGE(B2:B6)))/COUNT(A2:A6)
「各データから平均を引いた値同士を掛け、合計をデータ数で割る」という流れです。COVARIANCE.P関数を使えばこの計算を1つの関数で完了できるわけですね。
COVARIANCE.SやCORRELとの違い・使い分け
共分散関数の比較表
| 関数 | 計算方法 | 用途 | 使用場面 |
|---|---|---|---|
| COVARIANCE.P | nで除算 | 母共分散 | 全データが揃っている場合 |
| COVARIANCE.S | n-1で除算 | 標本共分散 | サンプルデータから全体を推定 |
| COVAR | nで除算 | 母共分散(互換性関数) | COVARIANCE.Pと同じ計算 |
使い分けの判断基準
迷ったときは以下のフローで判断してみてください。
- 全データが手元にある? → Yes: COVARIANCE.P / No: COVARIANCE.S
- 関係の強さも知りたい? → CORREL関数を併用
全社員の評価データや全店舗の売上データなど、母集団すべてが揃っているならCOVARIANCE.Pを使いましょう。アンケート調査や一部店舗のサンプルデータを分析するならCOVARIANCE.S関数が統計的に適切です。
CORREL関数との違い
CORREL関数は共分散を標準偏差で割って -1〜1に正規化 した相関係数を返します。共分散は単位に依存しますが、相関係数は単位に依存しません。
- 共分散(COVARIANCE.P): 2つのデータが同方向か逆方向かを判定
- 相関係数(CORREL): 関係の「強さ」まで数値化
「方向だけ知りたい」ならCOVARIANCE.P、「強さも知りたい」ならCORRELを使うと覚えておくとよいですよ。
よくあるエラーと対処法
エラー一覧
| エラー | 原因 | 対処法 |
|---|---|---|
| #N/A | 配列1と配列2のデータ数が異なる | 2つの範囲の行数を揃える |
| #DIV/0! | 有効な数値データが0個 | 数値データが1個以上あるか確認する |
| #VALUE! | 引数にセル範囲以外の不正な値を指定 | セル範囲の指定を見直す |
NOTE
COVARIANCE.S関数は#DIV/0!の発生条件が「1個以下」ですが、COVARIANCE.Pは「0個」の場合にエラーになります。nで割るかn-1で割るかの違いによるものです。
結果が0になるケース
2つのデータに関連性がまったくない場合、共分散は0に近い値になります。また、片方のデータがすべて同じ値だと計算上0になります。0はエラーではなく「関係がない」という正しい結果です。
文字列や空白が含まれるとき
COVARIANCE.P関数は文字列・論理値・空白セルを自動で無視します。ただし、片方の配列で無視されたセルに対応するもう片方の値も除外されます。想定外のデータ数ずれが起きていないか確認しましょう。
まとめ
この記事では、COVARIANCE.P関数の使い方を解説しました。
- COVARIANCE.P関数は母集団全体の 母共分散 を求める関数
- 結果が正なら同方向、負なら逆方向の関係がある
- COVARIANCE.Pは母共分散(全数データ用)、COVARIANCE.Sは標本共分散(サンプル用)
- 関係の強さを知りたいときはCORREL関数を併用する
