• 作成日 : 2025年9月17日

AVERAGEIF関数の使い方:条件に一致するデータの平均を計算する方法

AVERAGEIF関数は、指定した条件に一致するデータの平均値を計算する関数です。売上データの条件付き分析、成績の科目別平均計算、アンケート結果の属性別集計、在庫数量や販売データのカテゴリー別平均算出など、特定の条件でフィルタリングした平均値が必要な場面で活用されます。例えば、特定部署の平均売上高、合格者のみの平均点、特定年齢層の平均購入金額などを簡単に計算できます。

本記事では、AVERAGEIF関数の基本的な使い方から実践的な活用方法、他の関数との効果的な組み合わせまで、初心者の方にも理解しやすく解説していきます。

AVERAGEIF関数とは

AVERAGEIF関数は、指定した条件を満たすセルの平均値を計算する統計関数です。AVERAGE関数がすべてのデータを対象とするのに対し、AVERAGEIF関数は条件に合致するデータのみを計算対象とするため、より詳細な分析が可能です。

この関数の重要な特徴は、条件の指定が柔軟であることです。完全一致、部分一致(ワイルドカードは文字列条件のみ使用可能)、数値の大小比較など、様々な条件設定ができます。データの特定セグメントの傾向を簡単に把握できます。

参考:AVERAGEIF 関数 – Microsoft サポート

AVERAGEIF関数の基本的な使い方

関数の構文を理解する

AVERAGEIF関数の構文は次のとおりです。

=AVERAGEIF(範囲, 条件, [平均対象範囲])

範囲は条件を適用する範囲、条件は平均の対象を決める条件、平均対象範囲は省略可能で、平均を計算する実際の数値範囲を指定します。

基本的な使用例

実際の使用例を見てみましょう。

B列に部署名、D列に売上額が入力された表で、

部署が「営業部」の売上平均を計算:

=AVERAGEIF(B2:B100, “営業部”, D2:D100)

自己参照の例(同じ範囲で条件判定と平均計算):

=AVERAGEIF(D2:D100, “>100000”)  ‘ 10万円以上の売上の平均

条件の指定方法

様々な条件指定の例:

=AVERAGEIF(A:A, “東京*”, B:B)        ‘ 東京で始まる(ワイルドカード)

=AVERAGEIF(C:C, “<>0”, C:C)          ‘ 0以外の値

=AVERAGEIF(D:D, “>=”&E1, D:D)        ‘ セル参照を使った条件

=AVERAGEIF(日付列, TODAY(), 売上列)   ‘ 今日の売上平均

AVERAGEIF関数の実践的な利用シーン

営業データの分析

企業の営業管理では、地域別、担当者別、商品別などの平均売上を把握することが重要です。AVERAGEIF関数を使用して、「関東地区の平均受注額」や「新規顧客の平均購入金額」といった分析が簡単に実行できます。

特定の条件下での平均値を把握することで、成功パターンの特定や、改善が必要な領域の発見が可能になります。営業戦略の立案や、目標設定の根拠として活用できます。

学校での成績管理

教育現場では、クラス別、科目別の平均点計算が頻繁に必要です。AVERAGEIF関数により、「数学で60点以上の生徒の平均点」や「A組の英語の平均点」といった条件付き集計が可能です。

合格者のみの平均点を計算することで、試験の難易度評価や、教育効果の測定に活用できます。個別指導の必要性判断にも有用です。

顧客満足度調査の分析

アンケート結果の分析では、回答者の属性別に平均評価を算出する必要があります。「30代男性の満足度平均」や「リピーター顧客の評価平均」など、セグメント別の傾向を把握できます。

属性別の満足度を比較することで、ターゲット層の特定や、サービス改善の優先順位付けが可能になります。

AVERAGEIF関数の応用テクニック

動的な条件設定

セル参照を使った柔軟な条件指定:

=AVERAGEIF(部署列, 選択部署セル, 売上列)

日付範囲での集計

特定月のデータのみを対象に:

=AVERAGEIF(日付列, “>=”&DATE(2024,1,1), 売上列) –

AVERAGEIF(日付列, “>”&DATE(2024,1,31), 売上列)

よくあるエラーと対策

#DIV/0!エラーへの対処

条件に一致するデータが存在しない場合に発生します。

基本的なエラー処理:

=IFERROR(AVERAGEIF(B:B, “営業部”, D:D), “該当データなし”)

事前の件数チェック:

=IF(COUNTIF(B:B, “営業部”)=0,

“営業部のデータがありません”,

AVERAGEIF(B:B, “営業部”, D:D))

条件が厳しすぎたり、データが存在しなかったりする場合にこのエラーが発生します。COUNTIF関数で事前に該当件数を確認することで、エラーの原因を明確にできます。ユーザーフレンドリーなメッセージを表示することで、問題の把握と解決が容易になります。

文字列の扱い

平均対象範囲に文字列が含まれる場合の動作:

=AVERAGEIF(A:A, “対象”, B:B)  ‘ B列の文字列は自動的に無視される

エラー値への対処:

B列のエラーを空白にする補助列を作り、AVERAGEIF関数で範囲参照

例:C1に

=IFERROR(B:B, “”)

を入力して配列数式(Ctrl+Shift+Enter)にしてから、以下の式で計算

=AVERAGEIF(A:A, “対象”, C:C)

AVERAGEIF関数は文字列や空白セルを自動的に無視しますが、エラー値(#VALUE!、#N/Aなど)が含まれていると計算できません。事前にデータクリーニングを行うか、IFERROR関数でエラー値を除外する必要があります。大量データでは、エラーの存在を見落としやすいため注意が必要です。

条件の記述ミス

比較演算子の正しい使用:

‘ 正しい

=AVERAGEIF(A:A, “>100”, A:A)

=AVERAGEIF(A:A, “>=100”, A:A)

‘ 間違い(””で囲まないと動作しない)

=AVERAGEIF(A:A, >100, A:A)

ワイルドカードの誤用:

=AVERAGEIF(A:A, “*東京*”, B:B)  ‘ 正しい:東京を含む

=AVERAGEIF(A:A, “?京”, B:B)      ‘ 正しい:○京(2文字)

=AVERAGEIF(A:A, “*>=100*”, B:B)     ‘ 間違い:数値比較とワイルドカードは併用できない

条件は必ず文字列として指定する必要があります。比較演算子を使う場合は引用符で囲むことを忘れずに。ワイルドカードは文字列比較でのみ有効で、数値比較では使用できません。

範囲のサイズ不一致

条件範囲と平均対象範囲のサイズが異なる場合:

=IF(ROWS(B2:B100)=ROWS(D2:D100),

AVERAGEIF(B2:B100, “営業部”, D2:D100),

“範囲のサイズが一致しません”)

動的範囲での対処:

=AVERAGEIF(

OFFSET(B1, 1, 0, COUNTA(B:B)-1),

“営業部”,

OFFSET(D1, 1, 0, COUNTA(B:B)-1))

条件範囲と平均対象範囲は同じサイズである必要があります。データの追加・削除により範囲がずれることがあるため、テーブル機能や名前付き範囲を使用することを推奨します。

AVERAGEIF関数と他の関数との組み合わせ

COUNTIF関数での件数表示

平均値と該当件数を同時に表示:

=”平均: ” & TEXT(AVERAGEIF(B:B, “営業部”, D:D), “#,##0″) &

” (n=” & COUNTIF(B:B, “営業部”) & “)”

=IF(COUNTIF(条件範囲, 条件)<5,

“サンプル数が少ないため参考値”,

AVERAGEIF(条件範囲, 条件, 値範囲))

平均値だけでなく、計算の基となったデータ数も表示することで、結果の信頼性を示せます。統計的に、サンプル数が少ない場合の平均値は不安定なため、件数の確認は重要です。報告書では必ず件数も併記することを推奨します。

SUMIF関数での合計表示

合計と平均を並べて表示:

=”合計: ” & TEXT(SUMIF(B:B, “営業部”, D:D), “#,##0″) &

” / 平均: ” & TEXT(AVERAGEIF(B:B, “営業部”, D:D), “#,##0″) &

” / 件数: ” & COUNTIF(B:B, “営業部”)

合計、平均、件数の3つの指標を組み合わせることで、データの全体像を把握できます。特に、外れ値の影響を評価する際に有効です。ビジネスレポートでは、これらの基本統計量をセットで提示することが一般的です。

IF関数での条件分岐

平均値に基づく評価:

=IF(AVERAGEIF(部署列, A2, 評価列)>=4, “高評価部署”,

IF(AVERAGEIF(部署列, A2, 評価列)>=3, “標準”, “要改善”))

計算された平均値を基準に、自動的に判定や分類を行えます。KPIの達成状況評価や、パフォーマンスの可視化に活用できます。条件付き書式と組み合わせることで、視覚的にも分かりやすい表示が可能です。

MAX/MIN関数での比較

各カテゴリーの平均値から最高・最低を特定:

=MAX(AVERAGEIF(カテゴリ範囲, “A”, 値範囲),

AVERAGEIF(カテゴリ範囲, “B”, 値範囲),

AVERAGEIF(カテゴリ範囲, “C”, 値範囲))

複数のグループの平均値を比較し、最も高い/低いグループを特定できます。ベンチマーキングや、ベストプラクティスの発見に有用です。

STDEV.S関数との組み合わせ(配列数式)

条件付き標準偏差の計算:

=STDEV.S(IF(条件範囲=条件, 値範囲))  ‘ Ctrl+Shift+Enter

=”平均: ” & AVERAGEIF(条件範囲, 条件, 値範囲) &

” ±” & STDEV.S(IF(条件範囲=条件, 値範囲))

平均値と標準偏差を組み合わせることで、データの中心とばらつきの両方を評価できます。品質管理や、リスク評価において重要な指標となります。

AVERAGEIFS関数への移行

複数条件が必要になった場合:

‘ AVERAGEIF(単一条件)

=AVERAGEIF(部署列, “営業部”, 売上列)

‘ AVERAGEIFS(複数条件)への拡張

=AVERAGEIFS(売上列, 部署列, “営業部”, 地域列, “関東”)

ビジネスの成長に伴い、より詳細な分析が必要になることがあります。AVERAGEIF関数で始めて、必要に応じてAVERAGEIFS関数に移行することで、段階的に分析を深化させられます。

AVERAGEIF関数を活用しよう

AVERAGEIF関数は、条件に基づいてデータをフィルタリングし、その平均値を簡単に計算できる便利なツールです。営業分析、成績評価、顧客満足度調査など、特定セグメントの傾向把握が必要なあらゆる場面で活用できます。COUNTIF関数やSUMIF関数と組み合わせることで、より包括的なデータ分析が可能になります。エラー処理、条件の正しい記述、範囲の一致に注意しながら使用することで、信頼性の高い分析結果を得られます。ぜひ実務でAVERAGEIF関数を活用し、データの中から意味のある洞察を効率的に抽出してください。条件付き平均は、ビジネスの意思決定に役立つ場面が多くあります。


※ 掲載している情報は記事更新時点のものです。

※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。

関連記事