「広告費と売上の共分散を出したいけど、COVAR関数とCOVARIANCE.P関数って何が違うの?」
共分散を求める関数がスプレッドシートには複数あり、どれを使えばいいか迷いますよね。選び方を間違えると、全数データなのにサンプル用の関数を使ってしまい、結果がずれてしまいます。
そんなときに正しく選べるようになるのがこの記事です。COVARIANCE.P関数の書き方からCOVAR・COVARIANCE.Sとの違い、使い分けまで解説します。
スプレッドシートのCOVARIANCE.P関数とは?母共分散を求める関数
COVARIANCE.P関数(読み方: コバリアンス・ピー関数)は、2つのデータセットの母共分散を返す統計関数です。「COVARIANCE」は英語で共分散、「P」はPopulation(母集団)の頭文字です。
母共分散とは、手元のデータが全数であるときに使う共分散のことです。やっていることはシンプルで、2つのデータが一緒にどの方向にどれだけ動くかを1つの数値にまとめます。
- 正の値: 一方が増えるともう一方も増える傾向(同じ方向に動く)
- 負の値: 一方が増えるともう一方は減る傾向(逆方向に動く)
- 0に近い: 2つのデータに関連性がほぼない
身近な例でいうと、全社員の「残業時間」と「ミス件数」のデータがあるとします。残業が増えるとミスも増えるなら正の母共分散です。全社員のデータ=母集団なので、COVARIANCE.P関数を使います。
COVARIANCE.P関数にできることをまとめると、次のとおりです。
- 2つのデータ間の母共分散を数値で求める
- データが同じ方向に動くか逆方向に動くかを判定する
- 全数データ(母集団)に対して正確な共分散を計算する
- 2026-03-21-spreadsheet-correl-function“>CORREL関数や2026-03-21-spreadsheet-stdev-function“>STDEV関数と組み合わせてデータ分析の幅を広げる
NOTE
COVARIANCE.P関数はGoogleスプレッドシートの全バージョンで使えます。2026-03-26-spreadsheet-covar-function“>COVAR関数と計算結果は完全に同じです。COVAR関数の後継として追加された関数になります。
COVARIANCE.P関数の書き方(構文と引数)
基本構文
=COVARIANCE.P(データ_y, データ_x)
カッコの中に、共分散を調べたい2つのデータ範囲を指定します。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| データ_y | 必須 | 比較したいデータ範囲の1つ目(例: 売上データ) |
| データ_x | 必須 | 比較したいデータ範囲の2つ目(例: 広告費データ) |
引数はたった2つだけなのでシンプルですよね。注意点として、データ_yとデータ_xのデータ数は同じにする必要があります。データ数が異なると #N/A エラーが出ます。
TIP
範囲内の文字列・TRUE/FALSE・空白セルは自動的に無視されます。ただし、一方が数値で他方が空白というペアがあると、そのペアごと計算から除外されます。
母共分散の計算の仕組み
COVARIANCE.P関数が内部で行っている計算はこちらです。
COVARIANCE.P = Σ((xi - x平均)(yi - y平均)) / n
nはデータの個数です。各データから平均を引いた値同士を掛け合わせ、その合計をデータ数で割っています。「÷n」が母集団用の計算です。
COVARIANCE.P関数の基本的な使い方
実際にCOVARIANCE.P関数を使ってみましょう。
あるお店で6か月分の「広告費」と「売上」を記録したとします。全店舗ではなく、この1店舗の全期間データという想定です。
| A列(月) | B列(広告費・万円) | C列(売上・万円) | |
|---|---|---|---|
| 2行目 | 4月 | 30 | 200 |
| 3行目 | 5月 | 50 | 320 |
| 4行目 | 6月 | 40 | 280 |
| 5行目 | 7月 | 60 | 400 |
| 6行目 | 8月 | 45 | 310 |
| 7行目 | 9月 | 70 | 450 |
母共分散を求める
=COVARIANCE.P(C2:C7, B2:B7)
結果は約 1,047.22 になります。正の値なので、広告費と売上は同じ方向に動くことがわかりますね。
共分散の符号の読み取り方
COVARIANCE.P関数の結果は相関係数のように-1〜1の範囲に収まりません。データのスケール(単位や大きさ)によって値が変わります。
そのため、共分散では符号(正か負か)で関連の方向を判断します。
| 共分散の符号 | 意味 | 解釈 |
|---|---|---|
| 正の値(0より大きい) | 正の関連 | 一方が増えるともう一方も増える |
| 負の値(0より小さい) | 負の関連 | 一方が増えるともう一方は減る |
| 0に近い | 関連なし | 2つのデータは独立して動く |
WARNING
共分散の値そのものの大小で「関連が強い・弱い」と判断するのは危険です。共分散はデータの単位に依存するため、異なるデータセット間で比較できません。強弱を比較したいときは2026-03-21-spreadsheet-correl-function“>CORREL関数で相関係数を求めてください。
COVARIANCE.P関数の実践的な使い方・応用例
母集団データで正確な共分散を求める
COVARIANCE.P関数が特に活きるのは、データが全数そろっている場面です。
たとえば、社内アンケートで全社員50名に聞いたとします。D列に「業務満足度(10点満点)」、E列に「研修受講回数」が入っています。
=COVARIANCE.P(D2:D51, E2:E51)
全社員のデータなので母集団です。COVARIANCE.P関数を使うのが正しい選択になります。結果が正の値なら「研修を多く受けた社員ほど満足度が高い傾向がある」と読み取れます。
TIP
「全数データかサンプルか」の判断に迷ったら、次のように考えてください。分析対象の全員・全期間のデータがあれば母集団(COVARIANCE.P)です。一部を抜き出したデータであれば標本(COVARIANCE.S)です。
複数の要因との共分散を比較する
売上に影響しそうな要因が複数ある場合、それぞれの共分散を並べて方向を確認できます。
全12か月分のデータがあるとして、売上(C列)と各要因の共分散を求めてみましょう。
=COVARIANCE.P(C2:C13, D2:D13)
=COVARIANCE.P(C2:C13, E2:E13)
=COVARIANCE.P(C2:C13, F2:F13)
結果の符号を見れば、各要因が売上と同じ方向に動くか逆方向に動くかがわかります。ただし、値の大小で影響の強さは判断できません。強さを比較するには2026-03-21-spreadsheet-correl-function“>CORREL関数を使ってくださいね。
COVARIANCE.P関数から相関係数を手動計算する
COVARIANCE.P関数の結果を使って、相関係数を自分で計算することもできます。共分散と相関係数の関係が実感できますよ。
=COVARIANCE.P(C2:C7, B2:B7) / (STDEVP(C2:C7) * STDEVP(B2:B7))
この式は =CORREL(C2:C7, B2:B7) と同じ結果を返します。相関係数は共分散を標準偏差で割って正規化したものです。
NOTE
ここで使っているSTDEVP関数は母標準偏差を求める関数です。COVARIANCE.P関数が母共分散なので、標準偏差も母集団用のSTDEVPを使います。標本用のSTDEVを使うと計算が合わなくなるので注意してください。
ポートフォリオのリスク分析に使う
投資の世界では、共分散はポートフォリオ理論の核となる指標です。2つの資産のリターンデータが全期間分あるとします。
=COVARIANCE.P(G2:G13, H2:H13)
結果が負の共分散なら、2つの資産は逆方向に動く傾向があります。逆に動く資産を組み合わせれば、ポートフォリオ全体のリスクを下げられる可能性がありますよ。
TIP
2資産ポートフォリオの分散は次の式で計算します。wA^2 VarA + wB^2 VarB + 2 wA wB * Cov(A, B)。個々の資産の分散は2026-03-21-spreadsheet-varp-function“>VARP関数で求められます。
COVARIANCE.P関数のよくあるエラーと対処法
#N/Aエラー
COVARIANCE.P関数で最もよく見るエラーです。
| 原因 | 対策 |
|---|---|
| データ_yとデータ_xの行数が異なる | セル範囲の行数を揃える |
たとえば =COVARIANCE.P(B2:B13, C2:C10) のように行数がずれていると発生します。データ範囲を確認してください。
#DIV/0!エラー
以下の原因が考えられます。
| 原因 | 対策 |
|---|---|
| 数値データが1つもない | 数値データを含む範囲を指定する |
| 配列が空(すべて文字列や空白) | セル範囲の中身を確認する |
範囲内に数値が含まれていない場合、計算に使えるデータがゼロになるため発生します。
#VALUE!エラー
引数に文字列を直接入力すると発生します。
=COVARIANCE.P("100", "200") → #VALUE!エラー
=COVARIANCE.P(A1:A5, B1:B5) → 正常に計算される
セル範囲内に文字列がある場合は自動で無視されます。引数として直接文字列を渡した場合にのみ発生するエラーです。
TIP
期待した結果にならないときは、セル範囲に空白や文字列が混ざっていないか確認してください。COVARIANCE.P関数は対応するペアが両方とも数値のデータだけを使います。
COVAR・COVARIANCE.Sとの違い・使い分け
COVAR関数との違い
2026-03-26-spreadsheet-covar-function“>COVAR関数とCOVARIANCE.P関数は計算結果が完全に同じです。
=COVAR(C2:C7, B2:B7)
=COVARIANCE.P(C2:C7, B2:B7)
この2つはどちらも同じ値を返します。違いは関数の位置づけだけです。
| 項目 | COVAR関数 | COVARIANCE.P関数 |
|---|---|---|
| 計算結果 | 母共分散 | 母共分散 |
| 位置づけ | 旧互換性関数 | 後継関数(推奨) |
| Excelとの互換性 | Excel旧バージョン互換 | Excel 2010以降と同名 |
COVAR関数は過去の互換性のために残されている関数です。新しくスプレッドシートを作るなら、COVARIANCE.P関数を使うのがおすすめですよ。
COVARIANCE.S関数との違い
COVARIANCE.P関数との最大の違いは「母集団用か標本用か」です。
| 項目 | COVARIANCE.P関数 | COVARIANCE.S関数 |
|---|---|---|
| 計算方法 | 母共分散(÷n) | 標本共分散(÷(n-1)) |
| 用途 | データが全数あるとき | データがサンプルのとき |
| データ1件の場合 | 0を返す | #DIV/0!エラー |
| 結果の大きさ | COVARIANCE.Sより小さい | COVARIANCE.Pより大きい |
計算式の違いは割る数だけです。COVARIANCE.Pは「÷n」、COVARIANCE.Sは「÷(n-1)」で計算します。データ数が大きくなるほど両者の差は小さくなります。
どちらを使うかの判断基準
迷ったときは、次のように考えてください。
| 状況 | 使う関数 | 理由 |
|---|---|---|
| 全社員のアンケートデータ | COVARIANCE.P | 対象全員のデータ=母集団 |
| 顧客1,000人中100人のサンプル調査 | COVARIANCE.S | 一部を抜き出したデータ=標本 |
| ある店舗の全月次データ(12か月分) | COVARIANCE.P | 対象期間の全データ=母集団 |
| 全国チェーン中5店舗だけのデータ | COVARIANCE.S | 全体の一部=標本 |
WARNING
COVARIANCE.S関数はデータが1件だけの場合
#DIV/0!エラーになります。「÷(n-1)」の計算でn=1だと0で割ることになるためです。COVARIANCE.P関数はデータ1件でも0を返します。
まとめ
COVARIANCE.P関数は、2つのデータセットの母共分散を返す関数です。
この記事のポイント
- 構文は
=COVARIANCE.P(データ_y, データ_x)で、2つのデータ範囲を指定するだけ - 「P」はPopulation(母集団)の意味。データが全数あるときに使う
- 共分散の符号(正・負・ゼロ付近)で2つのデータの関連の方向がわかる
- 2026-03-26-spreadsheet-covar-function“>COVAR関数と計算結果は同じ。新規作成ならCOVARIANCE.Pを使う
- サンプルデータにはCOVARIANCE.S関数を使う(÷nと÷(n-1)の違い)
- 値の大小で関連の強弱は判断できない。強さの比較には2026-03-21-spreadsheet-correl-function“>CORREL関数を使う
次のステップ:関連する統計関数
COVARIANCE.P関数の使い方がわかったら、以下の関数もあわせて覚えてみてください。データ分析の幅が広がりますよ。
- 2026-03-26-spreadsheet-covar-function“>COVAR関数 — COVARIANCE.Pと同じ母共分散を返す旧関数
- 2026-03-21-spreadsheet-correl-function“>CORREL関数 — 相関の強さを-1〜1で測る
- 2026-03-26-spreadsheet-pearson-function“>PEARSON関数 — CORREL関数と同じ相関係数を返す
- 2026-03-21-spreadsheet-varp-function“>VARP関数 — データの母分散を求める
- 2026-03-21-spreadsheet-stdev-function“>STDEV関数 — 標準偏差を求める
