Excel関数 逆引き集 | 条件付き平均 → AVERAGEIF

Excel VBA Excel
スポンサーリンク

概要

「田中さんの売上の“平均”だけ知りたい」
「東京支店の売上の“平均”を出したい」
「1万円以上の受注の“平均単価”を出したい」

こういう “条件付きで平均を出す” ときに使うのが AVERAGEIF 関数です。
SUMIF が「条件付き合計」なら、AVERAGEIF は「条件付き平均」です。

AVERAGEIF は、指定した範囲の中から 条件を満たすデータだけを抜き出し、その数値の平均を計算 してくれます。


AVERAGEIF の基本(書式と考え方)

書式

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

それぞれの意味はこうです。

  • 範囲
    条件をチェックするセル範囲。担当者名や支店名など、“条件を見る列”。
  • 条件
    どのデータを平均計算の対象にするかのルール。
    例:”田中”、”>=10000″、”東京” など。
  • 平均対象範囲(省略可)
    実際に平均したい数値の範囲。
    省略した場合は「範囲」そのものを平均します。

イメージとしては、

範囲から「条件を満たすセル」を探す
→ その行に対応する平均対象範囲の値だけを集める
→ その平均を計算する

という流れです。


文字条件での AVERAGEIF(担当者・支店ごとの平均)

担当者ごとの平均売上(田中さんだけ)

前提:

  • A列:担当者
  • B列:売上

「担当者が田中の売上の平均」を出したい場合:

=AVERAGEIF(A2:A100, "田中", B2:B100)

意味:

  • A2:A100 で「田中」の行を探し
  • その行の B2:B100(売上)だけを集めて
  • そこだけ平均を出す

支店ごとの平均売上(東京支店だけ)

前提:

  • A列:支店名
  • C列:売上

「東京支店の平均売上」を出したい場合:

=AVERAGEIF(A2:A100, "東京", C2:C100)

A列で「東京」を判定し、C列の数値だけ平均します。


部分一致(「田中」を含む担当者の平均)

「田中太郎」「田中花子」など、“田中”を含む担当者の平均売上を出したいときは、ワイルドカード * を使います。

=AVERAGEIF(A2:A100, "*田中*", B2:B100)

*田中* は「前後にどんな文字がついていても、田中を含む文字列すべて」という意味です。


数値条件での AVERAGEIF(しきい値付き平均)

一定額以上だけの平均(10万円以上の平均売上)

前提:

  • B列:売上

「売上 100,000 以上の行だけの平均」を出したい場合:

=AVERAGEIF(B2:B100, ">=100000")

平均対象範囲を省略しているので、B2:B100 自体の中から
「100,000 以上」のセルだけの平均を出します。


0 より大きい売上だけの平均(0 やマイナスを除外)

=AVERAGEIF(B2:B100, ">0")

B列の中で 0 より大きいセルだけを平均します。


別列を条件にして平均する(よく使うパターン)

支店が東京の「平均単価」

前提:

  • A列:支店名
  • C列:単価

東京支店の平均単価を出したい場合:

=AVERAGEIF(A2:A100, "東京", C2:C100)

A列で条件判定、C列を平均、という形です。


担当者(セル参照)ごとの平均売上

前提:

  • A列:担当者
  • B列:売上
  • E2:平均を出したい担当者名(入力用セル)
=AVERAGEIF(A2:A100, E2, B2:B100)

E2 を変えるだけで、担当者ごとの平均を切り替えられます。


不等号付き条件とセル参照の組み合わせ

基準値以上の平均(基準セルを使う)

前提:

  • B列:売上
  • E2:基準金額(例:100000)

「売上が E2 の値以上の行だけの平均」を出したい場合:

=AVERAGEIF(B2:B100, ">="&E2)

">="&E2 の部分がポイントです。

  • ">=" と E2 の値を文字列結合 & する
  • 例えば E2=100000 なら、条件は "">=100000""" になる

AVERAGEIF を使うときの注意点・クセ

条件に使う演算子は必ず「文字列」

>=100000 のような条件は、必ず "">=100000""" のようにダブルクォーテーションで囲みます。
セル参照と組み合わせたいときは ">="&セル の形にします。


範囲と平均対象範囲の行数は必ず揃える

悪い例:

  • 範囲:A2:A100
  • 平均対象範囲:B2:B90

のように行数がズレていると、別の行を平均してしまいます。
「開始行と終了行をそろえる」が鉄則です。


TRUE / FALSE を含むセルは無視される

AVERAGEIF は、範囲の中の TRUE / FALSE などの論理値は平均計算から除外します。
空白セルも無視されるので、「入力されている数値だけの平均」になります。


条件は 1 つだけ(複数条件は AVERAGEIFS)

AVERAGEIF は 条件が 1 つ の場合専用です。
「支店が東京 かつ 担当者が田中 かつ 売上が 10万以上」のように条件が 2つ以上になる場合は AVERAGEIFS を使います。


例題

問題1

A2:A100 に担当者名、B2:B100 に売上が入っています。
担当者が「田中」の売上の平均を求める AVERAGEIF の式を書いてください。

=AVERAGEIF(A2:A100, "田中", B2:B100)

問題2

B2:B100 に売上が入っています。
売上が 100,000 以上の行だけの平均売上を求める式を書いてください(平均対象範囲は省略してかまいません)。

=AVERAGEIF(B2:B100, ">=100000")

問題3

A2:A100 に支店名、C2:C100 に単価が入っています。
支店が「東京」の平均単価を求める式を書いてください。

=AVERAGEIF(A2:A100, "東京", C2:C100)

問題4

A2:A100 に担当者名、B2:B100 に売上が入っています。
E2 に入力された担当者の平均売上を求める式を書いてください。

=AVERAGEIF(A2:A100, E2, B2:B100)

問題5

B2:B100 に売上があり、E2 に「基準金額」が入っています。
「売上が E2 の値以上」の行だけの平均売上を求める式を書いてください。

=AVERAGEIF(B2:B100, ">="&E2)

まとめ

AVERAGEIF は、

  • 条件を満たすセルだけを対象にして
  • その数値の「平均」を計算する関数です。

基本形はこの 2 パターンを押さえれば十分です。

=AVERAGEIF(範囲, 条件)                 ' 範囲そのものを平均
=AVERAGEIF(範囲, 条件, 平均対象範囲)   ' 別の列を平均

SUMIF(条件付き合計)とセットで覚えると、
「条件付き平均」を自然に扱えるようになります。
自分のデータで、「誰の平均」「どの支店の平均」「いくら以上の平均」を出したいかをイメージしながら、実際に式を書いてみてください。

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