「営業部だけの売上のばらつきを正確に分析したい」「特定ラインの製品だけで分散を出したい」。こんな場面、フィルタで絞り込んでからVAR関数を使っていませんか。
条件が変わるたびにフィルタをかけ直すのは地味に手間です。共有シートだと他の人の表示にも影響してしまうので、気を使う場面も多いですよね。
そんなときに便利なのがDVAR関数です。条件を別のセル範囲に書いておくだけで、該当するデータの標本分散(ばらつきの指標)を自動で返してくれます。この記事では、スプレッドシートのDVAR関数の基本から複数条件・OR条件の応用、VAR関数やDVARP関数との使い分けまでまとめて紹介します。
スプレッドシートのDVAR関数とは?
DVAR関数(読み方: ディーバリアンス)は、データベース形式の表から条件に合うレコードを探し、指定した列の値の標本分散を返す関数です。
名前は「Database VARiance(データベースの分散)」の略です。DSUM(条件付き合計)やDAVERAGE(条件付き平均)と同じ「データベース関数」の仲間になります。平均や合計ではなく「ばらつき」を測るのがDVAR関数の特徴です。
DVAR関数の特徴をまとめると、次のとおりです。
- 条件をセル範囲(条件範囲)で指定するスタイル
- 条件範囲を書き換えるだけで集計条件をすぐ切り替えられる
- 複数条件(AND条件・OR条件)にも対応
- 見出し付きのリスト形式のデータが前提
- 対象データを「標本(サンプル)」とみなし、n-1で割る不偏分散を返す
- 条件に一致するレコード数が2件以上必要(1件以下は
#DIV/0!エラー)
NOTE
DVAR関数はGoogleスプレッドシートの全バージョンで使えます。Excelにも同じ関数があるので、ファイルのやり取りでも安心です。
DVARP関数との違い(標本 vs 母集団)
DVAR関数とDVARP関数の違いは「データを標本とみなすか、母集団とみなすか」です。
| 比較項目 | DVAR関数 | DVARP関数 |
|---|---|---|
| データの扱い | 標本(サンプル)とみなす | 母集団(全体)とみなす |
| 計算式 | 偏差二乗和を n-1 で割る | 偏差二乗和を n で割る |
| 結果の傾向 | やや大きめの値 | やや小さめの値 |
| 用途 | 一部のデータから全体を推定したいとき | 手元のデータが対象全体であるとき |
使い分けのポイント:
- アンケートの回答者(全社員ではなく一部) → DVAR関数(標本)
- 全社員・全店舗・全在庫など、対象が母集団そのもの → DVARP関数(母集団)
- 判断に迷ったらDVAR関数(標本) が実務では無難
DSTDEV関数との違い(分散 vs 標準偏差)
DVAR関数とDSTDEV関数は「分散を返すか、標準偏差を返すか」の違いです。
| 比較項目 | DVAR関数 | DSTDEV関数 |
|---|---|---|
| 何を返すか | 標本分散 | 標本標準偏差 |
| 計算上の関係 | DSTDEVの二乗 | DVARの平方根 |
| 単位 | 元データの単位の二乗 | 元データと同じ単位 |
| 用途 | 統計モデル・分析で使う | 直感的にばらつきを比較したい |
標準偏差は「平均からの距離の目安」として単位が元データと同じなので直感的です。分散は数式上で便利ですが、単位が二乗になるので読み取りづらい面があります。用途に合わせて使い分けてください。
DVAR関数の書き方(構文と引数)
基本構文
=DVAR(データベース, フィールド, 条件)
引数は3つです。すべて必須で、省略はできません。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| データベース | 必須 | 見出し行を含むデータ範囲(例: A1:D100) |
| フィールド | 必須 | 標本分散を求める列の見出し名(文字列)または列番号(数値) |
| 条件 | 必須 | 条件を記述したセル範囲(見出し行+条件行) |
それぞれ詳しく見ていきましょう。
データベース(第1引数)
データベースには、見出し行を含めたデータ範囲を指定します。先頭行に列の見出し(「部署」「商品名」「売上」など)が入っている必要があります。
フィールド(第2引数)
標本分散を求めたい列を指定します。指定方法は2つあります。
- 文字列で指定:
"売上"のように、見出しと同じ文字列をダブルクォーテーションで囲む - 数値で指定: データベースの左端列を1として、列の位置を数値で指定する(4列目なら
4)
文字列で指定するほうが、あとから見たとき何の列かわかりやすいのでおすすめです。
条件(第3引数)
条件範囲には、見出し行と条件行の2行以上のセル範囲を指定します。これがDVAR関数の最大の特徴です。
TIP
フィールドに列番号を使う場合、データベース範囲の左端が1です。シートのA列が1とは限らないので注意してください。
DVAR関数の基本的な使い方
サンプルデータ
次のような売上データを使って説明します。
| A | B | C | D | |
|---|---|---|---|---|
| 1 | 月 | エリア | 店舗 | 売上 |
| 2 | 1 | 東日本 | 東京 | 120 |
| 3 | 2 | 東日本 | 東京 | 150 |
| 4 | 3 | 東日本 | 横浜 | 180 |
| 5 | 4 | 東日本 | 横浜 | 90 |
| 6 | 5 | 西日本 | 大阪 | 100 |
| 7 | 6 | 西日本 | 神戸 | 110 |
| 8 | 7 | 西日本 | 神戸 | 105 |
条件範囲の設定方法
DVAR関数の条件は、別のセル範囲に書きます。
条件範囲は次のルールで作ります。
- 1行目に見出しを書く — データベースの見出しと完全に同じ文字列を使う
- 2行目に条件値を書く — 一致させたい値を入力する
たとえば「東日本」エリアの売上の標本分散を求めたい場合、シートの空いているエリア(たとえばF1:F2)に次のように書きます。
| F | |
|---|---|
| 1 | エリア |
| 2 | 東日本 |
数式はこうなります。
=DVAR(A1:D8, "売上", F1:F2)
結果は東日本の4件(120、150、180、90)の標本分散で 1500 です。このデータを「全体の一部(標本)」とみなして、n-1(つまり3)で割った値になります。
TIP
条件範囲の見出しは、データベースの見出しと1文字でも違うと正しく動きません。コピー&ペーストで作ると確実ですよ。
VAR関数と結果の比較
同じデータで VAR 関数と比較してみます。VARは条件指定できないので、該当範囲を直接指定します。
=VAR(D2:D5) → 1500(東日本4件のみを指定)
=DVAR(A1:D8, "売上", F1:F2) → 1500(条件で東日本に絞り込み)
どちらも同じ結果です。ただしVAR関数は「範囲を直接指定する」のに対して、DVAR関数は「条件を書き換えるだけで集計範囲を変えられる」という違いがあります。条件が変わる分析ではDVAR関数が圧倒的に便利です。
比較演算子を使った条件
条件値には比較演算子も使えます。
| 条件値の書き方 | 意味 |
|---|---|
東日本 | 「東日本」と完全一致 |
>=100 | 100以上 |
<150 | 150未満 |
<>東日本 | 「東日本」以外 |
たとえば「売上が100以上」のレコードに絞って標本分散を見たい場合は、条件範囲をこう書きます。
| F | |
|---|---|
| 1 | 売上 |
| 2 | >=100 |
=DVAR(A1:D8, "売上", F1:F2)
100以上の6件(120、150、180、100、110、105)の標本分散 977.5 が返ります。
DVAR関数の実践的な使い方・応用例
複数条件(AND条件)で標本分散を求める
「東日本エリア」かつ「売上が100以上」のように、複数の条件をすべて満たすレコードで標本分散を求めたい場合です。
AND条件は、条件範囲の同じ行に複数の見出し・条件値を横に並べて書きます。
| F | G | |
|---|---|---|
| 1 | エリア | 売上 |
| 2 | 東日本 | >=100 |
=DVAR(A1:D8, "売上", F1:G2)
東日本で売上100以上の3件(120、150、180)の標本分散 900 が返ります。
OR条件で標本分散を求める
「東日本」または「西日本」のように、どちらかの条件に合うレコードから標本分散を求めたい場合です。
OR条件は、条件値を別の行に書くのがポイントです。
| F | |
|---|---|
| 1 | エリア |
| 2 | 東日本 |
| 3 | 西日本 |
=DVAR(A1:D8, "売上", F1:F3)
全7件の売上の標本分散 約1015.48 が返ります。
同じ行に書くとAND条件、別の行に書くとOR条件。このルールを覚えておきましょう。
部署ごとの売上ばらつきを比較する
部署別の売上データから、部署ごとの売上ばらつきをDVAR関数で比較できます。
条件範囲のF2セルを「東日本」→「西日本」と書き換えるだけで、DVAR関数の結果が切り替わります。数式を修正する必要はありません。
ドロップダウンリスト(データの入力規則)と組み合わせると、選択するだけで部署別の標本分散をサッと確認できる簡易ダッシュボードが作れますよ。
品質データの安定性をチェックする
製造データで、ラインごとの品質(寸法)のばらつきを確認する場合です。
| A | B | C | |
|---|---|---|---|
| 1 | 製品 | ライン | 寸法 |
| 2 | 製品A | 第1 | 10.2 |
| 3 | 製品A | 第1 | 10.1 |
| 4 | 製品A | 第2 | 10.5 |
| 5 | 製品A | 第2 | 9.8 |
| 6 | 製品B | 第1 | 20.3 |
「製品A・第1ライン」のサンプルの寸法ばらつきを確認する場合です。
=DVAR(A1:C6, "寸法", E1:F2)
条件範囲(E1:F2)には「製品」「ライン」の見出し+「製品A」「第1」を入れておきます。サンプル採取の検査データなのでDVAR関数(標本分散)が適しています。
DVAR関数とDVARP関数の使い分け
最後に、分散系の4関数(DVAR/DVARP/VAR/VARP)の位置関係を整理しておきます。
| 関数 | 条件指定 | 扱い | 計算式 | 使うシーン |
|---|---|---|---|---|
| VAR | できない | 標本 | n-1で割る | 範囲全体のばらつき、サンプルデータ |
| VARP | できない | 母集団 | nで割る | 範囲全体のばらつき、全データ |
| DVAR | できる | 標本 | n-1で割る | 条件付きのばらつき、サンプルデータ |
| DVARP | できる | 母集団 | nで割る | 条件付きのばらつき、全データ |
選び方の2問フロー:
- 条件で絞り込みたい? → YES なら DVAR/DVARP、NO なら VAR/VARP
- 手元のデータは全体か一部か? → 全体なら VARP/DVARP、一部なら VAR/DVAR
迷ったら「標本(n-1)」を選ぶのが実務では無難です。標本扱いのDVAR・VARは母集団の分散を推定する不偏推定量になるため、ビジネス分析の多くの場面で採用されています。
よくあるエラーと対処法
DVAR関数で「思った結果にならない」ケースをまとめました。
| 症状 | 原因 | 対処法 |
|---|---|---|
#DIV/0! エラー | 条件に一致するレコードが1件以下(n-1=0で除算不可) | 条件を緩める、またはDCOUNT関数で件数確認 |
#NUM! エラー | 対象列に数値が1つも含まれていない | 数値が入っている列をフィールドに指定する |
| 結果が0になる | 対象データの値がすべて同じ(ばらつきがない) | そのデータ内では標本分散=0が正しい結果 |
| 結果が想定より大きくなる | 条件範囲に空白行が含まれている | 条件範囲を必要な行だけに絞る(空白行は「すべて一致」と解釈される) |
#VALUE! エラー | フィールドに存在しない列名を指定している | データベースの見出しと同じ文字列を使う |
| DVARPと結果が違う | 計算式の違い(n-1 vs n) | 意図どおりの関数を選んでいるか確認する |
| 条件が部分一致になる | 条件値にアスタリスクが含まれている | 完全一致にしたい場合は ="=東日本" のように先頭に = を付ける |
| 文字列の列でエラーになる | DVAR関数は数値列の標本分散を返す関数 | 文字列の列を指定すると計算対象にならない。数値列を指定すること |
TIP
条件に合うレコードが何件あるかを確認したいときはDCOUNT関数が便利です。DCOUNT関数で件数を確認してから、DVAR関数で標本分散を求めると安心です。
#DIV/0!エラーの原因が「レコード0件・1件」なのか別の理由なのかを切り分けられます。
まとめ
DVAR関数は、データベース形式の表から条件に合うデータの標本分散(ばらつきの指標)を求める関数です。
ポイントを整理します。
- 構文は
=DVAR(データベース, フィールド, 条件)で、引数は3つ - 条件は数式内ではなくセル範囲(条件範囲)に書くのが特徴
- 条件範囲は「見出し行+条件行」のセットで作る
- 同じ行に条件を横並びにすればAND条件、別の行にすればOR条件
- 条件セルの値を変えるだけで分析対象を切り替えられる
- DVAR関数は標本(n-1で割る)、DVARP関数は母集団(nで割る)
- 一部サンプルから全体を推定したいときにDVARを使う
- 判断に迷ったらDVAR関数(標本)が実務では無難
- 条件に一致するレコードが2件以上必要(1件以下は
#DIV/0!) - 分散の単位は元データの二乗。直感的に見たいならSQRTで標準偏差に変換
部署別の売上ばらつき分析や、サンプリング検査の品質ばらつきチェックで威力を発揮する関数です。まずは簡単な表で =DVAR(A1:D8, "売上", F1:F2) から試してみてください。
関連記事
- スプレッドシートのDVARP関数の使い方|条件に合う母分散
- スプレッドシートのDSTDEV関数の使い方|条件に合う標本標準偏差
- スプレッドシートのDSTDEVP関数の使い方|条件に合う母標準偏差
- スプレッドシートのVAR関数の使い方|標本分散を求める
- スプレッドシートのVARP関数の使い方|母分散を求める
- スプレッドシートのSTDEV関数の使い方|標本標準偏差を求める
- スプレッドシートのSTDEVP関数の使い方|母標準偏差を求める
- スプレッドシートのDSUM関数の使い方|条件に合う合計
- スプレッドシートのDAVERAGE関数の使い方|条件に合う平均
- スプレッドシートのDCOUNT関数の使い方|条件に合う数値の個数
- スプレッドシートのDMAX関数の使い方|条件に合う最大値
- スプレッドシートのDMIN関数の使い方|条件に合う最小値
