概要
「田中さんの売上の“平均”だけ知りたい」
「東京支店の売上の“平均”を出したい」
「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(条件付き合計)とセットで覚えると、
「条件付き平均」を自然に扱えるようになります。
自分のデータで、「誰の平均」「どの支店の平均」「いくら以上の平均」を出したいかをイメージしながら、実際に式を書いてみてください。
