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

Excel
スポンサーリンク

概要

「A支店かつ1月の平均売上」「商品=りんご かつ 担当=佐藤の平均単価」――
こういう“複数条件での平均”を一発で出せるのが AVERAGEIFS 関数です。

AVERAGEIF が「条件1つ」の平均なのに対して、
AVERAGEIFS は複数の条件をすべて満たすデータだけを対象に平均を計算する関数です。


AVERAGEIFS の基本構文と考え方

AVERAGEIFS の書式は次の通りです。

=AVERAGEIFS(平均範囲, 条件範囲1, 条件1, [条件範囲2, 条件2], …)

平均範囲
実際に平均を取りたい数値が入っている範囲。
条件範囲1
条件1 を判定する対象の範囲。
条件1
「どんな条件で絞るか」を表す値・文字列・式(”A支店”、”>=1000″ など)。
条件範囲2・条件2 以降
さらに条件を追加したいときに使う。最大 127 個まで指定可能です。

ポイントは、
「平均範囲が最初」
「すべての条件範囲は平均範囲と同じサイズである必要がある」
この2つです。


基本例:支店+商品などの複数条件

支店+商品で平均売上を出す

前提:
A列:支店名
B列:商品名
C列:売上金額

「A支店 かつ りんご の平均売上」を出したい場合:

=AVERAGEIFS(C2:C100, A2:A100, "A支店", B2:B100, "りんご")

A列が「A支店」かつ B列が「りんご」の行だけを対象に、C列の平均を計算します。
AVERAGEIFS は「すべての条件を満たす行だけを平均する」= AND 条件です。

支店+日付で期間内の平均を出す

前提:
A列:支店名
B列:日付
C列:売上

「A支店 かつ 2026/1/1 以降の平均売上」を出したい場合:

=AVERAGEIFS(C2:C100,
            A2:A100, "A支店",
            B2:B100, ">="&DATE(2026,1,1))

条件1:A列が「A支店」
条件2:B列が 2026/1/1 以上
この両方を満たす行だけが平均対象になります。


条件の書き方(文字・数値・ワイルドカード)

文字列条件

商品名や支店名など、文字で条件を指定する場合:

=AVERAGEIFS(C2:C100, A2:A100, "A支店")
=AVERAGEIFS(C2:C100, B2:B100, "りんご")

別セルを条件に使う場合:

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

E2 に「A支店」などが入っているイメージです。

数値条件(>, >=, <, <=)

「100 以上」「0 より大きい」などの条件は、比較演算子を文字列として書きます。

=AVERAGEIFS(C2:C100, C2:C100, ">=1000")
=AVERAGEIFS(C2:C100, C2:C100, ">="&E2)

E2 に基準値が入っている場合の書き方です。

ワイルドカード(部分一致)

「りんごを含む商品名」など、あいまい検索をしたいときは *? を使います。

=AVERAGEIFS(C2:C100, B2:B100, "*りんご*")
=AVERAGEIFS(C2:C100, B2:B100, "A*")

*りんご* は「前後に何が付いていても『りんご』を含む」、
A* は「A で始まる文字列」を意味します。


AVERAGEIF との違いと注意点

AVERAGEIF との違い

AVERAGEIF
条件は1つだけ。構文は =AVERAGEIF(範囲, 条件, [平均範囲])

AVERAGEIFS
複数条件に対応。構文は =AVERAGEIFS(平均範囲, 条件範囲1, 条件1, …)
平均範囲が先に来る点と、条件範囲が複数指定できる点が大きな違いです。

条件に合うデータがないとき

すべての条件を満たすセルが1つもない場合、AVERAGEIFS は #DIV/0! を返します。
その場合は IFERROR と組み合わせておくと表が崩れにくくなります。

=IFERROR(
  AVERAGEIFS(C2:C100, A2:A100, "A支店"),
  0
)

範囲サイズを必ず揃える

平均範囲と各条件範囲は、行数・列数が同じである必要があります。
ここがずれていると、意図しない結果やエラーの原因になります。


AVERAGEIFS のテンプレート

支店+商品で平均

=AVERAGEIFS(平均範囲, 支店範囲, 支店名, 商品範囲, 商品名)

例:

=AVERAGEIFS(C2:C100, A2:A100, "A支店", B2:B100, "りんご")

支店+日付(期間指定)で平均

=AVERAGEIFS(平均範囲,
            支店範囲, 支店名,
            日付範囲, ">="&開始日,
            日付範囲, "<="&終了日)

例:

=AVERAGEIFS(C2:C100,
            A2:A100, "A支店",
            B2:B100, ">="&DATE(2026,1,1),
            B2:B100, "<="&DATE(2026,1,31))

商品名に特定文字を含む+担当者指定で平均

=AVERAGEIFS(平均範囲,
            商品範囲, "*文字列*",
            担当範囲, 担当名)

例:

=AVERAGEIFS(C2:C100,
            B2:B100, "*りんご*",
            D2:D100, "佐藤")

例題

問題1

A2:A100 に支店名、B2:B100 に商品名、C2:C100 に売上金額が入っています。
「A支店 かつ りんご の平均売上」を求める AVERAGEIFS の式を書いてください。

=AVERAGEIFS(C2:C100, A2:A100, "A支店", B2:B100, "りんご")

問題2

A2:A100 に支店名、B2:B100 に日付、C2:C100 に売上金額が入っています。
「A支店 かつ 2026/1/1 以降の平均売上」を求める式を書いてください。
(日付は DATE 関数で指定してよいものとします)

=AVERAGEIFS(C2:C100,
            A2:A100, "A支店",
            B2:B100, ">="&DATE(2026,1,1))

問題3

A2:A100 に商品名、B2:B100 に担当者名、C2:C100 に売上金額が入っています。
「商品名に『りんご』を含み、かつ担当者が『佐藤』の平均売上」を求める式を書いてください。

=AVERAGEIFS(C2:C100,
            A2:A100, "*りんご*",
            B2:B100, "佐藤")

問題4

A2:A100 に支店名、B2:B100 に売上金額が入っています。
セル E2 に支店名が入っているとして、「E2 の支店の平均売上」を求める式を書いてください。

=AVERAGEIFS(B2:B100, A2:A100, E2)

問題5

A2:A100 に支店名、B2:B100 に売上金額が入っています。
「A支店の平均売上」を求めたいが、もし A支店が 1 件もなければ 0 を返したいとします。
IFERROR と AVERAGEIFS を組み合わせた式を書いてください。

=IFERROR(AVERAGEIFS(B2:B100, A2:A100, "A支店"), 0)

AVERAGEIFS は、「どの範囲を平均して」「どの範囲を条件判定に使って」「どんな条件を重ねるか」を言語化できるかどうかがカギです。
一度日本語で条件を書き出してから式に落とし込む癖をつけると、複雑な集計でも迷わず組み立てられるようになります。

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