ExcelのDAVERAGE関数の使い方|条件に一致するデータの平均値を求める

スポンサーリンク

Excelで「営業部だけの売上平均を出したい」「特定の商品カテゴリの平均単価を知りたい」と思ったことはありませんか?

データが多くなると、手作業でフィルターをかけてから平均を計算するのは手間がかかりますよね。条件を変えるたびにやり直すのも面倒です。

そんなときに便利なのがExcelの DAVERAGE関数 です。条件に一致するレコードだけを抽出して、自動で平均値を計算してくれますよ。

この記事では、DAVERAGE関数の基本的な書き方から応用例まで解説します。よくあるエラーの対処法や、似た関数との使い分けもあわせて紹介しますよ。

ExcelのDAVERAGE関数とは?

DAVERAGE関数は「ディーアベレージ」と読みます。Database AVERAGEの略で、データベース形式の表から条件に一致するレコードの平均値を求める関数です。

Excelにはデータベース関数と呼ばれるグループがあります。DAVERAGE関数はそのひとつで、DCOUNT関数(条件付きカウント)やDMAX関数(条件付き最大値)と同じ仲間です。

データベース関数の特徴は、条件をセル上に書き出して指定するところです。数式の中に条件を埋め込まないので、条件を変えたいときはセルの値を書き換えるだけで済みますよ。

DAVERAGE関数はExcel 2003以降のすべてのバージョンで使えます。Googleスプレッドシートでも同じ書き方で使えるので、覚えておくと活用の幅が広がりますよ。

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

基本構文

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

引数は3つあり、すべて必須です。

引数の説明

引数必須/省略可説明
データベース必須見出し行を含むセル範囲(例: A1:D10)
フィールド必須平均を求めたい列の見出し名(”売上”)または列番号(1始まり)
検索条件必須見出し行+条件値を含むセル範囲

データベース には、表全体を見出し行ごと指定します。見出し行がないと正しく動作しないので注意してください。

フィールド には、平均を計算したい列を指定します。指定方法は2通りあります。

指定方法書き方の例説明
列の見出し名をダブルクォーテーションで囲む“売上”見出しが「売上」の列を対象にする
列番号を数値で指定する3左端から3番目の列を対象にする

見出し名で指定するほうが数式の意味がわかりやすいので、基本的にはこちらをおすすめしますよ。

検索条件 には、見出し行と条件値がセットになったセル範囲を指定します。条件範囲はデータベースの範囲と重ならない場所に作ってください。重なっていると正しい結果が返りません。

DAVERAGE関数の基本的な使い方

ここでは、社員データから特定の部署の平均年齢を求める例で解説します。

サンプルデータ

以下のような社員リストがA1:D7に入っているとします。

名前部署年齢売上
田中営業部32450
佐藤総務部280
鈴木営業部45620
高橋開発部350
伊藤営業部29380
渡辺総務部410

条件の設定

F1:F2に条件を入力します。

F1F2
部署営業部

F1にはデータベースの見出しと同じ文字列を入力します。F2には抽出条件の値を入力します。

数式の入力

営業部の平均年齢を求める数式は次のとおりです。

=DAVERAGE(A1:D7, "年齢", F1:F2)

この数式は「A1:D7のデータベースから、部署が営業部のレコードを探して、年齢の列の平均を返す」という意味です。

営業部のメンバーは田中(32歳)、鈴木(45歳)、伊藤(29歳)の3人です。平均は (32+45+29)/3 = 35.33… になります。

条件を「総務部」に変えたいときは、F2のセルを書き換えるだけでOKです。数式を修正する必要はありませんよ。

DAVERAGE関数の応用:複数条件やOR条件で平均を求める

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

複数の条件をすべて満たすレコードの平均を求めるには、条件を 同じ行 に並べます。

たとえば「営業部」かつ「年齢が30以上」の平均売上を求めるには、条件範囲を次のように設定します。

F1G1
部署年齢
営業部>=30
=DAVERAGE(A1:D7, "売上", F1:G2)

営業部かつ30歳以上は田中(32歳・450)と鈴木(45歳・620)の2人です。平均売上は (450+620)/2 = 535 になります。

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

いずれかの条件を満たすレコードの平均を求めるには、条件を 別の行 に書きます。

たとえば「営業部」または「総務部」の平均年齢を求めるには、条件範囲を次のように設定します。

F1
部署
営業部
総務部
=DAVERAGE(A1:D7, "年齢", F1:F3)

営業部(32, 45, 29)と総務部(28, 41)の合計5人です。平均年齢は (32+45+29+28+41)/5 = 35 になります。

AND条件とOR条件の使い分けがデータベース関数のポイントです。「同じ行に書けばAND、別の行に書けばOR」と覚えておけば迷いませんよ。

DAVERAGE関数でよくあるエラーと対処法

#VALUE! エラー

フィールド名が間違っている場合に発生します。

  • 原因: フィールドに指定した見出し名がデータベースの見出し行に存在しない
  • 対処法: ダブルクォーテーションの中の文字列が、データベースの見出し行と完全に一致しているか確認してください。スペースの有無や全角半角の違いにも注意しましょう

フィールドを列番号で指定しているときは、番号が列数の範囲内に収まっているかも確認してみてください。

#DIV/0! エラー

条件に一致するレコードがひとつもない場合に発生します。

  • 原因: 検索条件に該当するデータが存在しない
  • 対処法: 条件の値が正しいか確認してください。文字列の場合は全角・半角やスペースの違いがないかチェックしましょう

該当データがないケースが想定される場合は、IFERROR関数で囲んでおくと安心です。

=IFERROR(DAVERAGE(A1:D7, "売上", F1:F2), "該当なし")

#NAME? エラー

数式の入力ミスで発生します。

  • 原因: 関数名のスペルミス、またはフィールド名のダブルクォーテーション忘れ
  • 対処法: 「DAVERAGE」のスペルを確認してください。フィールド名を文字列で指定する場合は "売上" のようにダブルクォーテーションで囲む必要があります

DAVERAGE関数とAVERAGEIF関数の違い・使い分け

Excelで条件付きの平均を求める方法は、DAVERAGE関数のほかにAVERAGEIF関数があります。どちらを使えばいいか迷う方も多いので、違いを整理しておきましょう。

比較項目DAVERAGE関数AVERAGEIF関数
条件の指定方法セル範囲で指定(条件表を作る)数式の中に直接書く
複数条件AND/OR条件を行の並びで表現AVERAGEIFS関数を使う
条件の変更セルの値を書き換えるだけ数式を編集する必要がある
向いている場面条件を頻繁に変える分析条件が固定の集計

DAVERAGE関数が向いているケース:

  • 条件をユーザーが自由に切り替えたいとき
  • AND条件とOR条件を組み合わせた複雑な抽出をしたいとき
  • データベース関数ファミリー(DCOUNTDMAXDMINなど)と一緒に使うとき

AVERAGEIF関数が向いているケース:

  • 条件がシンプルで固定されているとき
  • 条件表を別に作りたくないとき

同じデータベース関数ファミリーのDGET関数は条件に一致する単一の値を取得し、DCOUNTA関数は空白でないセルの個数を数えます。DPRODUCT関数は条件付きの積を求めます。用途に応じて使い分けてみてください。

まとめ

この記事では、ExcelのDAVERAGE関数の使い方を解説しました。

  • DAVERAGE関数は、データベース形式の表から条件に一致するレコードの平均値を求める関数
  • 引数は「データベース」「フィールド」「検索条件」の3つで、すべて必須
  • AND条件は同じ行、OR条件は別の行に条件を書く
  • 条件をセルで管理するので、値を変えるだけで集計対象を切り替えられる
  • シンプルな条件付き平均にはAVERAGEIF関数、条件を柔軟に変えたい場面にはDAVERAGE関数が向いている

条件付きの平均計算は実務でよく使う場面です。ぜひDAVERAGE関数を活用して、効率的にデータ分析をしてみてくださいね。

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