「アンケート結果の分析で共分散を出したいけど、サンプルデータにはどの関数を使えばいいの?」
スプレッドシートには共分散を求める関数が複数あり、選び方を間違えるとサンプルデータなのに母集団用の関数を使ってしまいます。結果が過小評価されて、分析の精度が下がってしまうんですよね。
この記事では、サンプルデータに正しい関数を選べるようになるために、COVARIANCE.S関数の書き方からCOVAR・COVARIANCE.Pとの違い、実務での使い分けまで解説します。
スプレッドシートのCOVARIANCE.S関数とは?標本共分散を求める関数
COVARIANCE.S関数(読み方: コバリアンス・エス関数)は、2つのデータセットの標本共分散を返す統計関数です。「COVARIANCE」は英語で共分散、「S」はSample(標本)の頭文字です。
標本共分散とは、手元のデータが全体の一部(サンプル)であるときに使う共分散のことです。やっていることはシンプルで、2つのデータが一緒にどの方向にどれだけ動くかを1つの数値にまとめます。
- 正の値: 一方が増えるともう一方も増える傾向(同じ方向に動く)
- 負の値: 一方が増えるともう一方は減る傾向(逆方向に動く)
- 0に近い: 2つのデータに関連性がほぼない
身近な例でいうと、全国チェーン100店舗のうち10店舗だけ抽出して「広告費」と「売上」を調べたとします。広告費が多い店舗ほど売上も多いなら正の標本共分散です。10店舗=全体の一部なので、COVARIANCE.S関数を使います。
COVARIANCE.S関数にできることをまとめると、次のとおりです。
- 2つのデータ間の標本共分散を数値で求める
- データが同じ方向に動くか逆方向に動くかを判定する
- サンプルデータ(標本)から母集団の共分散を偏りなく推定する
- 2026-03-21-spreadsheet-correl-function“>CORREL関数や2026-03-21-spreadsheet-stdev-function“>STDEV関数と組み合わせてデータ分析の幅を広げる
NOTE
COVARIANCE.S関数はGoogleスプレッドシートの全バージョンで使えます。母共分散を返す2026-03-26-spreadsheet-covariance-p-function“>COVARIANCE.P関数や2026-03-26-spreadsheet-covar-function“>COVAR関数とは計算結果が異なります。割る数が「n」か「n-1」かの違いです。
COVARIANCE.S関数の書き方(構文と引数)
基本構文
=COVARIANCE.S(データ_y, データ_x)
カッコの中に、共分散を調べたい2つのデータ範囲を指定します。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| データ_y | 必須 | 比較したいデータ範囲の1つ目(例: 売上データ) |
| データ_x | 必須 | 比較したいデータ範囲の2つ目(例: 広告費データ) |
引数はたった2つだけなのでシンプルですよね。注意点として、データ_yとデータ_xのデータ数は同じにする必要があります。データ数が異なると #N/A エラーが出ます。
TIP
範囲内の文字列・TRUE/FALSE・空白セルは自動的に無視されます。ただし、一方が数値で他方が空白というペアがあると、そのペアごと計算から除外されます。
標本共分散の計算の仕組み
COVARIANCE.S関数が内部で行っている計算はこちらです。
COVARIANCE.S = Σ((xi - x平均)(yi - y平均)) / (n - 1)
nはデータの個数です。各データから平均を引いた値同士を掛け合わせ、その合計を(n-1)で割るのがポイントです。
母共分散の2026-03-26-spreadsheet-covariance-p-function“>COVARIANCE.P関数は「÷n」で計算しますが、COVARIANCE.S関数は「÷(n-1)」です。この補正はベッセルの補正と呼ばれ、サンプルデータから母集団の共分散を推定するときに値が小さくなりすぎるのを防ぐ役割があります。
COVARIANCE.S関数の基本的な使い方
実際にCOVARIANCE.S関数を使ってみましょう。
全国チェーンの中から6店舗をサンプルとして抽出し、「広告費」と「売上」を調べたとします。
| A列(店舗) | B列(広告費・万円) | C列(売上・万円) | |
|---|---|---|---|
| 2行目 | 店舗A | 30 | 200 |
| 3行目 | 店舗B | 50 | 320 |
| 4行目 | 店舗C | 40 | 280 |
| 5行目 | 店舗D | 60 | 400 |
| 6行目 | 店舗E | 45 | 310 |
| 7行目 | 店舗F | 70 | 450 |
標本共分散を求める
=COVARIANCE.S(C2:C7, B2:B7)
結果は約 1,256.67 になります。正の値なので、広告費と売上は同じ方向に動くことがわかりますね。
ちなみに同じデータで2026-03-26-spreadsheet-covariance-p-function“>COVARIANCE.P関数を使うと約1,047.22です。COVARIANCE.S関数のほうが値が大きくなるのは、÷(n-1)で割っているためです。
マイナス共分散が出るパターン
次に、「気温」と「暖房費」のサンプルデータを見てみましょう。
| D列(気温・度) | E列(暖房費・万円) | |
|---|---|---|
| 2行目 | 5 | 12 |
| 3行目 | 10 | 9 |
| 4行目 | 15 | 6 |
| 5行目 | 20 | 4 |
| 6行目 | 25 | 2 |
=COVARIANCE.S(E2:E6, D2:D6)
結果は -25 になります。気温が上がると暖房費は下がるので、負の標本共分散です。
WARNING
共分散の値そのものの大小で「関連が強い・弱い」と判断するのは危険です。共分散はデータの単位に依存するため、異なるデータセット間で比較できません。強弱を比較したいときは2026-03-21-spreadsheet-correl-function“>CORREL関数で相関係数を求めてください。
COVARIANCE.S関数の実践的な使い方・応用例
アンケート結果の項目間関連性を分析する
COVARIANCE.S関数が特に活きるのは、母集団の一部を抽出して調査するアンケートです。
たとえば、全社員500名のうち50名にアンケートを実施したとします。D列に「業務満足度(10点満点)」、E列に「研修受講回数」が入っています。
=COVARIANCE.S(D2:D51, E2:E51)
50名は全社員の一部なので標本です。COVARIANCE.S関数を使うのが正しい選択になります。結果が正の値なら「研修を多く受けた社員ほど満足度が高い傾向がある」と読み取れます。
TIP
「全数データかサンプルか」の判断に迷ったら、次のように考えてください。分析対象の全員・全期間のデータがあれば母集団(2026-03-26-spreadsheet-covariance-p-function“>COVARIANCE.P関数)です。一部を抜き出したデータであれば標本(COVARIANCE.S関数)です。
複数ペアの共分散をまとめて比較する
売上に影響しそうな要因が複数ある場合、それぞれの標本共分散を並べて方向を確認できます。
全国50店舗のうち10店舗をサンプリングし、売上(C列)と各要因の共分散を求めてみましょう。
=COVARIANCE.S(C2:C11, D2:D11)
=COVARIANCE.S(C2:C11, E2:E11)
=COVARIANCE.S(C2:C11, F2:F11)
結果の符号を見れば、各要因が売上と同じ方向に動くか逆方向に動くかがわかります。ただし、値の大小で影響の強さは判断できません。強さを比較するには2026-03-21-spreadsheet-correl-function“>CORREL関数を使ってくださいね。
COVARIANCE.S関数から相関係数を手動計算する
COVARIANCE.S関数の結果を使って、相関係数を自分で計算することもできます。共分散と相関係数の関係が実感できますよ。
=COVARIANCE.S(C2:C7, B2:B7) / (STDEV(C2:C7) * STDEV(B2:B7))
この式は =CORREL(C2:C7, B2:B7) と同じ結果を返します。相関係数は共分散を標準偏差で割って正規化したものです。
NOTE
ここで使っているSTDEV関数は標本標準偏差を求める関数です。COVARIANCE.S関数が標本共分散なので、標準偏差も標本用の2026-03-21-spreadsheet-stdev-function“>STDEV関数を使います。母集団用のSTDEVPを使うと計算が合わなくなるので注意してください。
データ数が少ないときの注意点
COVARIANCE.S関数は「÷(n-1)」で計算するため、データ数が少ないほどCOVARIANCE.P関数との差が大きくなります。
| データ数(n) | COVARIANCE.P(÷n) | COVARIANCE.S(÷(n-1)) | S÷Pの倍率 |
|---|---|---|---|
| 2 | ÷2 | ÷1 | 2.00倍 |
| 5 | ÷5 | ÷4 | 1.25倍 |
| 10 | ÷10 | ÷9 | 1.11倍 |
| 100 | ÷100 | ÷99 | 1.01倍 |
データが2件だとCOVARIANCE.Sの結果はCOVARIANCE.Pの2倍になります。データ数が100件を超えるとほぼ差がありません。サンプルサイズが小さいときほど関数の選択が重要になるということですね。
COVARIANCE.S関数のよくあるエラーと対処法
#N/Aエラー
COVARIANCE.S関数で最もよく見るエラーです。
| 原因 | 対策 |
|---|---|
| データ_yとデータ_xの行数が異なる | セル範囲の行数を揃える |
たとえば =COVARIANCE.S(B2:B13, C2:C10) のように行数がずれていると発生します。データ範囲を確認してください。
#DIV/0!エラー
COVARIANCE.S関数はCOVARIANCE.P関数より発生条件が厳しいです。
| 原因 | 対策 |
|---|---|
| 数値データが1件以下 | 2件以上の数値データを含む範囲を指定する |
| 配列が空(すべて文字列や空白) | セル範囲の中身を確認する |
COVARIANCE.S関数は「÷(n-1)」で計算するため、数値データが1件だけだとn-1=0で割り算できません。COVARIANCE.P関数はデータ1件でも0を返しますが、COVARIANCE.S関数は #DIV/0! エラーになります。最低2件の数値データが必要です。
#VALUE!エラー
引数に文字列を直接入力すると発生します。
=COVARIANCE.S("100", "200") → #VALUE!エラー
=COVARIANCE.S(A1:A5, B1:B5) → 正常に計算される
セル範囲内に文字列がある場合は自動で無視されます。引数として直接文字列を渡した場合にのみ発生するエラーです。
TIP
期待した結果にならないときは、セル範囲に空白や文字列が混ざっていないか確認してください。COVARIANCE.S関数は対応するペアが両方とも数値のデータだけを使います。
COVARIANCE.P・COVAR関数との違い・使い分け
COVARIANCE.P関数との違い
2026-03-26-spreadsheet-covariance-p-function“>COVARIANCE.P関数との最大の違いは「標本用か母集団用か」です。
| 項目 | COVARIANCE.S関数 | COVARIANCE.P関数 |
|---|---|---|
| 計算方法 | 標本共分散(÷(n-1)) | 母共分散(÷n) |
| 用途 | データがサンプルのとき | データが全数あるとき |
| データ1件の場合 | #DIV/0!エラー | 0を返す |
| 結果の大きさ | COVARIANCE.Pより大きい | COVARIANCE.Sより小さい |
計算式の違いは割る数だけです。COVARIANCE.Sは「÷(n-1)」、COVARIANCE.Pは「÷n」で計算します。データ数が大きくなるほど両者の差は小さくなります。
COVAR関数との違い
2026-03-26-spreadsheet-covar-function“>COVAR関数はCOVARIANCE.P関数と計算結果が同じ母共分散を返す旧関数です。COVARIANCE.S関数とは結果が異なります。
=COVAR(C2:C7, B2:B7) → 母共分散(÷n)
=COVARIANCE.P(C2:C7, B2:B7) → 母共分散(÷n)← COVARと同じ
=COVARIANCE.S(C2:C7, B2:B7) → 標本共分散(÷(n-1))← 値が大きい
| 項目 | COVAR関数 | COVARIANCE.P関数 | COVARIANCE.S関数 |
|---|---|---|---|
| 計算結果 | 母共分散 | 母共分散 | 標本共分散 |
| 位置づけ | 旧互換性関数 | 後継関数(母集団用) | 後継関数(標本用) |
| 割る数 | n | n | n-1 |
どちらを使うかの判断基準
迷ったときは、次のように考えてください。
| 状況 | 使う関数 | 理由 |
|---|---|---|
| 全社員のアンケートデータ | COVARIANCE.P | 対象全員のデータ=母集団 |
| 顧客1,000人中100人のサンプル調査 | COVARIANCE.S | 一部を抜き出したデータ=標本 |
| ある店舗の全月次データ(12か月分) | COVARIANCE.P | 対象期間の全データ=母集団 |
| 全国チェーン中5店舗だけのデータ | COVARIANCE.S | 全体の一部=標本 |
TIP
実務では「このデータは全体なのか、一部なのか」が判断のポイントです。手元のデータが分析対象の全てならCOVARIANCE.P、一部を抜き出したものならCOVARIANCE.Sと覚えておけば迷いません。
まとめ
COVARIANCE.S関数は、2つのデータセットの標本共分散を返す関数です。
この記事のポイント
- 構文は
=COVARIANCE.S(データ_y, データ_x)で、2つのデータ範囲を指定するだけ - 「S」はSample(標本)の意味。データがサンプルのときに使う
- 共分散の符号(正・負・ゼロ付近)で2つのデータの関連の方向がわかる
- 2026-03-26-spreadsheet-covariance-p-function“>COVARIANCE.P関数や2026-03-26-spreadsheet-covar-function“>COVAR関数は母共分散(÷n)。COVARIANCE.S関数は標本共分散(÷(n-1))
- データ数が少ないほどCOVARIANCE.PとCOVARIANCE.Sの差が大きくなる
- 値の大小で関連の強弱は判断できない。強さの比較には2026-03-21-spreadsheet-correl-function“>CORREL関数を使う
次のステップ:関連する統計関数
COVARIANCE.S関数の使い方がわかったら、以下の関数もあわせて覚えてみてください。データ分析の幅が広がりますよ。
- 2026-03-26-spreadsheet-covariance-p-function“>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-var-function“>VAR関数 — データの標本分散を求める
- 2026-03-21-spreadsheet-stdev-function“>STDEV関数 — 標本標準偏差を求める
