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

Excel
スポンサーリンク

概要

「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」とセットで覚えると理解が深まります。
「どの範囲を条件に見て」「どこを平均するか」を日本語で言葉にしてから式にする――
この癖をつけておくと、集計ロジックが頭にしっかり残るようになります。

Excel
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました