「部門ごとの平均売上を出したい」「特定の条件を満たすデータだけの平均を求めたい」「複数の条件を組み合わせて集計したい」——Excelでこのような集計をするときに役立つのがAVERAGE・AVERAGEIF・AVERAGEIFS関数です。
AVERAGE関数はExcelの最も基本的な統計関数のひとつですが、実務では「全体の平均ではなく条件を絞った平均が必要」という場面が頻繁に出てきます。そこで登場するのがAVERAGEIF(1条件)とAVERAGEIFS(複数条件)です。これら3関数の使い分けと構文を正しく理解することで、部門別・商品別・期間別など、さまざまな切り口で集計できるようになります。また、MOS Excel 365試験でも条件付き集計関数は必ず出題される分野です。本記事では、基本構文・条件の書き方・複数条件の組み合わせ・エラー対処・業務シナリオ別の活用パターンを、MOS試験の攻略法を含めて2026年最新版で徹底解説します。
「Excelの平均集計を効率化したい」「MOS試験のAVERAGEIF問題で確実に得点したい」という方は、ぜひ最後までお読みください。
AVERAGE関数の基本:全体平均の求め方と空白・0の扱い
AVERAGE関数は、指定した範囲に含まれる数値の算術平均(合計÷個数)を求める関数です。Excelで最も利用頻度の高い統計関数のひとつで、MOS試験でも基本問題として必ず出題されます。
AVERAGE関数の構文
AVERAGE関数の構文は「=AVERAGE(数値1, [数値2], …)」です。引数には数値・セル参照・セル範囲を指定できます。
| 引数 | 説明 | 省略 |
|---|---|---|
| 数値1 | 平均を求めたいセル範囲または数値(必須) | 不可 |
| 数値2以降 | 追加のセル範囲または数値(任意、最大255個) | 可 |
基本的な使い方は「=AVERAGE(B2:B10)」のようにセル範囲を指定するだけです。離れた範囲を平均したい場合は「=AVERAGE(B2:B10, D2:D10)」のようにカンマで区切って複数の範囲を指定できます。
空白セルと0の扱いの違い
AVERAGE関数を使ううえで特に重要な仕様が空白セルと「0」の扱いの違いです。混同すると計算結果が大きく変わるため、正確に理解しておく必要があります。
| セルの内容 | AVERAGE関数の動作 | 注意点 |
|---|---|---|
| 空白セル | 平均の計算対象から除外される | 未入力行を無視して平均を出せる |
| 0(ゼロ) | 計算対象に含まれ、平均が下がる | 「0円の売上」と「未入力」は別物として扱われる |
| 文字列 | 計算対象から除外される(エラーにはならない) | 数値以外が混在するデータで注意が必要 |
| 論理値(TRUE/FALSE) | セル参照では除外、引数に直接書くと1/0として計算 | 渡し方によって動作が変わる |
「欠勤日を空白で入力した場合と0で入力した場合では、勤務時間の平均が変わってしまう」——このようなケースが実務でよく起きます。データの入力ルールとAVERAGEの仕様を合わせておくことが重要です。
AVERAGEA関数との違い
AVERAGEA関数はAVERAGEの派生関数で、文字列をすべて「0」、論理値TRUEを「1」、FALSEを「0」として計算対象に含めます。文字列や論理値も平均の分母に含めたい場合に使いますが、通常の業務集計ではAVERAGEで十分です。
AVERAGEIF関数:1条件で絞った平均を求める
AVERAGEIF関数は、指定した範囲のうち条件を満たすセルに対応する数値の平均を返します。「特定の部門の平均売上を出す」「あるカテゴリだけの平均単価を求める」など、1つの条件で絞り込んだ平均が必要なときに使います。
AVERAGEIF関数の構文と引数
AVERAGEIF関数の構文は「=AVERAGEIF(範囲, 条件, [平均対象範囲])」です。
| 引数 | 意味 | 省略 |
|---|---|---|
| 範囲 | 条件を評価するセル範囲(条件を検索する列) | 不可 |
| 条件 | 平均の対象を絞る条件(文字列・数値・比較式・ワイルドカード) | 不可 |
| 平均対象範囲 | 実際に平均を計算するセル範囲(省略時は「範囲」で計算) | 可 |
例:A列に部門名、B列に売上が入力されている場合、「営業部」の平均売上は「=AVERAGEIF(A2:A100,”営業部”,B2:B100)」で求められます。
条件の書き方パターン一覧
AVERAGEIF関数の「条件」引数にはさまざまな書き方ができます。よく使うパターンを整理します。
| 条件の種類 | 記述例 | 意味 |
|---|---|---|
| 文字列と完全一致 | “営業部” | 「営業部」と完全一致するセル |
| セル参照(文字列) | E2 | E2セルの内容と一致するセル |
| 数値と一致 | 100 | 値が100と一致するセル |
| 比較演算子(数値) | “>=50000” | 値が50000以上のセル |
| 比較演算子+セル参照 | “>=”&E2 | E2セル以上の値を持つセル |
| ワイルドカード(前方一致) | “東京*” | 「東京」で始まる文字列 |
| ワイルドカード(後方一致) | “*課” | 「課」で終わる文字列 |
| ワイルドカード(部分一致) | “*営業*” | 「営業」を含む文字列 |
| 空白セル | “” | 空白のセル |
| 空白以外 | “<>“ | 空白でないセル |
比較演算子(>=・<=・>・<・<>)を文字列として引数に渡す場合は必ずダブルクォートで囲む必要があります。セル参照と組み合わせる場合は「”>=”&E2」のように&(アンパサンド)で連結します。クォートを忘れると#VALUE!エラーになります。
「平均対象範囲」を省略した場合の動作
「平均対象範囲」を省略すると、「範囲」で指定したセル範囲の数値が平均の計算対象になります。例えば「=AVERAGEIF(B2:B100,”>=50000″)」は、B2:B100の中で50000以上の数値セルだけを対象に平均を計算します。条件の評価と平均の計算が同じ列で完結する場合にのみ省略できます。
AVERAGEIFS関数:複数条件で絞った平均を求める
AVERAGEIFS関数は、複数の条件をすべて満たすデータの平均を返します。「営業部かつ2026年4月の平均売上」「東京都かつ売上50万円以上の平均単価」のように、AND条件(すべての条件を満たす)で絞り込んだ平均を求めるときに使います。
AVERAGEIFSの構文と引数
AVERAGEIFS関数の構文は「=AVERAGEIFS(平均対象範囲, 条件範囲1, 条件1, [条件範囲2, 条件2], …)」です。
| 引数 | 意味 | 省略 |
|---|---|---|
| 平均対象範囲 | 平均を計算するセル範囲(AVERAGEIFと引数の順序が逆になる点に注意) | 不可 |
| 条件範囲1 | 1つ目の条件を評価する範囲 | 不可 |
| 条件1 | 1つ目の絞り込み条件 | 不可 |
| 条件範囲2, 条件2以降 | 2つ目以降の条件(最大127ペアまで指定可能) | 可 |
例:A列に部門名、B列に月、C列に売上が入力されている場合、「営業部の2026年4月の平均売上」は「=AVERAGEIFS(C2:C100, A2:A100, “営業部”, B2:B100, “2026年4月”)」で求められます。
AVERAGEIFとAVERAGEIFSの引数順序の違い
AVERAGEIF→AVERAGEIFS移行時に最も間違えやすいのが引数の順序です。
| 関数 | 引数の順序 | 条件数 |
|---|---|---|
| AVERAGEIF | 範囲 → 条件 → [平均対象範囲](平均対象範囲は第3引数・末尾) | 1つのみ |
| AVERAGEIFS | 平均対象範囲 → 条件範囲1 → 条件1 → 条件範囲2 → 条件2 → …(平均対象範囲は第1引数・先頭) | 最大127条件 |
AVERAGEIFSでは「平均対象範囲」が先頭に来ます。SUMIF→SUMIFS、COUNTIF→COUNTIFSと同じパターンで、MOS試験でも引数の順序は頻出の確認事項です。
OR条件の平均はAVERAGEIFSでは直接求められない
AVERAGEIFS関数はすべての条件を満たす(AND条件)データの平均を返します。「営業部または企画部の平均売上」のようなOR条件の平均はAVERAGEIFS単体では求められません。OR条件が必要な場合は、AVERAGEIF関数を複数使って合計した値を総件数(COUNTIF)で割る方法か、配列数式を使う方法を取ります。
業務シナリオ別:AVERAGEIF・AVERAGEIFS活用パターン
AVERAGEIF・AVERAGEIFSの使い方を、業務でよく出てくるシナリオ別にまとめます。
パターン①:部門別・商品カテゴリ別の平均売上
売上データから特定の部門や商品カテゴリの平均を求めるのは、AVERAGEIFの最も基本的な用途です。
データ構成例:A列=部門名、B列=商品カテゴリ、C列=売上金額
- 営業部の平均売上:
=AVERAGEIF(A2:A500,"営業部",C2:C500) - 家電カテゴリの平均売上:
=AVERAGEIF(B2:B500,"家電",C2:C500) - 営業部かつ家電カテゴリの平均売上:
=AVERAGEIFS(C2:C500,A2:A500,"営業部",B2:B500,"家電")
条件をドロップダウンリストや他のセルに入力しておき、条件部分をセル参照(E2など)にすると、条件を切り替えるだけで集計結果が自動更新される便利な集計フォームを作れます。
パターン②:期間を絞った平均の算出
日付列に対してAVERAGEIFSを使い、特定の期間の平均を求めることができます。
データ構成例:A列=日付、B列=売上金額
- 2026年4月の平均売上:
=AVERAGEIFS(B2:B500,A2:A500,">="&DATE(2026,4,1),A2:A500,"<="&DATE(2026,4,30)) - E2セルの日付以降の平均売上:
=AVERAGEIFS(B2:B500,A2:A500,">="&E2)
日付の比較はDATE関数と比較演算子の組み合わせが確実です。「2026/4/1」のような文字列を条件にすると、環境によって正しく認識されない場合があるため、DATE関数で日付を生成して&で連結する書き方を使いましょう。
パターン③:一定閾値以上のデータだけの平均
「売上50万円以上の案件だけの平均」のように、数値の閾値で絞り込む集計にもAVERAGEIFが適しています。
- 売上50万円以上の平均:
=AVERAGEIF(C2:C500,">=500000") - 0より大きい(未売上を除いた)平均:
=AVERAGEIF(C2:C500,">0") - 成績が全体平均以上の人の平均:
=AVERAGEIF(D2:D100,">="&AVERAGE(D2:D100))
「成績が平均以上の人の平均」のように、条件の中にAVERAGE関数を入れ子にすることもできます。ただし、データ量が多い場合は再計算のたびに処理が走るためパフォーマンスに注意してください。
パターン④:ワイルドカードを使った部分一致の平均
商品名や部門名に特定の文字列が含まれるデータの平均を求めるとき、ワイルドカード(*と?)が役立ちます。
- 「課」が含まれる部門の平均売上:
=AVERAGEIF(A2:A100,"*課*",C2:C100) - 「東京」で始まる地域の平均売上:
=AVERAGEIF(A2:A100,"東京*",C2:C100) - 「Pro」で終わる商品名の平均単価:
=AVERAGEIF(B2:B100,"*Pro",D2:D100)
ワイルドカード(*)はAVERAGEIF/AVERAGEIFSの条件引数で使えますが、数値の比較では使えません(文字列条件専用です)。また、「?」は任意の1文字を意味し、桁数が決まった品番コードの絞り込みなどに使えます。
よくあるエラーと対処法
AVERAGE系関数を使う際によく遭遇するエラーと対処法を整理します。
| エラー・症状 | 原因 | 対処法 |
|---|---|---|
| #DIV/0! | 条件を満たすデータが1件もなく、0除算になっている | IFERROR関数で囲む:=IFERROR(AVERAGEIF(...),"該当なし") |
| #VALUE! | 比較演算子をクォートで囲み忘れている、または範囲サイズが不一致 | 条件を">=50000"のようにクォートで囲んでいるか確認する |
| 意図しない低い平均値 | 空白セルに「0」が入力されており、平均が下がっている | 0を空白に変換するか、>0条件でフィルタする |
| AVERAGEIFSが#VALUE! | 「平均対象範囲」と「条件範囲」のサイズが一致していない | すべての範囲を同じ行数・列数に揃える |
| 条件の文字列が一致しない | スペース・全角半角・大文字小文字の違いが原因 | TRIM関数で余分なスペースを除去してから集計する |
#DIV/0!エラーは「該当データが0件」という状況を示します。IFERROR関数と組み合わせることで、エラーの代わりに「該当なし」や「0」などの任意の値を表示できます。例:=IFERROR(AVERAGEIFS(C2:C100,A2:A100,E2,B2:B100,F2),"該当なし")
AVERAGEIFS関数の範囲サイズ不一致に注意する
AVERAGEIFS関数では「平均対象範囲」「条件範囲1」「条件範囲2」…のすべてが同じ行数・列数でなければなりません。サイズが異なると#VALUE!エラーが返されます。テーブルの列全体(C:Cなど)を指定する場合は、すべての引数で同じ形式に揃えると安全です。数式を入力後に#VALUE!エラーが出たら、まず各引数の範囲行数が揃っているかを確認しましょう。
MOS Excel試験でのAVERAGEIF・AVERAGEIFS出題パターンと攻略法
MOS Excel 365試験では、AVERAGEIF・AVERAGEIFSは条件付き集計関数のひとつとして出題されます。SUMIFやCOUNTIFと同じ分野で出ることが多く、引数の順序と条件の書き方を正確に覚えることが得点のポイントです。
頻出問題の傾向
- パターン1:AVERAGEIF基本問題 — 「A列の部門名が"営業部"であるB列の平均を求めてください」のような基本問題。引数を正しく指定できるか確認される
- パターン2:AVERAGEIFS複数条件問題 — 「A列が"東京"かつC列が50000以上のD列の平均を、セルF2に求めてください」のような複合条件問題
- パターン3:セル参照で条件を指定する問題 — 「H2セルに入力された部門名を条件にして平均を求めてください」という実用的な問題。比較演算子との組み合わせ(">="&H2の形式)も出題される
- パターン4:エラー対処問題 — 「条件に一致するデータがない場合に"0"を表示するよう数式を修正してください」のようなIFERROR組み合わせ問題
間違えやすいポイントと対策
- 間違い1:AVERAGEIFとAVERAGEIFSで引数の順序を混同する — AVERAGEIFは「範囲→条件→平均対象範囲」、AVERAGEIFSは「平均対象範囲→条件範囲→条件」の順。特にAVERAGEIFSで平均対象範囲が先頭に来ることを意識して覚える
- 間違い2:比較演算子をクォートで囲まずにエラーになる — 「>=50000」ではなく「">=50000"」と書く。セル参照と組み合わせる場合は「">="&E2」の形式にする
- 間違い3:平均対象範囲の省略ルールを誤解する — AVERAGEIF関数では「条件範囲と平均対象範囲が同じ場合のみ」省略可。AVERAGEIFSでは省略不可
- 間違い4:ワイルドカードを数値条件で使おうとする — ワイルドカード(*・?)は文字列条件にのみ有効。数値の絞り込みには比較演算子を使う
試験前に確認するポイントまとめ
| 確認ポイント | 内容 |
|---|---|
| AVERAGEIFの引数順序 | 範囲→条件→[平均対象範囲](平均対象範囲は第3引数・省略可) |
| AVERAGEIFSの引数順序 | 平均対象範囲→条件範囲1→条件1→条件範囲2→条件2→...(平均対象範囲は第1引数・省略不可) |
| 比較演算子の書き方 | ">=50000" または ">="&E2 の形式でダブルクォートが必要 |
| ワイルドカード | *(0文字以上の任意の文字列)、?(任意の1文字)。文字列条件にのみ有効 |
| #DIV/0!の回避 | IFERROR関数で囲んで「該当なし」などを表示 |
| 空白と0の違い | AVERAGE系関数は空白を無視・0は計算対象に含む |
まとめ:AVERAGE・AVERAGEIF・AVERAGEIFS関数を業務に活かすための要点
AVERAGE・AVERAGEIF・AVERAGEIFS関数は、Excelの条件付き集計の中でも特に実務での使用頻度が高い関数です。使いこなすための要点をまとめます。
- AVERAGE関数は空白セルを無視して平均を計算する。0は計算対象に含まれる点に注意
- AVERAGEIF関数は「範囲→条件→[平均対象範囲]」の順。1条件での絞り込み平均を求める。条件範囲と平均対象範囲が同じ場合は第3引数を省略できる
- AVERAGEIFS関数は「平均対象範囲→条件範囲1→条件1→…」の順で、AVERAGEIFと引数の順序が異なる。複数条件(AND条件)に対応し最大127ペアまで指定可能
- 比較演算子を条件に使う場合はダブルクォートで囲む(">=50000")。セル参照と組み合わせる場合は&で連結(">="&E2)
- ワイルドカード(*・?)は文字列条件にのみ使える。部分一致には"*キーワード*"の形式を使う
- #DIV/0!エラーは条件に一致するデータが0件の場合に発生。IFERROR関数で囲んで回避する
- AVERAGEIFSで#VALUE!が出たら、すべての範囲のサイズが揃っているかを確認する
- MOS試験では引数の順序・比較演算子の書き方・ワイルドカードの使い方が頻出確認事項
当サイトでは、Excel・Word・PowerPoint・AccessのOffice操作やMOS試験対策に関する記事を多数発信しています。ぜひ他の記事もご覧ください。
