ExcelのAVERAGEIF関数をやさしく解説!条件付き平均の基本と実用例

Excel

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(男性平均 - 女性平均)

条件付き書式との組み合わせ

  1. 平均値を計算:=AVERAGEIF(部署, "営業部", 売上)
  2. 条件付き書式で平均以上のセルに色付け
  3. 視覚的にわかりやすいレポート作成

ポイント

  • 営業成績の評価、顧客の分類、アンケート集計など幅広く活用
  • 他の関数と組み合わせてより詳細な分析
  • 条件付き書式と組み合わせて視覚化
  • セル参照を使って動的なレポート作成

実務ではこのように、条件をつけた平均が分析の軸になります。次は、エラー対策について見てみましょう。

よくあるエラーとその対処法を知っておこう

主なエラーパターン

エラー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の違いを理解しよう

基本的な違い

項目AVERAGEIFAVERAGEIFS
条件数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:複数条件を処理するため若干重い

メモリ使用量

  • どちらも大きな差はない
  • 大量データでは条件数に応じて差が出る場合がある

移行時の注意点

関数を変更する際のチェックポイント

  1. 引数の順序:平均範囲が最初になる
  2. 条件の数:2つ以上必要かどうか
  3. 既存の数式:他の場所で参照されていないか

実務での使い分け例

// シンプルな月次レポート(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″のように文字列として指定
  • ワイルドカード(*、?)で柔軟な検索
  • セル参照で動的な条件設定

コメント

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