スプレッドシートのAVERAGEIFS関数の使い方|複数条件平均

スポンサーリンク

スプレッドシートのAVERAGEIFS関数の使い方|複数条件平均

「営業部の4月の売上平均だけ出したい」「評価がB以上で、かつ出席率80%以上の人だけで平均点を計算したい」。条件が2つ以上になると、どう数式を書けばいいか迷いますよね。

AVERAGEIF関数なら条件を1つ指定して平均を出せます。でも、条件が2つ以上になると対応できません。フィルタで手作業するのは手間がかかります。

そんなときに使うのがAVERAGEIFS関数です。この記事では基本の書き方からAVERAGEIFとの引数順の違い、日付条件、エラー対処法まで紹介します。

AVERAGEIFS関数とは?

AVERAGEIFS関数(読み方: アベレージイフエス関数)は、複数の条件をすべて満たすデータだけを平均する関数です。「AVERAGE(平均)」+「IF(もし)」+「S(複数形)」が名前の由来です。「複数の”もし”で平均する」という意味になっています。

たとえば売上表で「営業部の、4月の売上平均だけを知りたい」場合を考えてみましょう。A列に部署名、B列に月、C列に売上金額が並んでいるとします。AVERAGEIFS関数を使えば、A列が「営業部」かつB列が「4月」の行だけを自動で平均してくれます。

AVERAGEIFS関数にできることをまとめると、次のとおりです。

  • 2つ以上の条件を同時に指定して平均する(AND条件)
  • 比較演算子で「以上・以下」「等しくない」を条件にできる
  • ワイルドカードで部分一致の平均ができる
  • 日付の期間を区切って平均を出せる
  • 条件のペアは最大127組まで追加できる

「条件を2つ以上つけて平均してね」とお願いする関数です。

NOTE

AVERAGEIFS関数はGoogleスプレッドシートの全バージョンで使えます。Excelとの互換性も完全なので、ファイルのやり取りでも安心です。

AVERAGEIFS関数の書き方(構文と引数)

基本構文

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

カッコの中に、平均する範囲・条件範囲・条件をセットで指定します。

引数の説明

引数必須/任意説明
平均範囲必須実際に平均を計算するセル範囲
条件範囲1必須1つ目の条件を判定するセル範囲
条件1必須1つ目の条件(例: “営業部”)
条件範囲2任意2つ目の条件を判定するセル範囲
条件2任意2つ目の条件

条件のペア(条件範囲と条件)は最大127組まで追加できます。

AVERAGEIF関数との引数順の違い(最重要ポイント)

AVERAGEIFS関数を使い始めるとき、一番つまずきやすいのが引数の順番です。AVERAGEIF関数とAVERAGEIFS関数を並べて比較してみましょう。

=AVERAGEIF(条件範囲, 条件, 平均範囲)
=AVERAGEIFS(平均範囲, 条件範囲1, 条件1, ...)
比較項目AVERAGEIFAVERAGEIFS
平均範囲の位置最後(第3引数)最初(第1引数)
条件の数1つだけ複数(最大127組)
平均範囲の省略省略可省略不可

AVERAGEIF関数は「平均範囲」が最後です。AVERAGEIFS関数は「平均範囲」が最初に来ます。逆なので混同しやすいポイントです。

覚え方のコツは「AVERAGEIFS関数は平均範囲が先頭」です。条件を何組でも追加できるよう、平均範囲を先に固定して、残りを条件ペアの繰り返しにしたわけですね。

TIP

この引数順序の違いはSUMIFS関数でも同じです。SUMIF→SUMIFSでも合計範囲が最後から最初に移動します。「IFS系は対象範囲が先頭」と覚えておくと安心です。

AVERAGEIFS関数の基本的な使い方

ここからは、次の売上データを使って具体的な使い方を見ていきます。

 A列(部署)B列(月)C列(売上)
2行目営業部4月350,000
3行目営業部5月420,000
4行目総務部4月180,000
5行目総務部5月200,000
6行目営業部4月310,000
7行目企画部4月280,000

2つの条件で平均を求める

「営業部」の「4月」の売上平均を求めたい場合はこう書きます。

=AVERAGEIFS(C2:C7, A2:A7, "営業部", B2:B7, "4月")
  • C2:C7(平均範囲): ここの数値を平均する
  • A2:A7(条件範囲1): ここから「営業部」を探す
  • “営業部”(条件1): この文字列と一致する行が対象
  • B2:B7(条件範囲2): ここから「4月」を探す
  • “4月”(条件2): この文字列と一致する行が対象

A列が「営業部」かつB列が「4月」の行だけが対象です。350,000と310,000の平均で 330,000 が返ります。

比較演算子で数値条件を指定する

「営業部」かつ「売上が300,000以上」の平均を求めたい場合です。

=AVERAGEIFS(C2:C7, A2:A7, "営業部", C2:C7, ">=300000")

比較演算子を使う場合は、条件全体をダブルクォーテーションで囲むのがポイントです。

演算子意味書き方の例
>=以上">=300000"
<=以下"<=200000"
>より大きい">300000"
<より小さい"<300000"
<>等しくない"<>0"

セル参照と演算子を組み合わせる場合は & で連結します。

=AVERAGEIFS(C2:C7, A2:A7, "営業部", C2:C7, ">="&E1)

セル参照で条件を動的に変える

条件をセル参照にすると便利です。E1セルに部署名、F1セルに月を入力しておきます。

=AVERAGEIFS(C2:C7, A2:A7, E1, B2:B7, F1)

セルの値を変えるだけで計算結果が切り替わります。レポートやダッシュボードを作るときに活用してみてください。

AVERAGEIFS関数の実践的な使い方・応用例

基本がわかったところで、実務でよく使うパターンを見ていきましょう。

日付範囲を指定して平均を求める

「2026年4月1日〜6月30日」のように期間を絞りたいときは、同じ条件範囲に2つの条件を指定します。

=AVERAGEIFS(C2:C100, A2:A100, ">="&DATE(2026,4,1), A2:A100, "<="&DATE(2026,6,30))

ポイントは、DATE関数と & 演算子で条件を組み立てることです。">=2026/4/1" と直接書くと地域設定によっては正しく動かないことがあります。DATE関数を使うのが確実です。

同じ条件範囲(A2:A100)に「4/1以上」と「6/30以下」の2条件を指定しています。これがAVERAGEIFS関数の便利な点です。

ワイルドカードで部分一致条件

「東京」を含むすべての支店の売上平均を出したいときは、ワイルドカード * を使います。

=AVERAGEIFS(C2:C50, A2:A50, "*東京*", B2:B50, "4月")
記号意味使用例マッチする値
*任意の文字列(0文字以上)"東京"東京支店、東京第二支店
?任意の1文字"?月"4月、5月
~**そのものを検索"~*印"*印

0を除外して正確な平均を求める

データに「未入力の代わりに0が入っている」ケースってありますよね。0も計算に含めると平均が下がってしまいます。

=AVERAGEIFS(C2:C50, A2:A50, "営業部", C2:C50, "<>0")

平均範囲と同じ範囲(C2:C50)を条件範囲にして、"<>0" と指定するのがコツです。未入力セルに0を入れる運用をしている場合に、正確な平均を出せます。

不一致条件で特定データを除外する

「総務部以外」の「4月」の平均を出したい場合は <> を使います。

=AVERAGEIFS(C2:C50, A2:A50, "<>総務部", B2:B50, "4月")

特定の部署やカテゴリを除外して平均を取りたいときに便利です。

よくあるエラーと対処法

AVERAGEIFS関数でエラーが出たら、次の表を参考に対処してみてください。

エラー原因対処法
#DIV/0!条件に一致するデータが1つもない条件のスペルミス・余分なスペースを確認。IFERRORで囲む
#VALUE!条件範囲と平均範囲のサイズが不一致すべての範囲を同じ行数・列数に揃える
#VALUE!条件の文字数が255文字を超えている条件を短くするか、セル参照に変更
予想より低い値0が平均に含まれている"<>0" 条件を追加して0を除外
予想と違う値全角・半角やスペースの不一致TRIM関数やASC関数でデータを統一

#DIV/0!エラーをIFERRORで防ぐ

条件に一致するデータがないと、AVERAGEIFS関数は#DIV/0!エラーを返します。平均を計算するための分母が0になるのが原因です。レポートにエラーが出るのは避けたいですよね。

IFERROR関数で囲んでおけば安心です。

=IFERROR(AVERAGEIFS(C2:C50, A2:A50, "営業部", B2:B50, "4月"), "該当データなし")

エラーの代わりに「該当データなし」と表示されます。0を返したい場合は "該当データなし" の部分を 0 に変えてください。

結果が0になる・合わないときのデバッグ手順

0になったときは、次の手順で原因を切り分けましょう。

1. 条件を1つだけにして試す

=AVERAGEIFS(C2:C7, A2:A7, "営業部")

これで値が返れば、2つ目以降の条件に問題があります。

2. COUNTIFS関数で件数を確認する

=COUNTIFS(A2:A7, "営業部", B2:B7, "4月")

0件なら条件に合うデータがありません。スペースや全角半角を確認しましょう。

似た関数との違い・使い分け

条件付きの集計関数はAVERAGEIFS以外にもあります。「どの関数を使えばいいの?」と迷ったら次の表を参考にしてください。

関数名用途条件の数引数の順番
AVERAGEIF条件付き平均1つ条件範囲 → 条件 → 平均範囲
AVERAGEIFS複数条件付き平均最大127組平均範囲 → 条件範囲 → 条件
SUMIFS複数条件付き合計最大127組合計範囲 → 条件範囲 → 条件
COUNTIFS複数条件付きカウント最大127組条件範囲 → 条件
AVERAGE全体の平均なし数値 or 範囲

SUMIFS・COUNTIFS関数との構文対応関係

SUMIFS・COUNTIFS・AVERAGEIFSは「複数条件シリーズ」です。構文がほぼ同じで、違いは「結果として何を返すか」だけです。

関数返す値使う場面
SUMIFS合計部署別の売上合計など
COUNTIFS個数条件に合う件数を数える
AVERAGEIFS平均条件に合うデータの平均を出す

構文に慣れてしまえば、目的に応じて関数名を差し替えるだけで対応できますよ。

Excelとの違い

AVERAGEIFS関数の基本的な動作はExcelと同じです。

項目GoogleスプレッドシートExcel
基本動作同じ同じ
条件ペアの上限最大127組最大127組
ワイルドカード* ? 使用可* ? 使用可
大文字小文字の区別区別しない区別しない

大きな違いはありません。ExcelのAVERAGEIFS関数に慣れている方は、同じ書き方で使えますよ。

まとめ

AVERAGEIFS関数のポイントをおさらいしましょう。

  • AVERAGEIFS関数は「複数の条件をすべて満たすデータの平均」を求める関数
  • 書き方: =AVERAGEIFS(平均範囲, 条件範囲1, 条件1, ...)
  • 平均範囲が先頭に来る(AVERAGEIF関数とは逆)
  • 比較演算子やワイルドカードも条件に使える
  • 日付条件はDATE関数と & 演算子で組み立てる
  • "<>0" で0を除外すれば正確な平均が出せる
  • 条件一致なしの #DIV/0!エラー はIFERROR関数で対策
  • 条件が1つだけならAVERAGEIF関数、合計ならSUMIFS関数

まずは =AVERAGEIFS(平均範囲, 条件範囲, "条件") の基本形から試してみてください。条件が増えても、条件範囲と条件のペアを追加するだけです。


この記事で紹介した関数・関連記事

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