1. ホーム
  2. ブログ
  3. AVERAGEIFS関数の使い方|条件に合う行だけの平均

AVERAGEIFS関数の使い方|条件に合う行だけの平均

この記事は 事務でよく使うExcel関数まとめ|目的から探せる一覧 の1本です。他の関数もまとめて見られます。

「A社の平均単価はいくらか」「9月の1件あたりの平均金額は」。

合計や件数は出せても、平均になると急に自信がなくなるという声をよく聞きます。理由は関数の書き方ではなく、何を分母に入れるかが曖昧なまま計算してしまうことにあります。

この記事で扱う AVERAGEIFS(アベレージイフズ) は、書き方自体は SUMIFS とほとんど同じです。気をつけるのは「0」と「空欄」の扱いだけです。

この記事で使うデータ

A1
ABCD
1日付取引先商品単価
22026-09-01A社杉板1,200
32026-09-03B社檜柱3,800
42026-09-05A社合板900
52026-09-08A社見本0
62026-09-12A社杉板1,500
72026-09-15B社合板 
売上明細
4行目は無償の見本出荷で単価0。6行目は単価がまだ未入力です。

実務のデータには、こういう行が必ず混ざります。ここが平均を狂わせます。

AVERAGEIFSの形

=AVERAGEIFS(平均する範囲, 条件の範囲1, 条件1, 条件の範囲2, 条件2)
  1. 平均する範囲平均したい数字が入っている列。ここでは単価のD列
  2. 条件の範囲11つ目の条件を探しに行く列。ここでは取引先のB列
  3. 条件1探す中身。文字は "A社" のようにダブルクォートで囲む
  4. 条件の範囲22つ目の条件を探しに行く列。日付で絞るならA列

最初に「平均したい列」、そのあとは「どこを見て」「何を探すか」の2つ1組。SUMIFSとまったく同じ並びです。

!

SUMIFS・COUNTIFS・AVERAGEIFS は同じ形です

合計したい → SUMIFS
数えたい → COUNTIFS(数えるだけなので、最初の1つがない)
平均したい → AVERAGEIFS

どれか1つ書ければ、残りは関数名を変えるだけで書けます。

STEP1:条件1つで平均を出す

「A社の平均単価」を出します。

A1 =AVERAGEIFS(D2:D7, B2:B7, "A社")
ABCD
1日付取引先商品単価
22026-09-01A社杉板1,200
32026-09-03B社檜柱3,800
42026-09-05A社合板900
52026-09-08A社見本0
62026-09-12A社杉板1,500
72026-09-15B社合板 
売上明細
黄色の4行が対象。(1,200+900+0+1,500)÷4 = 900 です。

結果は 900 です。

ここで一度立ち止まってください。A社の平均単価は、本当に900円でしょうか。

落とし穴:0は分母に入り、空欄は入らない

Excelの平均は、次のように動きます。

セルの中身平均の計算
1,200 などの数値対象(分子にも分母にも入る)
0対象(分子には0が、分母には1件として入る)
空欄対象外(分母にも入らない)
文字(未定 など)対象外

つまり、無償の見本出荷(単価0)が1件混ざっただけで、平均が大きく下がります。

A1
ABC
1計算のしかた対象件数平均単価
20を含める4900
30を除く31,200
検証
同じデータでも、0を入れるかどうかで300円変わります。

どちらが正しいという話ではありません。「見本出荷を含めた実質単価」を知りたいのか、「実際に販売した商品の平均単価」を知りたいのか。目的によって変わります。

問題は、この違いを意識せずに数字を出してしまうことです。

STEP2:0を除いて平均する

「実際に売れたものだけの平均」を出すなら、条件を1つ足します。

A1 =AVERAGEIFS(D2:D7, B2:B7, "A社", D2:D7, "<>0")
ABCD
1日付取引先商品単価
22026-09-01A社杉板1,200
32026-09-03B社檜柱3,800
42026-09-05A社合板900
52026-09-08A社見本0
62026-09-12A社杉板1,500
72026-09-15B社合板 
売上明細
単価が0の行が外れました。(1,200+900+1,500)÷3 = 1,200 です。

&quot;&lt;&gt;0&quot;「0ではないもの」 という意味です。平均する列そのものを、条件の範囲にも指定できます。

書きたいこと書き方
0を除く&quot;&lt;&gt;0&quot;
0より大きいものだけ&quot;&gt;0&quot;
一定額以上だけ&quot;&gt;=1000&quot;

STEP3:条件を2つ以上にする

期間を足す場合も、SUMIFSと同じです。

=AVERAGEIFS(D:D, B:B, "A社", A:A, ">=2026/9/1", A:A, "<=2026/9/30", D:D, "<>0")
  1. DD: 平均したい単価の列
  2. BB , "A社": 取引先でしぼる
  3. AA , ">=2026/9/1": 9月1日以降
  4. AA , "<=2026/9/30": 9月30日以前

条件は「かつ」でつながります。全部に当てはまる行だけが平均されます。

#DIV/0! が出たとき

×

条件に合う行が1件もありません

平均は「合計 ÷ 件数」なので、件数が0だと計算できません。
これはエラーではなく、正常な動作です。

・条件の書き方が間違っている(スペース混入・全半角)
・本当にその条件のデータが無い

まず =COUNTIFS(...) で件数を数えて、0件かどうかを確認してください。

表示を整えたい場合は =IFERROR(AVERAGEIFS(...), &quot;対象なし&quot;) のように囲みます。
ただし原因を確認してからにしてください(IFERROR関数の使い方 を参照)。

平均だけを見て判断しない

実務で一番大事なのはここです。

!

平均は、極端な値1つで簡単に動きます

10件のうち9件が1,000円、1件だけ50,000円だった場合、
平均は5,900円になります。実態を表していません。

平均を出すときは、必ず件数も一緒に出してください。
「平均1,200円(3件)」なら、3件しかないと分かって読み手が判断できます。

C2 =AVERAGEIFS(明細!$D:$D, 明細!$B:$B, $A2, 明細!$D:$D, "<>0")
ABCD
1取引先件数平均単価合計
2A社31,2003,600
3B社13,8003,800
4C社1298011,760
取引先別
件数・平均・合計を並べると、B社が1件だけだと分かります。

件数・平均・合計の3つを並べる。これだけで、数字の読み違えがほとんどなくなります。件数は COUNTIFS、合計は SUMIFS で、条件の書き方は全部同じです。

よくあるつまずき

×

平均が思ったより低い/高い

0や空欄の扱いを確認してください。

・0が混ざっている → "<>0" を足す
・空欄がある → もともと分母に入っていません
・数字が文字として入っている → 対象外になり、分母から抜けています

3つ目は見落としやすいところです。セルが左寄せになっていないか確認してください。

×

「数式が正しくありません」と出る

平均する範囲と条件の範囲で、行数が揃っていません。

D2:D7 に対して B2:B100 のようにズレていないか確認してください。
D:D B:B のように列全体を指定すると起きなくなります。

今日やってみること

  1. 平均を出している表を1つ開く

    平均単価、平均作業時間、平均処理件数。どれでも構いません。

  2. その列に 0 が入っていないか見る

    無償対応、キャンセル、見本。0の行があれば、平均に影響しています。

  3. "<>0" を付けた場合と付けない場合を、両方出して見比べる

    差が大きければ、どちらを使うべきか判断してください。

  4. 横に件数を並べる

    COUNTIFS で件数も出します。これで読み違えがなくなります。

「平均」という数字は、出し方次第でいくらでも変わります。だから、どう出したかを説明できる状態にしておくことが大事です。

次に読むとよい記事


「出している平均が、実態を表しているか自信がない」という場合、データの中身を見れば判断できます。現状のヒアリングと課題整理は無料です。

#Excel#AVERAGEIFS#集計

この記事について

SUPRAXは、林業・製造・運送の現場経験をもとに、中小企業の業務改善・AI活用・GISの支援を行っています。 記事の内容について「うちの場合はどうか」を聞きたい方は、無料相談をご利用ください。

無料で相談してみる

あわせて読みたい

COUNTIFS関数の使い方|条件に合う件数を数える

「未処理が今どれだけ残っているか」を確認するとき、フィルタをかけて、画面右下の件数を見て、またフィルタを外して……という作業をしていませんか。 担当者ご…

記事一覧へ戻る