Excelでデータ分析をしていると、「特定の条件を満たすデータだけの平均が知りたい」という場面があります。
例えば、「東京の男性社員の平均年収は?」「4月の売上が100万円以上の店舗の平均値は?」といった具体的な分析です。
そんな時に役立つのがAVERAGEIFS(アベレージ・イフス)
関数です。
この記事では、AVERAGEIFS関数の基本的な使い方から、実務で使える応用例、よくあるミスまでをわかりやすく紹介します。
AVERAGEIFS関数ってなに?

AVERAGEIFS関数の役割
AVERAGEIFS
関数は、複数の条件に一致するセルの平均値を求めるExcel関数です。
1つの条件だけでなく、2つ以上の条件を同時に指定できる便利な機能です。
基本的な書き方
=AVERAGEIFS(平均対象範囲, 条件範囲1, 条件1, [条件範囲2, 条件2], ...)
構文の説明
- 平均対象範囲:実際に平均を計算したい数値のセル範囲
- 条件範囲1:1つ目の条件を判断するセル範囲
- 条件1:1つ目の条件(文字列、数値、セル参照など)
- 条件範囲2, 条件2:2つ目以降の条件(必要に応じて追加)
簡単な使用例
=AVERAGEIFS(C2:C100, A2:A100, "東京", B2:B100, "男性")
この式は「地域が『東京』で性別が『男性』の人のスコア平均」を求めます。
データ例
A列(地域) | B列(性別) | C列(スコア) |
---|---|---|
東京 | 男性 | 85 |
大阪 | 女性 | 90 |
東京 | 男性 | 78 |
東京 | 女性 | 88 |
上記の例では、東京の男性(85と78)の平均である81.5が結果として表示されます。
ポイント
- 条件は2つ以上指定できる(上限は127個まで)
- 全ての条件を満たすデータのみが計算対象
- 数値以外のセルは自動的に除外される
複数条件で平均を出せるこの関数は、データ分析の基礎となる機能です。次は、具体的な場面での活用方法を紹介します。
実務で使える条件設定の例を覚えよう
数値条件での絞り込み
売上が特定金額以上の店舗の平均
=AVERAGEIFS(D2:D100, D2:D100, ">=1000000")
「売上が100万円以上の店舗の平均売上」を求めます。
範囲指定での条件
=AVERAGEIFS(C2:C100, C2:C100, ">=80", C2:C100, "<=100")
「スコアが80点以上100点以下の平均点」を計算します。
日付条件での絞り込み
特定の年のデータに限定
=AVERAGEIFS(D2:D100, A2:A100, ">=2024/1/1", A2:A100, "<=2024/12/31")
「2024年のデータの平均」を求めます。
今月のデータに限定
=AVERAGEIFS(D2:D100, A2:A100, ">="&DATE(YEAR(TODAY()),MONTH(TODAY()),1), A2:A100, "<"&DATE(YEAR(TODAY()),MONTH(TODAY())+1,1))
「今月のデータの平均」を動的に計算します。
文字列条件での絞り込み
部分一致での検索
=AVERAGEIFS(C2:C100, A2:A100, "*営業*")
「部署名に『営業』が含まれる人の平均」を求めます。
複数の文字列条件
=AVERAGEIFS(D2:D100, A2:A100, "東京", B2:B100, "A評価")
「東京支店でA評価の売上平均」を計算します。
セル参照を使った動的条件
=AVERAGEIFS(C2:C100, A2:A100, E1, B2:B100, F1)
E1とF1のセルに条件を入力することで、条件を変更するだけで結果が自動更新されます。
よく使う比較演算子
演算子 | 意味 | 使用例 |
---|---|---|
= | 等しい | “=東京” |
<> | 等しくない | “<>東京” |
> | より大きい | “>100” |
>= | 以上 | “>=100” |
< | より小さい | “<100” |
<= | 以下 | “<=100” |
* | ワイルドカード | “営業“ |
実用的な活用例
=AVERAGEIFS(F2:F100, A2:A100, ">=2024/4/1", A2:A100, "<=2024/6/30", C2:C100, "営業部", E2:E100, ">=1000000")
「2024年第2四半期の営業部で売上100万円以上の平均売上」
ポイント
- 条件式は比較演算子(>=, <= など)も使える
- ワイルドカード(*)で部分一致検索が可能
- セル参照を使うと条件を動的に変更できる
条件式は比較演算子(>=, <= など)も使えるため、応用範囲が広がります。次は、条件に一致するデータがない場合の対処法を紹介します。
よくあるエラーと対処法を知っておこう

主なエラーパターン
エラー1:条件に一致するデータがない
症状:#DIV/0!
エラーが表示される
原因:指定した条件に合うデータが1つもない
対処法:IFERRORで対応
=IFERROR(AVERAGEIFS(C2:C100, A2:A100, "東京", B2:B100, "男性"), "該当データなし")
エラー2:範囲のサイズが一致していない
症状:#VALUE!
エラーが表示される
原因:平均対象範囲と条件範囲の行数・列数が違う
間違い例:
=AVERAGEIFS(C2:C100, A2:A50, "東京") ❌ 範囲が不一致
正しい例:
=AVERAGEIFS(C2:C100, A2:A100, "東京") ✅ 範囲が一致
エラー3:数値として認識されていない
症状:計算結果が正しくない、または0になる
原因:数値に見えても文字列として保存されている
対処法:
- データを数値形式に変換
- VALUE関数を使用して数値に変換
- 「区切り位置」機能でデータ型を修正
データ型による問題と解決策
日付が文字列になっている場合
問題:日付条件が正しく動作しない
解決策:
=AVERAGEIFS(C2:C100, A2:A100, ">="&DATEVALUE("2024/1/1"))
数値に余分なスペースが含まれている場合
問題:条件に一致しない
解決策:TRIM関数でスペースを除去してから比較
エラーを予防するチェックポイント
1. 範囲の確認
// 良い例:すべて同じ行数
=AVERAGEIFS(C2:C100, A2:A100, "条件1", B2:B100, "条件2")
2. データ型の確認
- 数値列に文字列が混在していないか
- 日付列が正しい日付形式になっているか
- 条件に使う文字列に余分なスペースがないか
3. 条件の書き方
// 文字列条件はダブルクォートで囲む
=AVERAGEIFS(C2:C100, A2:A100, "東京")
// 数値条件も文字列として指定
=AVERAGEIFS(C2:C100, B2:B100, ">100")
// セル参照の場合はクォート不要
=AVERAGEIFS(C2:C100, A2:A100, E1)
デバッグのコツ
ステップバイステップで確認
- まず条件なしで:
=AVERAGE(C2:C100)
- 1つの条件で:
=AVERAGEIFS(C2:C100, A2:A100, "東京")
- 複数条件で:最終的な式
該当データ数の確認
=COUNTIFS(A2:A100, "東京", B2:B100, "男性")
AVERAGEIFSと同じ条件でCOUNTIFSを使い、該当データが何件あるか確認します。
ポイント
- エラーが出たら、まず範囲とデータ型を確認
- IFERRORでエラー表示を制御
- 段階的に条件を追加してテスト
正しく動作させるには、範囲やデータの状態を事前にチェックすることが大切です。次は、AVERAGEIF
との違いについて解説します。
AVERAGEIFとAVERAGEIFSの違いを理解しよう

基本的な違い
項目 | AVERAGEIF | AVERAGEIFS |
---|---|---|
条件数 | 1つのみ | 2つ以上可能 |
構文形式 | =AVERAGEIF(範囲, 条件, 平均範囲) | =AVERAGEIFS(平均範囲, 条件範囲1, 条件1, ...) |
引数の順序 | 条件範囲が最初 | 平均範囲が最初 |
構文の比較
AVERAGEIF(1つの条件)
=AVERAGEIF(条件範囲, 条件, 平均範囲)
AVERAGEIFS(複数条件)
=AVERAGEIFS(平均範囲, 条件範囲1, 条件1, 条件範囲2, 条件2, ...)
実際の使用例
同じ結果を得る書き方
AVERAGEIF を使った場合:
=AVERAGEIF(A2:A100, "女性", C2:C100)
AVERAGEIFS を使った場合:
=AVERAGEIFS(C2:C100, A2:A100, "女性")
どちらも「女性のスコア平均」を求めますが、引数の順序が違います。
複数条件が必要な場合
AVERAGEIFでは不可能:
// これはエラーになります
=AVERAGEIF(A2:A100, "女性", B2:B100, "関西", C2:C100) ❌
AVERAGEIFSでは可能:
=AVERAGEIFS(C2:C100, A2:A100, "女性", B2:B100, "関西") ✅
引数の順序に注意
AVERAGEIF の順序
- 条件範囲:条件を判断するセル範囲
- 条件:判断基準
- 平均範囲:実際に平均を計算するセル範囲
AVERAGEIFS の順序
- 平均範囲:実際に平均を計算するセル範囲
- 条件範囲1, 条件1:1つ目の条件セット
- 条件範囲2, 条件2:2つ目の条件セット(以下繰り返し)
どちらを使うべき?
AVERAGEIF を使う場面
- 条件が1つだけの場合
- シンプルな条件の場合
- 関数に慣れていない場合
// シンプルな例
=AVERAGEIF(A2:A100, "営業部", B2:B100)
AVERAGEIFS を使う場面
- 条件が2つ以上の場合
- 複雑な分析が必要な場合
- 将来的に条件追加の可能性がある場合
// 複雑な例
=AVERAGEIFS(D2:D100, A2:A100, "営業部", B2:B100, "東京", C2:C100, ">=2024/1/1")
実務での使い分け例
売上分析での比較
単純な部署別平均:
=AVERAGEIF(A2:A100, "営業部", D2:D100)
詳細な条件での分析:
=AVERAGEIFS(D2:D100, A2:A100, "営業部", B2:B100, "東京", C2:C100, ">="&DATE(2024,4,1))
ポイント
- 条件が1つならAVERAGEIF、複数ならAVERAGEIFS
- 引数の順序が関数によって異なることに注意
- 将来の拡張性を考えるとAVERAGEIFSが便利
シンプルな条件ならAVERAGEIF
、複数条件ならAVERAGEIFS
と使い分けましょう。最後に、便利な活用アイデアを紹介します。
分析をもっと便利にする応用テクニック

ドロップダウンリストとの組み合わせ
動的な条件選択システム
ステップ1:ドロップダウンリストの作成
- データ→データの入力規則→リスト
- 選択肢を入力(例:営業部, 開発部, 人事部)
ステップ2:動的な数式の作成
=AVERAGEIFS(D2:D100, A2:A100, E1, B2:B100, F1)
E1とF1にドロップダウンで条件を選択すると、自動で平均が更新されます。
応用例:売上分析ダッシュボード
// セルG1に地域選択、H1に期間選択
=AVERAGEIFS(売上, 地域, G1, 日付, ">="&H1, 日付, "<="&I1)
絶対参照と相対参照の使い分け
コピー可能な数式の作成
=AVERAGEIFS($D$2:$D$100, $A$2:$A$100, B2, $C$2:$C$100, ">=80")
$D$2:$D$100
:絶対参照(コピー時に変わらない)B2
:相対参照(コピー時に自動調整)
部署別・評価別の一覧表作成
部署\評価 | A評価 | B評価 | C評価 |
---|---|---|---|
営業部 | =AVERAGEIFS($D$2:$D$100,$A$2:$A$100,$A3,$B$2:$B$100,C$2) | ||
開発部 |
上記の式をコピーすることで、全ての組み合わせの平均を一括計算できます。
ピボットテーブルの代替として活用
月次売上レポートの自動化
// 1月の平均売上
=AVERAGEIFS(売上, 月, 1, 年, 2024)
// 四半期ごとの平均
=AVERAGEIFS(売上, 月, ">=1", 月, "<=3", 年, 2024)
年齢層別の分析
// 20代の平均年収
=AVERAGEIFS(年収, 年齢, ">=20", 年齢, "<=29")
// 30代の平均年収
=AVERAGEIFS(年収, 年齢, ">=30", 年齢, "<=39")
他の関数との組み合わせ
条件付き集計の完全版
// 件数
=COUNTIFS(A2:A100, "営業部", B2:B100, "東京")
// 合計
=SUMIFS(C2:C100, A2:A100, "営業部", B2:B100, "東京")
// 平均
=AVERAGEIFS(C2:C100, A2:A100, "営業部", B2:B100, "東京")
// 最大値(配列数式)
=MAX(IF((A2:A100="営業部")*(B2:B100="東京"), C2:C100))
エラーハンドリングを含む完全版
=IFERROR(
AVERAGEIFS(C2:C100, A2:A100, E1, B2:B100, F1),
"該当データなし"
)
動的な条件作成
セルの値を組み合わせた条件
// セルE1に「>=」、F1に「100」が入力されている場合
=AVERAGEIFS(D2:D100, C2:C100, E1&F1)
日付範囲の動的生成
// 今月のデータ
=AVERAGEIFS(
売上,
日付, ">="&EOMONTH(TODAY(),-1)+1,
日付, "<="&EOMONTH(TODAY(),0)
)
大量データでのパフォーマンス向上
範囲を限定する
// 全データではなく、必要な範囲のみ指定
=AVERAGEIFS(Table1[売上], Table1[部署], "営業部")
テーブル機能の活用
- データをテーブル化(Ctrl+T)
- 構造化参照を使用
- 自動拡張される範囲
ポイント
- ドロップダウンとの組み合わせで動的分析
- 絶対参照・相対参照で効率的な数式作成
- 他の関数と組み合わせて総合的な分析
- エラーハンドリングで安定した運用
AVERAGEIFSをうまく使えば、手作業での平均計算が不要になり、正確かつスピーディな分析ができます。
まとめ
ExcelのAVERAGEIFS関数は、複数の条件を指定して平均値を求められる非常に便利な関数です。
覚えるべきポイント
- 基本構文:
=AVERAGEIFS(平均範囲, 条件範囲1, 条件1, ...)
- 複数条件:AND条件で2つ以上の条件を同時指定
- 比較演算子:>=、<=、<>なども使用可能
- エラー対策:IFERRORでエラーハンドリング
実務での活用場面
- 売上分析:地域別・期間別・商品別の平均売上
- 人事データ:部署別・年齢別・評価別の平均給与
- 成績管理:科目別・クラス別・期間別の平均点
- 品質管理:工程別・日別・製品別の平均値
よく使われるパターン
// 期間限定の分析
=AVERAGEIFS(売上, 日付, ">=2024/4/1", 日付, "<=2024/6/30", 地域, "東京")
// 評価基準での分析
=AVERAGEIFS(売上, 売上, ">=1000000", 部署, "営業部")
// 動的な条件
=AVERAGEIFS(成績, 科目, E1, クラス, F1, 期間, G1)
コメント