Excel関数 逆引き集 | 複数条件の平均 → AVERAGEIFS

Excel
スポンサーリンク

概要

AVERAGEIFSは「複数の条件をすべて満たすセルの平均」を求める関数です。COUNTIFSやSUMIFSと同じくAND条件で判定します(“OR”にしたい場合は式を分けて平均を組み立てます)。地域・月・金額閾値・空白/非空などを組み合わせた、実務向けの柔軟な平均計算に向いています。


基本の使い方

  • 書式:
    • 平均範囲: 平均したい数値の列
    • 条件範囲n: 判定に使う列
    • 条件n: 判定内容(例: “東京”, “>=100”, “<>”, “限定“)
=AVERAGEIFS(平均範囲, 条件範囲1, 条件1, [条件範囲2, 条件2], …)
  • 最小例(2条件):
    • 説明: 地域=東京 かつ 月=12月 の行に対応するB列の平均。
=AVERAGEIFS(B2:B200, A2:A200, "東京", C2:C200, "12月")
  • 比較演算子をセル参照と結合:
    • 説明: H1の値以上の行だけ平均(演算子は文字列、値はセルで渡す)。
=AVERAGEIFS(C2:C200, D2:D200, ">=" & H1)

具体例

  • 例1: 文字一致+数値しきい値
    • ポイント: AND判定: 両条件を満たす行の金額だけ平均。
=AVERAGEIFS(売上[金額], 売上[地域], "東京", 売上[金額], ">=100")
  • 例2: 日付範囲(期間の平均) 期間をH1〜H2で指定
    • ポイント: 日付は数値: セル参照を使うと安全。
=AVERAGEIFS(売上[金額], 売上[日付], ">=" & H1, 売上[日付], "<=" & H2)
  • 例3: 部分一致(ワイルドカード) 商品名に「限定」を含む行の平均
    • ポイント: “”=任意文字列, “?”=任意1文字。* 文字通りの「*」「?」は ~*~? でエスケープ。
=AVERAGEIFS(売上[金額], 売上[商品名], "*限定*")
  • 例4: 空白/非空で絞り込み 備考が“空でない”行だけ平均
    • ポイント: 空文字(“”)も非空扱いに注意: データ設計により結果が変わります。
=AVERAGEIFS(売上[金額], 売上[備考], "<>")

作業効率のコツ

  • 条件をセル参照にして柔軟化:
    • 説明: H1/H2に条件を入れ替えるだけで式は不変。
=AVERAGEIFS(B2:B200, A2:A200, H1, C2:C200, H2)
  • 絶対参照で範囲固定(コピー時のズレ防止):
=AVERAGEIFS($B$2:$B$200, $A$2:$A$200, H1, $C$2:$C$200, H2)
  • テーブル(構造化参照)で可読性・保守性UP:
=AVERAGEIFS(売上[金額], 売上[地域], H1, 売上[月], H2)
  • OR条件(複数値のいずれか)を平均化する発想: 地域が「東京」または「大阪」の平均(小規模なら加算して平均を作る)
    • 説明: 真の“件数加重の平均”にしたい場合はSUMIFS/COUNTIFSで合算して割る方が厳密(下のテンプレート参照)。
=(AVERAGEIFS(売上[金額], 売上[地域], "東京")
 + AVERAGEIFS(売上[金額], 売上[地域], "大阪")) / 2

よくあるつまずきと対策

  • 範囲サイズ不一致:
    原因: 条件範囲の行数・列数が平均範囲と異なる。
    対策: 開始行・終了行を揃える。テーブル参照なら安全。
  • 数値に見える文字列の混在:
    原因: “123”がテキストで比較が狂う。
    対策: VALUEで数値化、入力規則・書式を統一。
  • 日付判定が効かない:
    原因: テキスト日付やロケール差。
    対策: 「>=」や「<=」は文字列、日付はセル参照で結合。
=AVERAGEIFS(E2:E200, D2:D200, ">=" & H1, D2:D200, "<=" & H2)
  • OR条件の平均が歪む:
    原因: 単純に平均を2つ足して割ると件数差を無視。
    対策: SUMIFSで合計、COUNTIFSで件数を求め、合計/件数で厳密な平均にする。

応用テンプレート

  • OR条件を厳密な平均で作る(件数加重)
=SUM(
   SUMIFS(売上[金額], 売上[地域], "東京"),
   SUMIFS(売上[金額], 売上[地域], "大阪")
 )
 / SUM(
   COUNTIFS(売上[地域], "東京"),
   COUNTIFS(売上[地域], "大阪")
 )
  • 期間+カテゴリ+非空の組み合わせ
=AVERAGEIFS(売上[金額],
            売上[日付], ">=" & H1,
            売上[日付], "<=" & H2,
            売上[カテゴリ], "食品",
            売上[備考], "<>")
  • しきい値をセルで柔軟指定 閾値がH3
=AVERAGEIFS(売上[金額], 売上[金額], ">=" & H3)
  • 複数列を同じ条件で平均(列ごとの平均を表示)
=AVERAGEIFS(売上[金額], 売上[地域], H1)
=AVERAGEIFS(売上[送料], 売上[地域], H1)

練習問題

  • 問題1: A列=地域、B列=月、C列=売上。地域が「東京」かつ月が「12月」の売上平均をC201に表示してください。
    • 解答例:
=AVERAGEIFS(C2:C200, A2:A200, "東京", B2:B200, "12月")
  • 問題2: D列=金額、E列=日付。H1〜H2の期間内の金額平均をD201に表示してください。
    • 解答例:
=AVERAGEIFS(D2:D200, E2:E200, ">=" & H1, E2:E200, "<=" & H2)
  • 問題3: テーブル「売上」で、カテゴリが「食品」、備考が空でない行の金額平均をH2に表示してください。
    • 解答例:
=AVERAGEIFS(売上[金額], 売上[カテゴリ], "食品", 売上[備考], "<>")
  • 問題4: 地域が「東京」または「大阪」の金額の厳密な平均をH2に表示してください(OR条件・件数加重)。
    • 解答例:
=SUM(SUMIFS(売上[金額], 売上[地域], "東京"),
     SUMIFS(売上[金額], 売上[地域], "大阪"))
/ SUM(COUNTIFS(売上[地域], "東京"),
      COUNTIFS(売上[地域], "大阪"))

まとめ

  • 複数条件の平均: =AVERAGEIFS(平均範囲, 条件範囲1, 条件1, …)(AND判定)
  • OR条件: SUMIFS/COUNTIFSを組み合わせて“合計/件数”で作ると正確
  • 演算子は文字列+セル参照: ">=" & H1 で安全に比較
  • テーブル参照: 読みやすく、行追加に自動追従

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