スプレッドシートのDSTDEV関数の使い方|条件に合う標本標準偏差

スポンサーリンク

「営業部だけの売上のばらつきを見たい」「特定ラインの製品だけで品質の標準偏差を出したい」。こんな場面、フィルタで絞り込んでからSTDEV関数を使っていませんか。

条件が変わるたびにフィルタをかけ直すのは地味に手間です。共有シートだと他の人の表示にも影響してしまうので、気を使う場面も多いですよね。

そんなときに便利なのがDSTDEV関数です。条件を別のセル範囲に書いておくだけで、該当するデータの標本標準偏差(ばらつきの指標)を自動で返してくれます。この記事では、スプレッドシートのDSTDEV関数の基本から複数条件・OR条件の応用、STDEV関数やDSTDEVP関数との使い分けまでまとめて紹介します。

スプレッドシートのDSTDEV関数とは?

DSTDEV関数(読み方: ディースタンダードデビエーション)は、データベース形式の表から条件に合うレコードを探し、指定した列の値の標本標準偏差を返す関数です。

名前は「Database STDEV(データベースの標準偏差)」の略です。DSUM(条件付き合計)やDAVERAGE(条件付き平均)と同じ「データベース関数」の仲間になります。平均や合計ではなく「ばらつき」を測るのがDSTDEV関数の特徴です。

DSTDEV関数の特徴をまとめると、次のとおりです。

  • 条件をセル範囲(条件範囲)で指定するスタイル
  • 条件範囲を書き換えるだけで集計条件をすぐ切り替えられる
  • 複数条件(AND条件・OR条件)にも対応
  • 見出し付きのリスト形式のデータが前提
  • 対象データを「標本(サンプル)」とみなし、n-1で割る不偏標準偏差を返す
  • 条件に一致するレコード数が2件以上必要(1件以下は#DIV/0!エラー)

NOTE

DSTDEV関数はGoogleスプレッドシートの全バージョンで使えます。Excelにも同じ関数があるので、ファイルのやり取りでも安心です。

STDEV関数との違い(全体のばらつき vs 条件付きのばらつき)

DSTDEV関数とSTDEV関数の最大の違いは「条件を付けられるかどうか」です。

比較項目STDEV関数DSTDEV関数
条件指定できない(範囲全体が対象)できる(条件範囲で絞り込み)
構文=STDEV(範囲)=DSTDEV(データベース, フィールド, 条件)
用途シンプルに範囲全体のばらつきを見る特定の条件に合うデータだけのばらつきを見る

たとえば「範囲全体のばらつきを知りたい」ならSTDEV関数で十分です。「営業部の担当分だけのばらつきを見たい」のように条件を付けたいなら、DSTDEV関数の出番になります。

DSTDEV関数の書き方(構文と引数)

基本構文

=DSTDEV(データベース, フィールド, 条件)

引数は3つです。すべて必須で、省略はできません。

引数の説明

引数必須/任意説明
データベース必須見出し行を含むデータ範囲(例: A1:D100)
フィールド必須標準偏差を求める列の見出し名(文字列)または列番号(数値)
条件必須条件を記述したセル範囲(見出し行+条件行)

それぞれ詳しく見ていきましょう。

データベース(第1引数)

データベースには、見出し行を含めたデータ範囲を指定します。先頭行に列の見出し(「部署」「商品名」「売上」など)が入っている必要があります。

フィールド(第2引数)

標準偏差を求めたい列を指定します。指定方法は2つあります。

  • 文字列で指定: "売上" のように、見出しと同じ文字列をダブルクォーテーションで囲む
  • 数値で指定: データベースの左端列を1として、列の位置を数値で指定する(4列目なら 4

文字列で指定するほうが、あとから見たとき何の列かわかりやすいのでおすすめです。

条件(第3引数)

条件範囲には、見出し行と条件行の2行以上のセル範囲を指定します。これがDSTDEV関数の最大の特徴です。

条件範囲の作り方は次のセクションで詳しく説明しますね。

TIP

フィールドに列番号を使う場合、データベース範囲の左端が1です。シートのA列が1とは限らないので注意してください。

DSTDEV関数の基本的な使い方

サンプルデータ

次のような売上データを使って説明します。担当者ごとの月間売上をまとめた表です。

 ABCD
1部署担当売上
21営業部田中120
32営業部田中150
43営業部佐藤180
54営業部佐藤90
65総務部鈴木100
76総務部伊藤110
87総務部伊藤105

条件範囲の設定方法

DSTDEV関数の条件は、別のセル範囲に書きます。ここがSTDEV関数との大きな違いです。

条件範囲は次のルールで作ります。

  1. 1行目に見出しを書く — データベースの見出しと完全に同じ文字列を使う
  2. 2行目に条件値を書く — 一致させたい値を入力する

たとえば「営業部」の売上のばらつきを求めたい場合、シートの空いているエリア(たとえばF1:F2)に次のように書きます。

 F
1部署
2営業部

数式はこうなります。

=DSTDEV(A1:D8, "売上", F1:F2)

結果は営業部の4件(120、150、180、90)の標本標準偏差で 約38.73 です。売上の平均からどれくらい散らばっているかが一発で求められます。

TIP

条件範囲の見出しは、データベースの見出しと1文字でも違うと正しく動きません。コピー&ペーストで作ると確実ですよ。

比較演算子を使った条件

条件値には比較演算子も使えます。

条件値の書き方意味
営業部「営業部」と完全一致
>=100100以上
<150150未満
<>営業部「営業部」以外

たとえば「売上が100以上」のレコードに絞ってばらつきを見たい場合は、条件範囲をこう書きます。

 F
1売上
2>=100
=DSTDEV(A1:D8, "売上", F1:F2)

結果は100以上の6件(120、150、180、100、110、105)の標本標準偏差で 約31.27 が返ります。

DSTDEV関数の実践的な使い方・応用例

複数条件(AND条件)でばらつきを求める

「営業部」かつ「売上が100以上」のように、複数の条件をすべて満たすレコードでばらつきを求めたい場合です。

AND条件は、条件範囲の同じ行に複数の見出し・条件値を横に並べて書きます。

 FG
1部署売上
2営業部>=100
=DSTDEV(A1:D8, "売上", F1:G2)

結果は営業部で売上100以上の3件(120、150、180)の標本標準偏差で 30.00 が返ります。営業部の中でも好調な案件だけに絞ったばらつきを確認できます。

OR条件でばらつきを求める

「営業部」または「総務部」のように、どちらかの条件に合うレコードからばらつきを求めたい場合です。

OR条件は、条件値を別の行に書くのがポイントです。

 F
1部署
2営業部
3総務部
=DSTDEV(A1:D8, "売上", F1:F3)

結果は営業部と総務部のすべてのレコード7件分の売上の標本標準偏差 約31.87 が返ります。

同じ行に書くとAND条件、別の行に書くとOR条件。このルールを覚えておきましょう。

部署ごとに売上のばらつきを比較する

同じ条件範囲の部署セルだけを書き換えれば、部署ごとのばらつきをサッと比較できます。

 F
1部署
2営業部
=DSTDEV(A1:D8, "売上", F1:F2)

営業部の売上4件(120、150、180、90)で 約38.73 が返ります。F2セルを「総務部」に書き換えれば、総務部の売上3件(100、110、105)の標本標準偏差 約5.00 が返ります。

同じ売上規模でも、営業部のほうが案件ごとの差が大きく、総務部は安定している。こうした傾向をひと目で比較できるのがDSTDEV関数の便利なところです。

品質データの安定性をチェックする

製造データや検査データなど、条件に合う製品のばらつきを監視したいケースでも活躍します。

 ABC
1製品ライン寸法
2製品A第110.2
3製品A第110.1
4製品A第210.5
5製品A第29.8
6製品B第120.3

「製品A・第1ライン」に絞って寸法のばらつきを確認する場合です。

=DSTDEV(A1:C6, "寸法", E1:F2)

条件範囲(E1:F2)には「製品」「ライン」の見出し+「製品A」「第1」を入れておきます。標本標準偏差を品質管理のしきい値と比較することで、ライン別の安定性評価に使えます。

条件範囲を切り替えて分析を素早く変える

DSTDEV関数の大きな強みは、条件をセルに書いているため、セルの値を書き換えるだけで結果が即座に変わる点です。

たとえば条件範囲のF2セルを「営業部」から「総務部」に書き換えるだけで、DSTDEV関数の結果が自動的に総務部のばらつきに切り替わります。数式を修正する必要はありません。

ドロップダウンリスト(データの入力規則)と組み合わせると、選択するだけで部署別のばらつきをサッと確認できる簡易ダッシュボードが作れますよ。

DSTDEV関数とDSTDEVP関数の使い分け

DSTDEV関数と似た関数にDSTDEVP関数があります。どちらも条件付きで標準偏差を求めますが、「データを標本とみなすか母集団とみなすか」が違います。

比較項目DSTDEV関数DSTDEVP関数
扱いデータは「標本(サンプル)」データは「母集団(全体)」
計算式偏差二乗和を n-1 で割る偏差二乗和を n で割る
結果やや大きめの値(不偏標準偏差)やや小さめの値(母標準偏差)
用途サンプルから全体を推定したいとき対象データが全体そのものであるとき

使い分けのポイント:

  • アンケート結果や品質検査のサンプルなど、一部のデータから全体を推定したい → DSTDEV関数
  • 全社員のデータなど、対象が母集団そのもの → DSTDEVP関数
  • 判断に迷ったらDSTDEV関数(標本とみなす方) が実務では無難

似た関係の関数には、条件なしで全体のばらつきを出すSTDEV関数(標本)とSTDEVP関数(母集団)、条件付きで分散を出すDVAR関数・DVARP関数もあります。

よくあるエラーと対処法

DSTDEV関数で「思った結果にならない」ケースをまとめました。

症状原因対処法
#DIV/0! エラー条件に一致するレコードが1件以下(標本標準偏差は2件以上必要)条件を広げてレコード数を確保する。1件の場合はばらつきの概念が成立しない
#NUM! エラー対象列に数値が2つ以上含まれていない数値が入っている列をフィールドに指定する
結果が0になる対象データの値がすべて同じ(ばらつきがない)そのデータ内では標準偏差=0が正しい結果
結果が想定より大きくなる条件範囲に空白行が含まれている条件範囲を必要な行だけに絞る(空白行は「すべて一致」と解釈される)
#VALUE! エラーフィールドに存在しない列名を指定しているデータベースの見出しと同じ文字列を使う
STDEVと結果が違う条件で絞った対象レコードが違う条件範囲の見出し・条件値を見直して対象レコードを確認する
想定と違う列のばらつきが返るフィールドの列番号を間違えている列番号ではなく見出し名(文字列)で指定するのがおすすめ
条件が部分一致になる条件値にアスタリスクが含まれている完全一致にしたい場合は ="=営業部" のように先頭に = を付ける
文字列の列でエラーになるDSTDEV関数は数値列のばらつきを返す関数文字列の列を指定すると計算対象にならない。数値列を指定すること

TIP

#DIV/0! エラーで悩んだら、まず条件に合うレコード数をDCOUNT関数で確認してみてください。件数が1以下のときは、そもそも標本標準偏差が計算できません。

まとめ

DSTDEV関数は、データベース形式の表から条件に合うデータの標本標準偏差(ばらつきの指標)を求める関数です。

ポイントを整理します。

  • 構文は =DSTDEV(データベース, フィールド, 条件) で、引数は3つ
  • 条件は数式内ではなくセル範囲(条件範囲)に書くのが特徴
  • 条件範囲は「見出し行+条件行」のセットで作る
  • 同じ行に条件を横並びにすればAND条件、別の行にすればOR条件
  • 条件セルの値を変えるだけで分析対象を切り替えられる
  • STDEV関数は全体のばらつき、DSTDEV関数は条件付きのばらつき
  • DSTDEVP関数は母集団前提で、n-1ではなくnで割る
  • 条件に一致するレコード数が2件以上必要(1件以下は #DIV/0! エラー)
  • 対象データの値がすべて同じなら結果は0(ばらつきなし)
  • 結果がおかしいときはまず「レコード数」と「見出しの不一致」をチェック

部署別の売上のばらつき比較や、ライン別の品質安定性チェックで威力を発揮する関数です。まずは簡単な表で =DSTDEV(A1:D8, "売上", F1:F2) から試してみてください。

関連記事

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