概要
「A支店だけの平均売上を出したい」「商品が『りんご』の行だけ平均したい」
そんな“条件付きの平均”を一発で出してくれるのが AVERAGEIF 関数です。
AVERAGE が「指定範囲の単純な平均」なのに対して、
AVERAGEIF は「条件に合うデータだけを抜き出して、その平均を出す」関数 です。
SUMIF が「条件付き合計」なら、
AVERAGEIF は「条件付き平均」と覚えるとスッと入ってきます。
AVERAGEIF の基本
構文と引数
AVERAGEIF の書式はこうなります。
=AVERAGEIF(範囲, 条件, [平均範囲])
範囲
条件を判定する対象のセル範囲(支店名、商品名、点数など)。
条件
「どんな条件で絞り込むか」を表す文字列や数値(”A支店”、”>=70″ など)。
平均範囲(省略可)
実際に平均を取りたい数値が入っている範囲。省略すると「範囲」自体が平均対象になります。
例:A列に支店名、B列に売上金額
「A支店の平均売上」を出したいとき:
=AVERAGEIF(A2:A100,"A支店",B2:B100)
A2:A100 で「A支店」と一致する行を探し、その行の B列だけを平均します。
条件の書き方(文字・数値・セル参照)
文字列条件
商品名や支店名など、文字で条件を指定する場合です。
例:商品名が「りんご」の平均数量
(A列:商品名、C列:数量)
=AVERAGEIF(A2:A100,"りんご",C2:C100)
別セルを条件に使う場合:
=AVERAGEIF(A2:A100,E2,C2:C100)
E2 に「りんご」などの条件が入っているイメージです。
数値条件(>, >=, <, <=)
「70 点以上の平均」「0 より大きい値の平均」などの条件は、
比較演算子を文字列として書きます。
例:B2:B100 の中で「70 以上」の点数の平均
=AVERAGEIF(B2:B100,">=70")
別セルの値を使う場合は、& でつなぎます。
例:D1 の値以上の売上の平均
=AVERAGEIF(B2:B100,">="&D1)
平均範囲を省略するパターン
条件判定と平均対象が同じ列なら、平均範囲は省略できます。
例:B2:B100 の中で「0 より大きい値」の平均
=AVERAGEIF(B2:B100,">0")
この場合、「範囲=平均範囲」として扱われます。
実務での AVERAGEIF の使い方
支店別の平均売上
A列:支店名、B列:売上金額
「A支店の平均売上」を出す:
=AVERAGEIF(A2:A100,"A支店",B2:B100)
支店名を別セルに入力しておき、そこを参照する形にすると、
支店名を変えるだけで平均が切り替わる“簡易分析表”が作れます。
商品別の平均単価・平均数量
A列:商品名、C列:数量
「りんご」の平均販売数量:
=AVERAGEIF(A2:A100,"りんご",C2:C100)
同じ商品でもバラバラに売れているとき、
「平均するとどれくらい売れているか?」を知るのに便利です。
点数や評価の条件付き平均
B列:点数
「70 点以上の人の平均点」を出したいとき:
=AVERAGEIF(B2:B100,">=70")
「合格者だけの平均」「一定以上の売上を上げた日の平均」など、
“しきい値”を決めて分析したいときに使えます。
AVERAGEIF を使うときの注意点
条件に合うデータが 1 件もないとエラーになる
条件に一致するセルが 1 つもない場合、
AVERAGEIF は #DIV/0! エラーになります(0 で割り算しているイメージ)。
その場合は IFERROR と組み合わせて、
=IFERROR(
AVERAGEIF(A2:A100,"A支店",B2:B100),
0
)
のように「該当なしのときは 0(または空白)を返す」としておくと、表が崩れにくくなります。
文字列や空白の扱い
平均範囲の中に数値以外(文字列など)が混ざっていると、
それらは平均の計算から除外されます。
「ちゃんと数値として入力されているか」を意識しておくと安心です。
AVERAGEIF のテンプレート集
文字条件での平均
=AVERAGEIF(条件範囲,"文字列",平均範囲)
例:
=AVERAGEIF(A2:A100,"A支店",B2:B100)
セル参照を条件に使う
=AVERAGEIF(条件範囲,条件セル,平均範囲)
例:
=AVERAGEIF(A2:A100,E2,B2:B100)
数値条件(>=, >, <=, <)
=AVERAGEIF(条件範囲,">=70",平均範囲)
=AVERAGEIF(条件範囲,">="&セル,平均範囲)
例:
=AVERAGEIF(B2:B100,">=70")
=AVERAGEIF(B2:B100,">="&D1)
例題
問題1
A2:A100 に支店名、B2:B100 に売上金額が入っています。
「A支店の平均売上」を求める AVERAGEIF の式を書いてください。
=AVERAGEIF(A2:A100,"A支店",B2:B100)
問題2
A2:A100 に商品名、C2:C100 に販売数量が入っています。
商品名が「りんご」の平均販売数量を求める式を書いてください。
=AVERAGEIF(A2:A100,"りんご",C2:C100)
問題3
B2:B100 にテストの点数が入っています。
「70 点以上の人の平均点」を求める式を書いてください。
=AVERAGEIF(B2:B100,">=70")
問題4
A2:A100 に支店名、B2:B100 に売上金額が入っています。
セル E2 に支店名が入っているとして、「E2 の支店の平均売上」を求める式を書いてください。
=AVERAGEIF(A2:A100,E2,B2:B100)
問題5
A2:A100 に支店名、B2:B100 に売上金額が入っています。
「A支店の平均売上」を求めたいが、もし A支店が 1 件もなければ 0 を返したいとします。
IFERROR と AVERAGEIF を組み合わせた式を書いてください。
=IFERROR(AVERAGEIF(A2:A100,"A支店",B2:B100),0)
AVERAGEIF は、「条件付き合計の SUMIF」とセットで覚えると理解が深まります。
「どの範囲を条件に見て」「どこを平均するか」を日本語で言葉にしてから式にする――
この癖をつけておくと、集計ロジックが頭にしっかり残るようになります。
