ADVERTISEMENT

【Googleスプレッドシート】DAVERAGE関数でデータベース平均!複数条件の平均算出

【Googleスプレッドシート】DAVERAGE関数でデータベース平均!複数条件の平均算出
🛡️ 超解決

DAVERAGE関数は、データベース形式の表から条件に合致するレコードの平均値を計算する関数です。複数の条件を同時に指定できるため、売上データから特定の商品カテゴリと期間を絞り込んだ平均売上などを簡単に求められます。しかし、条件範囲の設定方法が独特で、初めて使う方には少しわかりにくいかもしれません。この記事では、DAVERAGE関数の基本構文から複数条件の設定手順までを具体例を交えて解説します。これを読めば、複雑な条件付き平均も効率的に算出できるようになります。

【要点】DAVERAGE関数で複数条件の平均を効率的に算出

  • DAVERAGE関数の基本構文: =DAVERAGE(データベース, フィールド, 条件範囲) でデータベースから条件に合致するレコードの平均を計算します。
  • 条件範囲の作り方: 見出し行と条件値を記入したセルをセットで指定し、列ラベルがデータベースの列名と完全に一致している必要があります。
  • 複数条件(AND)の指定: 条件範囲の同じ行に複数の条件を並べると、すべての条件を満たすレコードの平均を求めます。
  • 複数条件(OR)の指定: 条件範囲の異なる行に条件を並べると、いずれかの条件を満たすレコードの平均を計算します。

ADVERTISEMENT

DAVERAGE関数とは?データベースから条件付きで平均を求める関数

DAVERAGE関数は、D関数(データベース関数)の一つで、指定した条件に一致するレコードの平均値を返します。データベース関数は、特定の列をフィールドとして指定し、条件範囲に基づいて集計を行います。基本構文は次のとおりです。

=DAVERAGE(データベース, フィールド, 条件範囲)

  • データベース: 集計対象となる表全体(見出し行を含む)のセル範囲を指定します。
  • フィールド: 平均を計算したい列の列ラベル(文字列)または列番号を指定します。文字列で指定する場合は、データベースの見出しと完全に一致する必要があります。
  • 条件範囲: 条件を指定するセル範囲です。少なくとも1行の見出し行と、その下に条件値を記入した行が必要です。

この関数の利点は、複数の条件を簡単に組み合わせられる点です。条件範囲を工夫することでAND条件やOR条件を自由に設定できます。また、データベースに新しい行が追加されても、関数が参照する範囲が適切に設定されていれば自動的に集計対象に含まれます。

DAVERAGE関数の基本操作手順

まずは、単一条件でDAVERAGE関数を使う基本的な手順を説明します。以下のような売上データがあるとします。

例:
A列:商品名 B列:カテゴリ C列:売上
1行目:見出し(商品名、カテゴリ、売上)
2行目以下:データ

  1. 条件範囲を作成する
    シートの空いているセルに、条件を指定するための領域を用意します。例えば、E1セルに「カテゴリ」、E2セルに「飲料」と入力します。これで「カテゴリが飲料」という条件になります。
  2. DAVERAGE関数を入力する
    平均値を表示したいセルに、次のように入力します。
    =DAVERAGE(A1:C100, “売上”, E1:E2)
    ここではデータベースをA1:C100、フィールドを「売上」、条件範囲をE1:E2と指定しています。
  3. 結果を確認する
    関数が正常に入力されると、条件に合致するレコードの売上平均が計算されます。エラーが出る場合は、条件範囲の見出しがデータベースの見出しと完全に一致しているか確認してください。

これが最もシンプルな使い方です。フィールドは列番号(3など)で指定することもできますが、列ラベルで指定したほうがわかりやすいでしょう。

複数条件を指定して平均を算出する手順

複数の条件を組み合わせる場合、条件範囲の書き方でAND条件とOR条件を使い分けます。以下のデータで解説します。

データベース:A1:C100(商品名、カテゴリ、売上)
例:商品名(A)、カテゴリ(B)、売上(C)

AND条件(すべての条件を満たす)

AND条件では、条件範囲の同じ行に複数の条件を並べます。例えば、「カテゴリが飲料」かつ「売上が100以上」のレコードの平均を求める場合。

  1. 条件範囲を設定する
    E1セルに「カテゴリ」、F1セルに「売上」という見出しを入力します。E2セルに「飲料」、F2セルに「>=100」と入力します。これで2つの条件がANDで結合されます。
  2. DAVERAGE関数を入力する
    =DAVERAGE(A1:C100, “売上”, E1:F2)
    条件範囲はE1:F2と指定します。これで、カテゴリが飲料かつ売上が100以上のレコードだけが平均の対象になります。

OR条件(いずれかの条件を満たす)

OR条件では、条件範囲の異なる行にそれぞれの条件を記述します。例えば、「カテゴリが飲料」または「カテゴリが食品」の平均を求める場合。

  1. 条件範囲を設定する
    E1セルに「カテゴリ」と入力し、E2セルに「飲料」、E3セルに「食品」と入力します。条件範囲はE1:E3とします。同じ列に複数の行で条件を並べると、それらはOR条件になります。
  2. DAVERAGE関数を入力する
    =DAVERAGE(A1:C100, “売上”, E1:E3)
    この関数では、カテゴリが「飲料」または「食品」のレコードの売上平均を計算します。

ANDとORの組み合わせ

さらに複雑な条件として、ANDとORを組み合わせることも可能です。例えば、「カテゴリが飲料」かつ(「売上が100以上」または「売上が50以下」)のような条件です。この場合は条件範囲を工夫します。

  1. 条件範囲を設定する
    E1セルに「カテゴリ」、F1セルに「売上」と見出しを入力します。E2セルに「飲料」、F2セルに「>=100」と入力し、E3セルは空白、F3セルに「<=50」と入力します。この場合、同じ行にある条件はAND、異なる行はORとして解釈されます。つまり、条件範囲E1:F3は「(カテゴリが飲料かつ売上が100以上) OR (売上が50以下)」となります(ただしカテゴリが空白の行はカテゴリ条件なしとみなされる)。正確にORを指定するには、各条件を独立した行に書く必要があります。
  2. DAVERAGE関数を入力する
    =DAVERAGE(A1:C100, “売上”, E1:F3)
    この関数では、指定した条件のいずれかに該当するレコードの平均を計算します。

ADVERTISEMENT

DAVERAGE関数を使う際の注意点とよくあるトラブル

条件範囲の列ラベルがデータベースと一致しない

条件範囲の見出し行は、データベースの列ラベルと完全に同一でなければなりません。スペルやスペース、大文字小文字も一致させる必要があります。一致しない場合、関数は#VALUE!エラーを返すか、条件が正しく認識されず意図しない結果になります。例えば、データベースの列が「商品名」で条件範囲で「商品 名」とスペースが入っているとエラーになります。

条件範囲に空白セルがあると予期しない結果になる

条件範囲内の空白セルは、条件なしとして扱われます。つまり、その列の条件は無視されます。意図的に空白にする場合は問題ありませんが、誤って空白が混ざると、思ったより多くのレコードが集計対象になってしまいます。条件範囲は必要最小限のセルのみ指定することをおすすめします。

データベース範囲に空白行や見出し行の重複がある

データベース範囲には、空白行が含まれていると正しく計算されない場合があります。DAVERAGE関数は、データベース範囲内の空白行は無視しますが、範囲内に空のセルがあるとその列のデータが欠けているとみなされ、その行は集計対象外になることがあります。また、見出し行が複数行あると、2行目以降もデータとして扱われて平均値がずれる原因になります。データベースは必ず1行の見出し行と、その下に続くデータ行で構成するようにしましょう。

文字列と数値のデータ型の不一致

条件範囲で比較演算子(>=, <=, <>など)を使う場合、条件値が文字列として認識されないように注意します。例えば、条件値が数値の場合はセルの書式を「数値」にしておき、文字列として「>=100」と入力するときは、数値と比較するため問題なく動作します。ただし、セルに「>=100」と入力すると、通常は文字列として認識されますが、DAVERAGE関数はそれを条件式として解釈します。問題が起きる場合は、セルの書式を「標準」にしてみてください。

条件範囲にフィルタや並べ替えが適用されている

条件範囲に対してフィルタや並べ替えを行っても、DAVERAGE関数の動作には影響しません。関数は指定されたセル範囲の値を直接参照するため、表示上の並び替えは無視されます。ただし、条件範囲内の値が変更された場合は、関数が再計算されて結果が更新されます。

DAVERAGEと他の平均関数の違い

DAVERAGE関数と似た機能を持つ関数に、AVERAGEIFやAVERAGEIFSがあります。それぞれの特徴を比較表にまとめました。

関数名 条件数 条件の指定方法 特徴
AVERAGEIF 1つ 条件範囲と平均範囲を別々に指定 単一条件に特化しており、シンプル
AVERAGEIFS 複数(すべてAND) 平均範囲の後に条件範囲1, 条件1, 条件範囲2, 条件2… 複数のAND条件を簡単に指定可能。OR条件は非対応
DAVERAGE 複数(AND・OR自由) 条件範囲を見出し付きで別途作成 OR条件も扱え、条件範囲の自由度が高い。データベース全体を参照

AVERAGEIFSは複数の条件をすべてANDで結合するのに対し、DAVERAGEは条件範囲のレイアウトでANDとORを自由に使い分けられます。また、DAVERAGEはデータベース関数の仲間であり、DSUMやDCOUNTなどと同じ構文で使えるため、一度覚えると他の集計にも応用できます。

まとめ

DAVERAGE関数を使うと、データベースから複雑な条件を指定して平均値を簡単に算出できます。条件範囲の作り方さえ理解すれば、AND条件やOR条件を自在に組み合わせられるのが最大のメリットです。また、同じD関数シリーズ(DSUM、DCOUNT、DMAXなど)も同様の構文で使用できるため、データ集計の幅が広がります。まずはシンプルな条件から試して、徐々に複数条件に挑戦してみてください。実際に手を動かすことで、DAVERAGE関数の便利さを実感できるでしょう。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。