スプレッドシートのCOVARIANCE.P関数の使い方|母共分散の計算方法と実務での使い分け

スポンサーリンク

「広告費と売上の共分散を出したいけど、COVAR関数とCOVARIANCE.P関数って何が違うの?」

共分散を求める関数がスプレッドシートには複数あり、どれを使えばいいか迷いますよね。選び方を間違えると、全数データなのにサンプル用の関数を使ってしまい、結果がずれてしまいます。

そんなときに正しく選べるようになるのがこの記事です。COVARIANCE.P関数の書き方からCOVAR・COVARIANCE.Sとの違い、使い分けまで解説します。

スプレッドシートのCOVARIANCE.P関数とは?母共分散を求める関数

COVARIANCE.P関数(読み方: コバリアンス・ピー関数)は、2つのデータセットの母共分散を返す統計関数です。「COVARIANCE」は英語で共分散、「P」はPopulation(母集団)の頭文字です。

母共分散とは、手元のデータが全数であるときに使う共分散のことです。やっていることはシンプルで、2つのデータが一緒にどの方向にどれだけ動くかを1つの数値にまとめます。

  • 正の値: 一方が増えるともう一方も増える傾向(同じ方向に動く)
  • 負の値: 一方が増えるともう一方は減る傾向(逆方向に動く)
  • 0に近い: 2つのデータに関連性がほぼない

身近な例でいうと、全社員の「残業時間」と「ミス件数」のデータがあるとします。残業が増えるとミスも増えるなら正の母共分散です。全社員のデータ=母集団なので、COVARIANCE.P関数を使います。

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

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月30200
3行目5月50320
4行目6月40280
5行目7月60400
6行目8月45310
7行目9月70450

母共分散を求める

=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関数の使い方がわかったら、以下の関数もあわせて覚えてみてください。データ分析の幅が広がりますよ。

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