概要
「田中さんの売上の“平均”を出したい」ではなく、
「田中さん かつ 東京支店 かつ 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 でそのまま答えられるようになります。
