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

Excel VBA Excel
スポンサーリンク

概要

「田中さんの売上の“平均”を出したい」ではなく、
「田中さん かつ 東京支店 かつ 2024年分 の“平均”を出したい」――
こういう、条件が2つ・3つと増えてきたときに使うのが AVERAGEIFS 関数です。

AVERAGEIF が「1条件付き平均」だとしたら、
AVERAGEIFS は“複数条件付き平均”の標準ツールです。
「この列が〇〇で、あの列が△△で、さらに金額が××以上」
といった実務そのものの条件を、そのまま式にできます。


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

基本の書式

AVERAGEIFS の書式はこうなります。

=AVERAGEIFS(平均対象範囲, 条件範囲1, 条件1, 条件範囲2, 条件2, ...)

ポイントは3つです。

1つ目。
最初に書くのは 「平均対象範囲」(どの列を平均するか)です。
SUMIFS と同じ順番で、「まず合計・平均したい列」から書きます。

2つ目。
条件は
「条件範囲 → 条件 → 条件範囲 → 条件…」
というペアでいくつでも追加できます。

3つ目。
すべての条件を満たした行だけを対象にして平均を計算します。
つまり、条件はすべて AND 条件(かつ) です。


文字条件 × 複数条件の平均

担当者と支店で絞り込んだ平均売上

前提とする表のイメージはこうです。

A列:担当者
B列:支店
C列:売上

「担当者が田中 かつ 支店が東京」の売上の平均を出したいとします。
その場合の式はこうです。

=AVERAGEIFS(C2:C100, A2:A100, "田中", B2:B100, "東京")

意味を言葉にすると、

C2:C100 を平均対象にして、
A列が「田中」で、なおかつ B列が「東京」の行だけに絞って平均する、ということです。


部分一致(「田中」を含む かつ 東京支店)

担当者に「田中太郎」「田中花子」など、
「田中」を含む名前の人すべてを対象にしたい場合はワイルドカードを使います。

=AVERAGEIFS(C2:C100, A2:A100, "*田中*", B2:B100, "東京")

” は「何文字でもOK」という意味で、
田中*” は「田中を含むすべての文字列」という条件になります。


数値条件 × 複数条件の平均

売上と数量の両方で絞って平均する

B列に「売上」、C列に「数量」があるとします。
「売上が 100,000 以上 かつ 数量が 10 以上の行だけの平均売上」を出したい場合。

=AVERAGEIFS(B2:B100, B2:B100, ">=100000", C2:C100, ">=10")

ここでのポイントは、不等号付きの条件(”>=100000″)は
必ず文字列として “” で囲むということです。


期間指定して平均を出す(2024年だけの平均)

A列に「日付」、B列に「売上」があるとします。
2024年1月1日~12月31日までの売上の平均を出したい場合は、
同じ列(A列)に対して「下限」と「上限」の2つの条件を指定します。

=AVERAGEIFS(B2:B100,
            A2:A100, ">=2024/1/1",
            A2:A100, "<=2024/12/31")

A列がこの期間内にある行だけを対象に、B列の平均を計算します。


文字+数値の複合条件で平均する

商品と金額で平均単価を出す

A列:商品名
B列:売上金額
C列:数量

「商品A かつ 金額が 50,000 以上」の平均単価(B÷C)を出したい、とします。
単価をあらかじめ D列に計算しておき、その平均を AVERAGEIFS で出すのがシンプルです。

D2 に単価を入れる式:

=B2/C2

その上で、商品Aで金額50,000以上の行だけの平均単価:

=AVERAGEIFS(D2:D100, A2:A100, "A", B2:B100, ">=50000")

こうすると、「商品A かつ 金額が50,000以上」の行だけに絞り込んだ平均単価が出せます。


セル参照と組み合わせる(柔軟に条件を変える)

担当者をセルから指定して平均する

A列:担当者
C列:売上
E2:担当者名(ユーザーが入力)

E2 に入力した担当者の平均売上を出したい場合:

=AVERAGEIFS(C2:C100, A2:A100, E2)

E2 を変えるだけで、誰の平均売上でもすぐに確認できます。


数値条件+セル参照の複数条件

B列:売上
C列:数量
E2:売上の下限
F2:数量の下限

「売上が E2 以上 かつ 数量が F2 以上」の平均売上を出したい場合:

=AVERAGEIFS(B2:B100,
            B2:B100, ">="&E2,
            C2:C100, ">="&F2)

">="&E2 のように、
不等号部分は文字列、数値部分はセル参照で結合するのがポイントです。


AVERAGEIFS を使うときの注意点・コツ

条件はすべて AND 条件

AVERAGEIFS の条件はすべて「かつ」です。
つまり、「条件1 も 条件2 も 条件3 も…すべて満たす行だけ」を平均します。

「A または B」のような OR 条件にしたい場合は、
AVERAGEIFS を2つ書いて、それぞれの結果を平均するなど別の工夫が必要です。


平均対象範囲と条件範囲の行数を必ず揃える

例えば、

平均対象範囲:C2:C100
条件範囲1:A3:A101

のように開始行・終了行がズレていると、
「違う行の値を条件にしてしまう」ことになります。
AVERAGEIFS を使うときは、
必ず「全ての範囲が同じ行から同じ行まで」になっているか確認してください。


条件に不等号を使うときは「文字列」で書く

>=100000 と生で書くとエラーになります。
必ず "">=100000""" のように “” で囲みます。

セル参照と組み合わせるなら、

">="&セル
"<="&セル
"<> "&セル

のパターンを覚えておくと便利です。


例題

問題1

A2:A100 に担当者名、B2:B100 に支店名、C2:C100 に売上が入っています。
「担当者が田中 かつ 支店が東京」の売上の平均を求める AVERAGEIFS の式を書いてください。

=AVERAGEIFS(C2:C100, A2:A100, "田中", B2:B100, "東京")

問題2

B2:B100 に売上、C2:C100 に数量が入っています。
「売上が 100,000 以上 かつ 数量が 10 以上」の行だけを対象にした平均売上を求める式を書いてください。

=AVERAGEIFS(B2:B100, B2:B100, ">=100000", C2:C100, ">=10")

問題3

A2:A100 に日付、B2:B100 に売上が入っています。
2024年1月1日以上 かつ 2024年12月31日以下の売上だけを対象に平均売上を求める式を書いてください。

=AVERAGEIFS(B2:B100, A2:A100, ">=2024/1/1", A2:A100, "<=2024/12/31")

問題4

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

=AVERAGEIFS(C2:C100, A2:A100, E2)

問題5

B2:B100 に売上、C2:C100 に数量が入っています。
E2 に売上の下限値、F2 に数量の下限値が入力されています。
「売上が E2 以上 かつ 数量が F2 以上」の行だけの平均売上を求める式を書いてください。

=AVERAGEIFS(B2:B100,
            B2:B100, ">="&E2,
            C2:C100, ">="&F2)

まとめ

AVERAGEIFS は、

1つ目に「平均したい範囲」を書き、
そのあとに「条件範囲・条件」をペアで並べていくことで、
複数条件をすべて満たすデータだけの平均を計算してくれる関数です。

型はこう覚えてください。

=AVERAGEIFS(平均対象範囲,
            条件範囲1, 条件1,
            条件範囲2, 条件2, ...)

SUMIFS とセットで使えるようになると、
「この条件とこの条件を満たす人だけの平均は?」という
実務そのものの問いに、Excel でそのまま答えられるようになります。

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