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