Excelで「営業部だけの売上平均を出したい」「特定の商品カテゴリの平均単価を知りたい」と思ったことはありませんか?
データが多くなると、毎回フィルターをかけて手作業で平均を計算するのは手間ですよね。条件を変えるたびにやり直すのも地味に面倒です。
そんなときに便利なのがExcelの DAVERAGE関数 です。条件に一致するレコードだけを抽出して、自動で平均値を計算してくれますよ。
この記事では、DAVERAGE関数の基本的な書き方から応用例まで解説します。AVERAGEIF関数との使い分けやよくあるエラーの対処法、実務での活用パターンもあわせて紹介しますよ。
ExcelのDAVERAGE関数とは?
DAVERAGE関数は「ディーアベレージ」と読みます。Database AVERAGEの略で、データベース形式の表から条件に一致するレコードの平均値を求める関数です。
Excelにはデータベース関数と呼ばれるグループがあります。DAVERAGE関数はそのひとつで、DSUM関数(条件付き合計)・DCOUNT関数(条件付きカウント)・DMAX関数(条件付き最大値)と同じ仲間です。先頭の「D」はDatabase(データベース)を意味していて、引数の取り方も共通しています。
データベース関数の特徴は、条件をセル上に書き出して指定するところです。数式の中に条件を埋め込まないので、条件を変えたいときはセルの値を書き換えるだけで済みますよ。
DAVERAGE関数はExcel 2003以降のすべてのバージョンで使えます。Microsoft 365 / Excel 2021 / Excel for the web でももちろん使えますし、Googleスプレッドシートでも同じ書き方で動くので、覚えておくと活用の幅が広がりますよ。
DAVERAGE関数の書き方(構文と引数)
基本構文
=DAVERAGE(データベース, フィールド, 検索条件)
引数は3つあり、すべて必須です。
引数の説明
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| データベース | 必須 | 見出し行を含むセル範囲(例: A1:D10) |
| フィールド | 必須 | 平均を求めたい列の見出し名(”売上”)または列番号(1始まり) |
| 検索条件 | 必須 | 見出し行+条件値を含むセル範囲 |
データベース には、表全体を見出し行ごと指定します。見出し行がないと正しく動作しないので注意してください。
フィールド には、平均を計算したい列を指定します。指定方法は2通りあります。
| 指定方法 | 書き方の例 | 説明 |
|---|---|---|
| 列の見出し名をダブルクォーテーションで囲む | “売上” | 見出しが「売上」の列を対象にする |
| 列番号を数値で指定する | 3 | 左端から3番目の列を対象にする |
見出し名で指定するほうが数式の意味がわかりやすいので、基本的にはこちらをおすすめしますよ。後から列を入れ替えても影響を受けにくいというメリットもあります。
検索条件 には、見出し行と条件値がセットになったセル範囲を指定します。条件範囲はデータベースの範囲と重ならない場所に作ってください。重なっていると正しい結果が返りません。
DAVERAGE関数の基本的な使い方
ここでは、社員データから特定の部署の平均年齢を求める例で解説します。
サンプルデータ
以下のような社員リストがA1:D7に入っているとします。
| 名前 | 部署 | 年齢 | 売上 |
|---|---|---|---|
| 田中 | 営業部 | 32 | 450 |
| 佐藤 | 総務部 | 28 | 0 |
| 鈴木 | 営業部 | 45 | 620 |
| 高橋 | 開発部 | 35 | 0 |
| 伊藤 | 営業部 | 29 | 380 |
| 渡辺 | 総務部 | 41 | 0 |
条件の設定
F1:F2に条件を入力します。
| F1 | F2 |
|---|---|
| 部署 | 営業部 |
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以上」の平均売上を求めるには、条件範囲を次のように設定します。
| F1 | G1 |
|---|---|
| 部署 | 年齢 |
| 営業部 | >=30 |
=DAVERAGE(A1:D7, "売上", F1:G2)
営業部かつ30歳以上は田中(32歳・450)と鈴木(45歳・620)の2人です。平均売上は (450+620)/2 = 535 になります。
数値条件には >=30 <50 <>0 のような比較演算子も使えます。文字列条件にはワイルドカード( や ?)も指定できますよ。たとえば 田 と書けば「田中」「田村」のように「田」で始まる名前を一括で抽出できます。
OR条件(いずれかの条件を満たす)
いずれかの条件を満たすレコードの平均を求めるには、条件を 別の行 に書きます。
たとえば「営業部」または「総務部」の平均年齢を求めるには、条件範囲を次のように設定します。
| F1 |
|---|
| 部署 |
| 営業部 |
| 総務部 |
=DAVERAGE(A1:D7, "年齢", F1:F3)
営業部(32, 45, 29)と総務部(28, 41)の合計5人です。平均年齢は (32+45+29+28+41)/5 = 35 になります。
AND と OR を組み合わせる
AND条件とOR条件は混在させることもできます。たとえば「営業部で30歳以上」または「総務部で40歳以上」の平均売上を求めたい場合は、次のように指定します。
| F1 | G1 |
|---|---|
| 部署 | 年齢 |
| 営業部 | >=30 |
| 総務部 | >=40 |
同じ行に並んだ条件はAND、行が変わるとORになります。「同じ行に書けばAND、別の行に書けばOR」と覚えておけば、複雑な条件でも迷いませんよ。
実務での活用パターン
DAVERAGE関数は、条件を頻繁に切り替える集計と相性が抜群です。ここでは実務で使いやすいパターンを3つ紹介します。
パターン1:ドロップダウンと組み合わせて集計切替
部署名や商品カテゴリをドロップダウン(データの入力規則)で選べるようにしておき、その値をDAVERAGE関数の検索条件として参照します。
=DAVERAGE(A1:D100, "売上", F1:F2)
F2セルにドロップダウンを設定しておけば、選んだ部署の平均売上が即座に切り替わります。経営層向けの簡易ダッシュボードを作るときに便利ですよ。
パターン2:複数指標を並べて1画面サマリー
DAVERAGE関数はDSUM関数・DCOUNT関数などと検索条件を共有できます。同じ条件範囲を参照すれば、合計・件数・平均を一度に算出できますよ。
| 指標 | 数式 |
|---|---|
| 合計売上 | =DSUM(A1:D7, "売上", F1:F2) |
| 件数 | =DCOUNT(A1:D7, "売上", F1:F2) |
| 平均売上 | =DAVERAGE(A1:D7, "売上", F1:F2) |
| 最大売上 | =DMAX(A1:D7, "売上", F1:F2) |
条件を切り替えるだけで、4つの指標が同期して更新されます。月次レポートや営業会議の資料作りでよく使うパターンです。
パターン3:期間を絞った平均
日付列に対して >=2025/4/1 <2025/7/1 のような条件を指定すれば、特定の期間だけを対象にした平均が出せます。条件を同じ行に並べれば「2025年第2四半期」のような範囲指定になりますよ。
| 日付 | 日付 |
|---|---|
| >=2025/4/1 | <2025/7/1 |
同じ見出し(ここでは「日付」)を2列に並べる書き方も可能です。「以上 かつ 未満」のように上限と下限を同時に指定したいときの定番テクニックです。
DAVERAGE関数でよくあるエラーと対処法
#VALUE! エラー
フィールド名が間違っている場合に発生します。
- 原因: フィールドに指定した見出し名がデータベースの見出し行に存在しない
- 対処法: ダブルクォーテーションの中の文字列が、データベースの見出し行と完全に一致しているか確認してください。スペースの有無や全角半角の違いにも注意しましょう
フィールドを列番号で指定しているときは、番号が列数の範囲内に収まっているかも確認してみてください。
#DIV/0! エラー
条件に一致するレコードがひとつもない場合に発生します。
- 原因: 検索条件に該当するデータが存在しない
- 対処法: 条件の値が正しいか確認してください。文字列の場合は全角・半角やスペースの違いがないかチェックしましょう
該当データがないケースが想定される場合は、IFERROR関数で囲んでおくと安心です。
=IFERROR(DAVERAGE(A1:D7, "売上", F1:F2), "該当なし")
#NAME? エラー
数式の入力ミスで発生します。
- 原因: 関数名のスペルミス、またはフィールド名のダブルクォーテーション忘れ
- 対処法: 「DAVERAGE」のスペルを確認してください。フィールド名を文字列で指定する場合は
"売上"のようにダブルクォーテーションで囲む必要があります
結果が想定と違うとき
エラーは出ないのに数値がおかしい場合は、条件範囲の指定ミスがほとんどです。
- 条件範囲に 空白の行 が含まれていないか確認してください。空白行があると条件が緩く解釈されて、すべてのレコードが対象になってしまいます
- 条件範囲とデータベース範囲が 重なっていない か確認してください
- 見出し名がデータベースとぴったり一致しているか確認してください(半角スペースが混じっているケースが多いです)
DAVERAGE関数とAVERAGEIF/AVERAGEIFS関数の違い・使い分け
Excelで条件付きの平均を求める方法は、DAVERAGE関数のほかにAVERAGEIF関数とAVERAGEIFS関数があります。どれを使えばいいか迷う方も多いので、違いを整理しておきましょう。
| 比較項目 | DAVERAGE関数 | AVERAGEIF関数 | AVERAGEIFS関数 |
|---|---|---|---|
| 条件の指定方法 | セル範囲(条件表) | 数式内に直接 | 数式内に直接 |
| 条件の個数 | 複数(AND/OR) | 1つだけ | 複数(ANDのみ) |
| OR条件 | 行を分けて表現可能 | 不可(複数数式で合算) | 不可 |
| 条件の変更 | セルを書き換えるだけ | 数式を編集する | 数式を編集する |
| 向いている場面 | 条件を頻繁に変える分析 | 条件1つの単純集計 | 複数AND条件の固定集計 |
ざっくりまとめると次のような使い分けになります。
DAVERAGE関数が向いているケース:
- 条件をユーザーが自由に切り替えたいとき(ドロップダウン連動など)
- AND条件とOR条件を組み合わせた複雑な抽出をしたいとき
- データベース関数ファミリーと並べて、複数指標を同じ条件で集計したいとき
AVERAGEIF関数が向いているケース:
- 条件が1つだけでシンプル、かつ固定されているとき
- 条件表を別に作りたくないとき
- 数式単体で完結させたいとき
AVERAGEIFS関数が向いているケース:
- AND条件が複数あるが、条件は固定でいいとき
- ピボットテーブルを使うほどではない、ちょっとした条件集計
OR条件をAVERAGEIF/AVERAGEIFS関数で表現するのは難しく、結局DAVERAGE関数のほうがシンプルになります。条件の柔軟さで選ぶならDAVERAGE、数式の手軽さで選ぶならAVERAGEIF系、と覚えておくと迷いませんよ。
同じデータベース関数ファミリーのDGET関数は条件に一致する単一の値を取得し、DCOUNTA関数は空白でないセルの個数を数えます。DPRODUCT関数は条件付きの積を求めます。用途に応じて使い分けてみてください。
DAVERAGE関数についてのよくある質問
Q1. DAVERAGE関数で空白セルや0は平均に含まれますか?
A. 平均を求める列の 空白セルは無視されます が、0は1件のデータとしてカウントされて分母に含まれます。たとえば「売上が0円のレコード」も平均計算の対象になるので、結果が想定より低く出ることがあります。
0を除外したい場合は、検索条件に <>0 を追加してください。条件範囲に「売上」列を追加して <>0 を指定すれば、0のレコードを除外できますよ。
Q2. DAVERAGE関数でワイルドカードや部分一致を使えますか?
A. はい、文字列条件には (任意の文字列)と ?(任意の1文字)が使えます。たとえば検索条件に 田 と書けば、「田中」「田村」など「田」で始まる名前のレコードがすべて対象になります。
*部 と書けば「営業部」「総務部」など「部」で終わる文字列にマッチします。商品コードの一部だけで抽出したいときにも便利ですよ。
Q3. DAVERAGE関数とピボットテーブル、どちらを使うべきですか?
A. 集計軸が固定なら DAVERAGE 関数、集計軸を頻繁に組み替えるならピボットテーブル が向いています。
DAVERAGE関数は数式ベースなので、レイアウトを自分で組めて他のセルと連携しやすいです。ダッシュボード形式で複数指標を並べたいときに重宝します。
一方ピボットテーブルは、行・列・値を自由にドラッグして集計軸を切り替えられます。データを多角的に眺めたい分析フェーズには向いていますよ。ただし元データが更新されたら手動で「更新」が必要です。DAVERAGE関数はセルを変更すれば自動で再計算される点が違いますね。
まとめ
この記事では、ExcelのDAVERAGE関数の使い方を解説しました。
- DAVERAGE関数は、データベース形式の表から条件に一致するレコードの平均値を求める関数
- 引数は「データベース」「フィールド」「検索条件」の3つで、すべて必須
- AND条件は同じ行、OR条件は別の行に条件を書く(組み合わせもOK)
- 条件をセルで管理するので、値を変えるだけで集計対象を切り替えられる
- シンプルな条件付き平均にはAVERAGEIF関数、複数AND条件にはAVERAGEIFS関数、条件を柔軟に変えたい場面にはDAVERAGE関数が向いている
- DSUM・DCOUNT・DMAXなど他のデータベース関数と検索条件を共有できる
条件付きの平均計算は実務でよく使う場面です。ぜひDAVERAGE関数を活用して、効率的にデータ分析をしてみてくださいね。