「営業部の、4月の売上平均を出したい」と思ったことはありませんか。条件が1つならAVERAGEIF関数で対応できます。でも、条件が2つ以上になると対応できません。
そんなときに使うのがAVERAGEIFS関数です。条件範囲と検索条件のペアを並べるだけで、すべての条件を満たすセルの平均値を返してくれます。
この記事では、AVERAGEIFS関数の基本から実務での活用パターンまで解説します。日付範囲の集計やエラー対処法もカバーしているので、ぜひ参考にしてください。
この記事は次のような人におすすめ
- 複数の条件をすべて満たすセルの平均を求めたい
- 「部署×期間」や「商品×評価」のように絞り込んで平均を出したい
- AVERAGEIF関数との違いがよくわからない
- SUMIFS関数やCOUNTIFS関数との使い分けを整理したい
AVERAGEIFS関数とは?
AVERAGEIFS関数(読み方: アベレージ・イフ・エス)は、複数の条件をすべて満たすセルの平均値を求める関数です。名前は「AVERAGE(平均)」+「IF(もし)」+「S(複数形)」の組み合わせ。「複数の”もし”で平均する」という意味になっています。
たとえば、こんな場面で活躍します。
- 「営業部」の「4月」の売上平均を出す
- 「80点以上」かつ「出席回数5回以上」の受講者で平均点を求める
- 「東京支店」の「2025年」の月次売上で平均を出す
条件が1つだけならAVERAGEIF関数で十分です。条件が2つ以上になるとAVERAGEIFS関数の出番です。条件はすべてAND条件(かつ)で評価されます。
対応バージョン
AVERAGEIFS関数はExcel 2007以降のすべてのバージョン、Microsoft 365、Googleスプレッドシートで使用できます。
AVERAGEIFS関数の書き方(構文と引数)
基本構文
=AVERAGEIFS(平均対象範囲, 条件範囲1, 条件1, [条件範囲2, 条件2], ...)
AVERAGEIF関数と引数の順番が違うのがポイントです。AVERAGEIFS関数では平均対象範囲が最初に来ます。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 平均対象範囲 | 必須 | 実際に平均を計算するセル範囲 |
| 条件範囲1 | 必須 | 1つ目の条件を判定するセル範囲 |
| 条件1 | 必須 | 1つ目の検索条件。文字列・数値・セル参照・比較演算子が使える |
| 条件範囲2, 条件2, … | 任意 | 2つ目以降の条件。最大127ペアまで指定可能 |
AVERAGEIF関数との引数順の違い
AVERAGEIF関数は「範囲 → 条件 → 平均対象範囲」の順ですが、AVERAGEIFS関数は「平均対象範囲 → 条件範囲1 → 条件1 → …」の順です。平均対象範囲の位置が逆なので、書き間違えに注意してください。
条件範囲と平均対象範囲は行数・列数を揃える必要があります。サイズが異なると#VALUE!エラーになります。
AVERAGEIFS関数の基本的な使い方
ここからは実際にAVERAGEIFS関数を使ってみましょう。以下のような売上データを例に解説していきます。
| A列(部署) | B列(月) | C列(売上) | |
|---|---|---|---|
| 2行目 | 営業部 | 4月 | 350,000 |
| 3行目 | 営業部 | 5月 | 420,000 |
| 4行目 | 総務部 | 4月 | 180,000 |
| 5行目 | 総務部 | 5月 | 200,000 |
| 6行目 | 営業部 | 4月 | 310,000 |
2つの条件で平均を求める
「営業部」の「4月」の売上平均を求めたい場合はこう書きます。
=AVERAGEIFS(C2:C10, A2:A10, "営業部", B2:B10, "4月")
- 平均対象範囲: C2:C10(売上金額)
- 条件範囲1: A2:A10(部署名)→ 条件1: “営業部”
- 条件範囲2: B2:B10(月)→ 条件2: “4月”
A列が「営業部」かつB列が「4月」の行だけが対象です。上の表でいえば、350,000と310,000の平均で330,000が返ります。
比較演算子を使って数値条件を指定する
「売上が200,000以上」かつ「営業部」の平均を求めたいときは、比較演算子を使います。
=AVERAGEIFS(C2:C10, A2:A10, "営業部", C2:C10, ">=200000")
比較演算子を使う場合は、条件全体をダブルクォーテーション(”)で囲むのがポイントです。
使える比較演算子をまとめておきます。
| 演算子 | 意味 | 使用例 |
|---|---|---|
| > | より大きい | “>100000” |
| < | より小さい | “<50000" |
| >= | 以上 | “>=200000” |
| <= | 以下 | “<=500000" |
| <> | 等しくない | “<>0″ |
セル参照で条件を動的に変える
条件を直接数式に書く代わりに、セル参照を使うと便利です。E1セルに部署名、F1セルに月を入力しておきます。
=AVERAGEIFS(C2:C10, A2:A10, E1, B2:B10, F1)
E1とF1の値を変えるだけで計算結果が切り替わります。レポート作成やダッシュボードの作成に重宝しますよ。
AVERAGEIFS関数の実践的な使い方・応用例
基本がわかったところで、実務でよく使うパターンを見ていきましょう。
日付範囲を指定して平均を求める
「2025年4月1日から6月30日まで」のように期間を絞りたいときは、条件を2つ使います。「以上」と「以下」を指定するのがコツです。
=AVERAGEIFS(C2:C100, B2:B100, ">="&DATE(2025,4,1), B2:B100, "<="&DATE(2025,6,30))
ポイントは、DATE関数と&演算子で条件を組み立てることです。">=2025/4/1"と直接書くとうまく動かないことがあるので、DATE関数を使うのが確実です。
同じ条件範囲(B2:B100)に対して2つの条件を指定できるのも、AVERAGEIFS関数の便利な点です。
ワイルドカードで部分一致の条件を指定する
「東京」を含むすべての支店の売上平均を出したいときは、ワイルドカード * を使います。
=AVERAGEIFS(C2:C50, A2:A50, "*東京*", B2:B50, "4月")
*(アスタリスク)は「任意の文字列」を表します。「東京支店」「東京第二支店」など、「東京」を含むすべてのデータが対象になります。
もうひとつ、?(クエスチョンマーク)は「任意の1文字」を表すワイルドカードです。
| ワイルドカード | 意味 | 使用例 |
|---|---|---|
| * | 任意の文字列 | “東京“ |
| ? | 任意の1文字 | “??支店” |
| ~ | エスケープ(*や?自体を検索) | “~*含む” |
不一致条件()で特定データを除外する
「総務部以外」の「4月」の平均を出したい場合は、<>(等しくない)を使います。
=AVERAGEIFS(C2:C50, A2:A50, "<>総務部", B2:B50, "4月")
特定の部署やカテゴリを除外して集計したいときに便利なパターンです。
0を除外して正確な平均を求める
データの中に「未入力の代わりに0が入っている」ケースってありますよね。0も計算に含めると平均が下がってしまいます。
=AVERAGEIFS(C2:C50, A2:A50, "営業部", C2:C50, "<>0")
平均対象範囲と同じ範囲(C2:C50)を条件範囲にして、"<>0"と指定するのがコツです。
よくあるエラーと対処法
AVERAGEIFS関数でエラーが出たら、以下の表を参考に対処してみてください。
| エラー | 原因 | 対処法 |
|---|---|---|
| #DIV/0! | 条件に一致するセルが1つもない | 検索条件のスペルミス・余分なスペースを確認。IFERROR関数で囲む |
| #VALUE! | 条件範囲と平均対象範囲のサイズが不一致 | 各範囲の行数・列数を揃える |
| #VALUE! | 検索条件が255文字を超えている | 条件を短くするか、別の方法で対応 |
| 予想より低い値 | 0が平均に含まれている | "<>0" 条件を追加して0を除外 |
| 予想と違う値 | 全角・半角、大文字・小文字の不一致 | ASC関数で統一するか、条件側の表記を確認 |
| 予想と違う値 | 日付条件が正しく評価されていない | ">=2025/4/1" ではなく ">="&DATE(2025,4,1) で指定 |
#DIV/0! エラーをIFERRORで防ぐ
条件に一致するデータがないと、AVERAGEIFS関数は#DIV/0!エラーを返します。レポートにエラーが出るのは避けたいですよね。
IFERROR関数で囲んでおけば安心です。
=IFERROR(AVERAGEIFS(C2:C50, A2:A50, "営業部", B2:B50, "4月"), "該当データなし")
エラーの代わりに「該当データなし」と表示されるので、レポートの見栄えもよくなります。
似た関数との違い・使い分け
AVERAGEIFS関数と似た働きをする関数を比較表でまとめました。
| 関数 | 目的 | 条件の数 | 引数の順番 |
|---|---|---|---|
| AVERAGEIF | 条件付き平均 | 1つ | 範囲 → 条件 → 平均対象範囲 |
| AVERAGEIFS | 複数条件付き平均 | 最大127個 | 平均対象範囲 → 条件範囲 → 条件 |
| SUMIFS | 複数条件付き合計 | 最大127個 | 合計対象範囲 → 条件範囲 → 条件 |
| COUNTIFS | 複数条件付きカウント | 最大127個 | 条件範囲 → 条件(対象範囲なし) |
| AVERAGE | 全体の平均 | なし | 数値 or 範囲 |
AVERAGEIF関数との使い分け
条件が1つだけならAVERAGEIF関数、2つ以上ならAVERAGEIFS関数を使います。
注意したいのが引数の順番です。AVERAGEIF関数は「範囲が最初」。AVERAGEIFS関数は「平均対象範囲が最初」です。書き間違えやすいので意識しておきましょう。
SUMIFS・COUNTIFS関数との関係
SUMIFS・COUNTIFS・AVERAGEIFSは「複数条件シリーズ」です。構文がほぼ同じで、違いは「結果として何を返すか」だけです。
構文に慣れてしまえば、目的に応じて関数名を差し替えるだけで対応できますよ。
まとめ
この記事では、ExcelのAVERAGEIFS関数について基本から応用まで解説しました。
ポイントをおさらいしておきましょう。
- AVERAGEIFS関数は、複数の条件をすべて満たすセルの平均を求める関数
- 引数の順番は「平均対象範囲 → 条件範囲1 → 条件1 → …」(AVERAGEIFと逆)
- 日付条件はDATE関数と
&演算子で組み立てるのが確実 - ワイルドカード(
*?)や比較演算子(>=<>)も条件に使える - 条件に一致するデータがないと #DIV/0! エラー → IFERROR関数で対策
- 条件が1つだけならAVERAGEIF関数、合計ならSUMIFS関数、個数ならCOUNTIFS関数
AVERAGEIFS関数を使えるようになると、実務の集計がぐっと楽になります。まずは部署×月の平均計算から試してみてください。
