Excelで平均を求めたい時、「特定の条件に合うデータだけを平均したい」ということはよくあります。
例えば、「女性社員だけの平均給与は?」「合格点以上の人の平均点は?」「東京店だけの平均売上は?」といった場面です。
そんな時に活躍するのがAVERAGEIF(アベレージ・イフ)
関数です。
この記事では、AVERAGEIF関数の基本構文と使い方、実務で使える応用例、よくあるミスまで初心者向けに解説します。
AVERAGEIF関数ってなに?

AVERAGEIF関数の役割
AVERAGEIF
関数は、ある1つの条件に合ったデータの平均を求める関数です。
全体の平均ではなく、特定の条件を満たすデータだけを選んで平均を計算できます。
基本的な書き方
=AVERAGEIF(範囲, 条件, [平均範囲])
構文の説明
- 範囲:条件を判定する対象のセル範囲
- 条件:比較の基準(例:”>=60″, “東京”, “女性”など)
- 平均範囲:平均を取る実際の数値が入った範囲(省略可能)
平均範囲を省略する場合
=AVERAGEIF(A2:A100, ">=60")
範囲と平均範囲が同じ場合は、平均範囲を省略できます。
簡単な使用例
=AVERAGEIF(A2:A100, "東京", C2:C100)
この式は「A列が『東京』の行だけを対象に、C列の数値の平均」を求めます。
データ例で理解しよう
A列(地域) | B列(性別) | C列(売上) |
---|---|---|
東京 | 男性 | 100 |
大阪 | 女性 | 150 |
東京 | 女性 | 120 |
名古屋 | 男性 | 80 |
東京 | 男性 | 110 |
例1:東京の平均売上
=AVERAGEIF(A2:A6, "東京", C2:C6)
結果:(100 + 120 + 110) ÷ 3 = 110
例2:売上100以上の平均
=AVERAGEIF(C2:C6, ">=100")
結果:(100 + 150 + 120 + 110) ÷ 4 = 120
ポイント
- 条件に合うデータだけを自動で選択
- 1つの条件のみ指定可能
- 数値、文字列、日付すべてに対応
AVERAGEIFは、シンプルな条件付き平均に最適な関数です。次に、よく使われる条件設定のパターンを紹介します。
よく使う条件の書き方を覚えよう

数値条件での指定
基本的な数値比較
// 60以上の平均点
=AVERAGEIF(B2:B100, ">=60")
// 100未満の平均売上
=AVERAGEIF(C2:C100, "<100")
// ちょうど80の平均(めったに使わない)
=AVERAGEIF(B2:B100, "=80")
よく使う比較演算子
演算子 | 意味 | 使用例 |
---|---|---|
= | 等しい | “=100” |
<> | 等しくない | “<>0” |
> | より大きい | “>50” |
>= | 以上 | “>=60” |
< | より小さい | “<100” |
<= | 以下 | “<=80” |
文字列条件での指定
完全一致
// 地域が「大阪」のデータの平均
=AVERAGEIF(A2:A100, "大阪", C2:C100)
// 性別が「女性」のデータの平均
=AVERAGEIF(B2:B100, "女性", D2:D100)
部分一致(ワイルドカード)
// 商品名に「A」が含まれる商品の平均価格
=AVERAGEIF(B2:B100, "*A*", C2:C100)
// 名前が「田」で始まる人の平均点
=AVERAGEIF(A2:A100, "田*", C2:C100)
// 部署名が「部」で終わる部署の平均売上
=AVERAGEIF(B2:B100, "*部", D2:D100)
ワイルドカードの種類
記号 | 意味 | 使用例 | 結果 |
---|---|---|---|
* | 任意の文字列 | “営業“ | 営業、営業部、第一営業課 |
? | 任意の1文字 | “田?” | 田中、田村、田川 |
セル参照を使った動的条件
// E1セルに入力された条件で平均を計算
=AVERAGEIF(A2:A100, E1, C2:C100)
E1に「東京」と入力すれば東京の平均、「大阪」と入力すれば大阪の平均が自動計算されます。
日付条件での指定
特定の日付以降
// 2024年1月1日以降のデータの平均
=AVERAGEIF(A2:A100, ">=2024/1/1", B2:B100)
// 今日以降のデータの平均
=AVERAGEIF(A2:A100, ">="&TODAY(), B2:B100)
月や年での絞り込み
// 1月のデータの平均(月だけで判定)
=AVERAGEIF(A2:A100, ">=2024/1/1", B2:B100) - AVERAGEIF(A2:A100, ">=2024/2/1", B2:B100)
空白・非空白での条件
// 空白以外のセルの平均
=AVERAGEIF(A2:A100, "<>", B2:B100)
// 空白セルを除いた平均(実際は自動で除外される)
=AVERAGEIF(A2:A100, "<>", A2:A100)
実用的な条件例
成績管理での活用
// 合格点(60点)以上の平均
=AVERAGEIF(B2:B100, ">=60")
// 不合格者の平均点
=AVERAGEIF(B2:B100, "<60")
// A評価の人の平均点
=AVERAGEIF(C2:C100, "A", B2:B100)
売上分析での活用
// 目標達成者(100万円以上)の平均売上
=AVERAGEIF(C2:C100, ">=1000000")
// 関東地方の平均売上
=AVERAGEIF(A2:A100, "*関東*", C2:C100)
ポイント
- 条件は必ず文字列(ダブルクォート)で囲む
- 数値条件も”>=60″のように文字列として指定
- ワイルドカードで柔軟な検索が可能
- セル参照で動的な条件設定
柔軟な条件指定ができることで、様々な場面に対応可能です。次は、実務での応用例を紹介します。
実務で役立つAVERAGEIFの応用例

人事・給与管理での活用
部署別・性別別の分析
// 女性社員だけの平均給与
=AVERAGEIF(B2:B100, "女性", D2:D100)
// 営業部の平均給与
=AVERAGEIF(C2:C100, "営業部", D2:D100)
// 管理職の平均年齢
=AVERAGEIF(E2:E100, "*管理*", F2:F100)
勤続年数や年齢での分析
// 5年以上勤務者の平均給与
=AVERAGEIF(F2:F100, ">=5", D2:D100)
// 30代社員の平均給与
=AVERAGEIF(G2:G100, ">=30", D2:D100) - AVERAGEIF(G2:G100, ">=40", D2:D100)
売上・営業管理での活用
地域別・店舗別分析
// 東京地区の平均売上
=AVERAGEIF(A2:A100, "東京", D2:D100)
// 売上目標達成店舗の平均売上
=AVERAGEIF(D2:D100, ">=1000000")
// 新規開店店舗の平均売上
=AVERAGEIF(E2:E100, "*新規*", D2:D100)
時期別分析
// 4月の平均売上
=AVERAGEIF(B2:B100, "4月", D2:D100)
// 第1四半期の平均売上
=AVERAGEIF(C2:C100, "Q1", D2:D100)
教育・成績管理での活用
科目別・クラス別分析
// 数学の平均点
=AVERAGEIF(B2:B100, "数学", C2:C100)
// A組の平均点
=AVERAGEIF(A2:A100, "A組", C2:C100)
// 期末テストで不合格(60点未満)の平均点
=AVERAGEIF(C2:C100, "<60")
出席率での分析
// 出席率90%以上の生徒の平均点
=AVERAGEIF(D2:D100, ">=90", C2:C100)
商品・在庫管理での活用
カテゴリ別・価格帯別分析
// 家電製品の平均価格
=AVERAGEIF(B2:B100, "家電", C2:C100)
// 高額商品(10万円以上)の平均価格
=AVERAGEIF(C2:C100, ">=100000")
// セール対象商品の平均価格
=AVERAGEIF(D2:D100, "*セール*", C2:C100)
顧客・アンケート分析での活用
年代別・地域別分析
// 20代の平均満足度
=AVERAGEIF(B2:B100, "20代", E2:E100)
// 関西地方の平均満足度
=AVERAGEIF(C2:C100, "*関西*", E2:E100)
// リピーターの平均購入金額
=AVERAGEIF(D2:D100, "リピート", F2:F100)
製造・品質管理での活用
工程別・製品別分析
// A工程の平均不良率
=AVERAGEIF(A2:A100, "A工程", D2:D100)
// 基準値以上の製品の平均品質スコア
=AVERAGEIF(C2:C100, ">=80", C2:C100)
複数の分析を組み合わせた例
// 男性社員の平均給与
男性平均 = AVERAGEIF(性別範囲, "男性", 給与範囲)
// 女性社員の平均給与
女性平均 = AVERAGEIF(性別範囲, "女性", 給与範囲)
// 男女差の計算
=ABS(男性平均 - 女性平均)
条件付き書式との組み合わせ
- 平均値を計算:
=AVERAGEIF(部署, "営業部", 売上)
- 条件付き書式で平均以上のセルに色付け
- 視覚的にわかりやすいレポート作成
ポイント
- 営業成績の評価、顧客の分類、アンケート集計など幅広く活用
- 他の関数と組み合わせてより詳細な分析
- 条件付き書式と組み合わせて視覚化
- セル参照を使って動的なレポート作成
実務ではこのように、条件をつけた平均が分析の軸になります。次は、エラー対策について見てみましょう。
よくあるエラーとその対処法を知っておこう

主なエラーパターン
エラー1:条件に合うデータがない
症状:#DIV/0!
エラーが表示される
原因:指定した条件に該当するデータが1つもない
例:
=AVERAGEIF(A2:A100, "北海道", C2:C100)
// 「北海道」のデータが存在しない場合
対処法:
=IFERROR(AVERAGEIF(A2:A100, "北海道", C2:C100), "該当データなし")
エラー2:範囲サイズの不一致
症状:#VALUE!
エラーが表示される
原因:範囲と平均範囲の行数・列数が一致していない
間違い例:
=AVERAGEIF(A2:A100, "東京", C2:C50) ❌ 行数が違う
正しい例:
=AVERAGEIF(A2:A100, "東京", C2:C100) ✅ 行数が一致
エラー3:条件の記述ミス
症状:結果が0になる、または期待した結果にならない
よくある間違い:
=AVERAGEIF(A2:A100, 東京, C2:C100) ❌ クォートなし
=AVERAGEIF(A2:A100, ">=60円", C2:C100) ❌ 単位が含まれている
=AVERAGEIF(A2:A100, "> 60", C2:C100) ❌ 余分なスペース
正しい書き方:
=AVERAGEIF(A2:A100, "東京", C2:C100) ✅
=AVERAGEIF(A2:A100, ">=60", C2:C100) ✅
=AVERAGEIF(A2:A100, ">60", C2:C100) ✅
データ型による問題
数値が文字列として保存されている
問題:見た目は数値だが、計算されない
確認方法:
- セルの左上に緑の三角マーク
- 左寄せで表示される
- ISNUMBER関数で確認:
=ISNUMBER(A1)
対処法:
// データを数値に変換してから計算
=AVERAGEIF(A2:A100, "東京", VALUE(C2:C100))
日付の形式問題
問題:日付条件が正しく動作しない
対処法:
// 日付を明示的に指定
=AVERAGEIF(A2:A100, ">="&DATE(2024,1,1), C2:C100)
// 文字列の日付を変換
=AVERAGEIF(A2:A100, ">="&DATEVALUE("2024/1/1"), C2:C100)
デバッグの手順
ステップ1:該当データ数の確認
// 条件に合うデータが何件あるかチェック
=COUNTIF(A2:A100, "東京")
0件の場合は条件の見直しが必要です。
ステップ2:データの内容確認
// 実際のデータを確認
=INDEX(A2:A100, 1) // 最初のデータ
=INDEX(A2:A100, 2) // 2番目のデータ
ステップ3:段階的な確認
// まず全体の平均
=AVERAGE(C2:C100)
// 次に条件なしで特定範囲
=AVERAGE(C2:C10)
// 最後に条件付き
=AVERAGEIF(A2:A10, "東京", C2:C10)
エラーを防ぐ予防策
1. 範囲の確認
// 範囲を名前で定義して間違いを防ぐ
=AVERAGEIF(地域範囲, "東京", 売上範囲)
2. 条件の確認
// セル参照で条件を動的に設定
=AVERAGEIF(A2:A100, E1, C2:C100)
E1セルに条件を入力することで、間違いを減らせます。
3. エラーハンドリングの組み込み
// 基本版
=IFERROR(AVERAGEIF(A2:A100, "東京", C2:C100), "データなし")
// 詳細版
=IF(COUNTIF(A2:A100, "東京")>0,
AVERAGEIF(A2:A100, "東京", C2:C100),
"該当データがありません")
トラブルシューティングのコツ
条件の内容を表示
// 条件の内容を別セルで確認
="条件: " & E1 & ", 件数: " & COUNTIF(A2:A100, E1)
中間結果の表示
// 計算過程を分解して確認
B列: =IF(A2="東京", C2, "") // 条件に合うデータのみ表示
D1: =AVERAGE(B2:B100) // 手動で平均計算
よくある勘違い
「AVERAGEIFは複数条件が使える」
// これはエラーになります
=AVERAGEIF(A2:A100, "東京", B2:B100, "女性", C2:C100) ❌
// 複数条件にはAVERAGEIFSを使用
=AVERAGEIFS(C2:C100, A2:A100, "東京", B2:B100, "女性") ✅
ポイント
- データ件数をCOUNTIFで事前確認
- 範囲サイズの一致を必ずチェック
- IFERRORでエラー表示を制御
- 段階的にテストして原因を特定
エラーに備えることで、誰でも安心して使える関数になります。最後に、複数条件を使いたい時の注意点です。
AVERAGEIFとAVERAGEIFSの違いを理解しよう

基本的な違い
項目 | AVERAGEIF | AVERAGEIFS |
---|---|---|
条件数 | 1つのみ | 2つ以上可能 |
構文 | =AVERAGEIF(範囲, 条件, [平均範囲]) | =AVERAGEIFS(平均範囲, 条件範囲1, 条件1, ...) |
引数の順序 | 条件範囲が最初 | 平均範囲が最初 |
構文の違いに注意
AVERAGEIF の場合
=AVERAGEIF(条件範囲, 条件, 平均範囲)
AVERAGEIFS の場合
=AVERAGEIFS(平均範囲, 条件範囲1, 条件1, 条件範囲2, 条件2, ...)
重要:引数の順序が違います!
同じ結果を得る例
1条件の場合(どちらでも可能)
AVERAGEIF を使った場合:
=AVERAGEIF(B2:B100, "女性", C2:C100)
AVERAGEIFS を使った場合:
=AVERAGEIFS(C2:C100, B2:B100, "女性")
どちらも「女性の平均給与」を求めますが、引数の順序が異なります。
複数条件が必要な場合
AVERAGEIF では不可能
// これはエラーになります
=AVERAGEIF(A2:A100, "東京", B2:B100, "女性", C2:C100) ❌
AVERAGEIFS では可能
// 東京の女性社員の平均給与
=AVERAGEIFS(C2:C100, A2:A100, "東京", B2:B100, "女性") ✅
実用的な比較例
売上分析での使い分け
単純な条件(AVERAGEIF):
// 営業部の平均売上
=AVERAGEIF(部署, "営業部", 売上)
複雑な条件(AVERAGEIFS):
// 東京の営業部で売上100万円以上の平均
=AVERAGEIFS(売上, 地域, "東京", 部署, "営業部", 売上, ">=1000000")
どちらを使うべき?
AVERAGEIF を使う場面
- 条件が1つだけの場合
- シンプルな分析の場合
- 関数に慣れていない場合
// 例:合格者の平均点
=AVERAGEIF(点数, ">=60")
AVERAGEIFS を使う場面
- 条件が2つ以上の場合
- 詳細な分析が必要な場合
- 将来的に条件追加の可能性がある場合
// 例:3年生の女子で数学80点以上の平均点
=AVERAGEIFS(数学点数, 学年, "3年", 性別, "女", 数学点数, ">=80")
よくある間違い
引数の順序を間違える
// AVERAGEIF の順序でAVERAGEIFS を書く(間違い)
=AVERAGEIFS(A2:A100, "東京", C2:C100, B2:B100, "女性") ❌
// 正しい順序
=AVERAGEIFS(C2:C100, A2:A100, "東京", B2:B100, "女性") ✅
条件の追加
AVERAGEIF から AVERAGEIFS への変更
元の式(1条件):
=AVERAGEIF(A2:A100, "営業部", D2:D100)
条件追加(2条件):
=AVERAGEIFS(D2:D100, A2:A100, "営業部", B2:B100, "東京")
パフォーマンスの違い
処理速度
- AVERAGEIF:1条件なので高速
- AVERAGEIFS:複数条件を処理するため若干重い
メモリ使用量
- どちらも大きな差はない
- 大量データでは条件数に応じて差が出る場合がある
移行時の注意点
関数を変更する際のチェックポイント
- 引数の順序:平均範囲が最初になる
- 条件の数:2つ以上必要かどうか
- 既存の数式:他の場所で参照されていないか
実務での使い分け例
// シンプルな月次レポート(AVERAGEIF)
月別平均 = AVERAGEIF(月, "4月", 売上)
// 詳細な分析レポート(AVERAGEIFS)
詳細平均 = AVERAGEIFS(売上, 月, "4月", 地域, "東京", 部署, "営業", 経験年数, ">=3")
ポイント
- 条件1つならAVERAGEIF、複数ならAVERAGEIFS
- 引数の順序が関数によって異なる
- 将来の拡張性を考えるとAVERAGEIFSが便利
- まずはAVERAGEIFに慣れてから移行
条件が1つだけならAVERAGEIF
、2つ以上ならAVERAGEIFS
を使いましょう。
まとめ
ExcelのAVERAGEIF関数は、特定の条件に合致するデータだけを平均するシンプルかつ強力なツールです。
覚えるべきポイント
- 基本構文:
=AVERAGEIF(範囲, 条件, [平均範囲])
- 1条件のみ:複数条件にはAVERAGEIFSを使用
- 条件指定:文字列、数値、ワイルドカードすべて対応
- エラー対策:IFERRORでエラーハンドリング
実務での活用場面
- 人事管理:部署別・性別別の平均給与
- 売上分析:地域別・期間別の平均売上
- 成績管理:科目別・クラス別の平均点
- 品質管理:工程別・製品別の平均品質
よく使われるパターン
// 基本的な条件指定
=AVERAGEIF(部署, "営業部", 給与)
// 数値条件
=AVERAGEIF(売上, ">=1000000")
// 部分一致
=AVERAGEIF(商品名, "*A*", 価格)
// エラー対応版
=IFERROR(AVERAGEIF(地域, "東京", 売上), "データなし")
条件の書き方のコツ
- 文字列は必ずダブルクォートで囲む
- 数値条件も”>=60″のように文字列として指定
- ワイルドカード(*、?)で柔軟な検索
- セル参照で動的な条件設定
コメント