AVERAGEIFS関数で条件付き平均を算出する方法

AVERAGEIFS関数で条件付き平均を算出する方法 IT

第1章:そもそもAVERAGEIFS関数って何?基本のキを押さえよう

Excelを使っていて、平均を取りたい場面はよくありますよね。たとえば、「特定の店舗の売上平均を出したい」や「期中に入社した社員の平均残業時間を知りたい」といったケース。そんなときに活躍するのが、AVERAGEIFS関数です。

この章では、AVERAGEIFS関数の基本的な概念と用途、そして他の関数との違いについてわかりやすく紹介していきます。

■ AVERAGE関数と何が違うの?

AVERAGE関数は単純に複数の数値の平均を求める関数です。たとえば、=AVERAGE(A1:A5)とすれば、A1〜A5の数値の平均を出せます。

しかし、実務では「特定の条件を満たすデータ」だけの平均が知りたい場面が多く、ここで登場するのがAVERAGEIFS関数です。

AVERAGEIFS関数はその名の通り「複数の条件(IFs)を満たすデータの平均」を求める関数です。つまり、データを絞り込んだうえで平均を計算することが可能なのです。

■ IFとIFS、AVERAGEIFとの違い

Excelには似た名前の関数がいくつかありますが、それぞれの違いも押さえておきましょう。

  • IF関数: 条件に応じて表示内容を変える関数(例:条件を満たせば「合格」、満たさなければ「不合格」など)
  • IFS関数: 複数の条件を整理して、条件ごとに異なる処理を行う関数
  • AVERAGEIF関数: 条件が1つのときに使える条件付き平均関数
  • AVERAGEIFS関数: 複数条件を組み合わせて平均を出すときに使う

この中で、AVERAGEIFSは最も柔軟で実務向きです。なぜならビジネスデータには、「日付が〇月以降・かつ部署が〇〇部の平均残業時間」など、複数の条件を同時に考慮する必要があるケースが多いからです。

■ こんなときに使える!AVERAGEIFSの活用シーン

たとえば、あなたが営業部で毎月の成績データをまとめていて、
今月、関東エリアの支店で、売上が100万円を超えた担当者の平均売上」を知りたいシーンを想像してみてください。

このような条件はAVERAGE関数では対応できませんし、AVERAGEIFでも1条件しか指定できないので不十分。AVERAGEIFSなら「エリアが関東」「売上が100万円超え」など複数の条件を設定して平均を出すことができます。

■ 実務がデキる人は、集計がうまい

20代で仕事のスキルを磨いていきたいと考えるなら、Excelの集計関数はマスト。特にAVERAGEIFSのような「条件付き集計」ができるようになると、職場でかなり重宝される存在になれます。

「分析できる人=仕事ができる人」という印象は間違いなくありますし、頼られることで日々のやりがいもアップしていきますよ。

次章では、AVERAGEIFS関数の使い方や構文を詳しく解説していきます。実務ですぐ使えるように、一つずつ丁寧に見ていきましょう。

第2章:書き方をマスター!AVERAGEIFSの基本構文を覚えよう

ここからは、AVERAGEIFS関数の具体的な書き方と構成について見ていきましょう。関数を正しく使いこなすためには、基本の構文をしっかり理解しておくことが大切です。特に業務での集計作業においては、関数のミスがそのまま数字の誤りにつながるため、正確に使えるようになっておく必要があります。

■ AVERAGEIFS関数の書式

まず、AVERAGEIFS関数の基本的な構文は以下の通りです。

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

簡単に構成を説明すると、以下のようになります。

  • 平均範囲: 平均を求めたい数値が入っているセル範囲。
  • 条件範囲1: 条件を当てはめるデータの範囲。
  • 条件1: 条件範囲1に対して適用する条件。
  • 条件範囲2, 条件2:(任意)2つ目以降の条件。必要に応じていくつでも追加可能。

つまり、「この範囲から平均を求めるけど、条件はこれとこれに合ったデータだけね!」という指示を出すためのフォーマットになっています。

■ 実際の例で見てみよう

たとえば、以下のような表を想像してください。

名前 部署 勤続年数 残業時間
田中 営業部 6 12
鈴木 技術部 4 15
佐藤 営業部 5 10
山本 営業部 2 8

このデータをもとに「営業部かつ勤続年数が5年以上の社員の平均残業時間」を出したい場合、AVERAGEIFS関数は以下のように書きます。

=AVERAGEIFS(D2:D5, B2:B5, "営業部", C2:C5, ">=5")

この式の意味は以下の通りです。

  • D2:D5: 平均を求めたい「残業時間」の範囲
  • B2:B5: 条件範囲1(部署)が「営業部」である行に絞る
  • C2:C5: 条件範囲2(勤続年数)が「5年以上」である行に絞る

これにより、田中さん(6年・営業部・12時間)と佐藤さん(5年・営業部・10時間)の2名が条件に合い、(12+10)÷2 = 11 が平均として返されます。

■ 書式ミスに注意

AVERAGEIFS関数を使う際は、以下のようなポイントに注意してください。

  • 平均範囲と各条件範囲のサイズが一致していないとエラーになる
    (例:平均範囲がD2:D5なのに、条件範囲がB2:B6になっているとダメ)
  • 条件を文字列で書くときは、必ずダブルクオーテーションで囲む
    (例:”営業部”, “>=5″)
  • 日付などの特殊なデータ型を扱う際は特に慎重に
    (次章で例を紹介します)

■ まとめ:必ず構文を意識しよう

AVERAGEIFS関数は非常に便利な分、構文ミスも起こりやすい関数でもあります。まずはこの章で紹介した基本構文を頭に入れて、簡単な例から構築してみるクセをつけましょう。

次章では、さらに一歩進んで、ビジネス実務でよく使われる具体的な使用例をいくつか紹介していきます。自分の業務にあてはめながら読んでみてくださいね。

第3章:実務で使える!よくある条件付き平均の具体例

ここからは、実際のビジネスシーンを想定したAVERAGEIFS関数の使用例を紹介していきます。前章までで構文や使い方の基本を掴んだと思いますので、今度はそれをどう現場で活かせるか、という観点で見ていきましょう。

Excelでの集計作業は単なる数字合わせではなく、データから「示唆」を得るための重要なステップです。この章を通して、「あ、この場面で使える!」とイメージが具体化するはずです。

■ 例1:部署別・条件付きの平均残業時間

以下のような社員データがあったとします。

名前 部署 勤続年数 残業時間
田中 営業部 6 12
鈴木 技術部 4 15
佐藤 営業部 5 10
山本 営業部 2 8
高橋 技術部 6 18

「営業部かつ勤続年数が5年以上の社員の平均残業時間」を求めたい場合、対象は田中さん(6年・12時間)佐藤さん(5年・10時間)の2名です。この場合のAVERAGEIFS関数は次のようになります。

=AVERAGEIFS(D2:D6, B2:B6, "営業部", C2:C6, ">=5")

これにより、(12 + 10)÷ 2 = 11 が返されます。このように、条件を複数指定することで、分析の粒度を細かくすることが可能です。

■ 例2:日付を条件にした平均売上の計算

次に、営業日報のような売上データを扱うケースです。下記のようなデータがあるとして、「2024年4月以降の売上のみを対象とした平均」を出したい場合を考えてみましょう。

日付 店舗 売上
2024/03/25 A店 120000
2024/04/02 B店 150000
2024/04/10 A店 180000
2024/05/01 B店 160000

この場合、AVERAGEIFS関数のポイントは日付に対して条件をかける部分。以下のように記述します。

=AVERAGEIFS(C2:C5, A2:A5, ">=2024/4/1")

この式では、A2:A5の日時が2024/4/1以降の行だけに絞り込み、売上(C2:C5)の平均を求めています。対象はB店(150,000円)、A店(180,000円)、B店(160,000円)の3件なので、平均は163,333円となります。

ちなみに、日付は=DATE(2024,4,1)のように関数で記述する方法もあります。その場合、数式は以下のようになります。

=AVERAGEIFS(C2:C5, A2:A5, ">="&DATE(2024,4,1))

この書き方にしておくと、年月日ごとに柔軟に対応できて便利ですよ。

■ 例3:複数条件を組み合わせる応用例

最後に、より複雑な条件を組み合わせた応用例を紹介します。例えば、「B店かつ、2024年4月以降の売上平均」を出したい場合は、次のように記述します。

=AVERAGEIFS(C2:C5, B2:B5, "B店", A2:A5, ">=2024/4/1")

この式では「店舗名がB店」かつ「日付が2024年4月1日以降」という2つの条件を同時に満たすデータに絞り、平均を算出しています。この条件に当てはまるのは2件(150,000円と160,000円)なので、平均は155,000円になります。

■ 実務で活用するコツ

AVERAGEIFS関数は、数値・文字列・日付などどんなデータ型にも対応可能なので、実務のあらゆるシーンで使いどころがあります。特に複数の条件が絡むデータ分析や、報告資料の作成では力を発揮します。

「部署別・月別・評価ランク別に平均スコアを出す」など、集計の視点を整理するスキルと関数スキルが組み合わさると、分析の質がグッと上がります。

次の章ではこの関数を利用する際によく起こるエラーやつまずきやすいポイントを取り上げて解説していきます。正確に使いこなすためのポイントを押さえていきましょう。

第4章:つまずきポイントを攻略!エラーとその対処法

AVERAGEIFS関数は非常に便利ですが、慣れないうちはエラーに遭遇してしまうことも少なくありません。この章では、実務でよくあるつまずきポイントと、その解決策を紹介していきます。原因不明のエラーが出たときに焦らないよう、よくあるミスを事前に知って備えておきましょう。

■ 範囲のサイズが一致していない

最もありがちなエラーの1つが、「平均範囲」と「条件範囲」のサイズが一致していないことです。AVERAGEIFS関数では、平均を算出する範囲と、それに対応する各条件の範囲がすべて同じ行数・列数でなければいけません。

たとえば、以下のような書き方はNGです。

=AVERAGEIFS(D2:D5, B2:B6, "営業部")

この場合、D2:D5は4行範囲ですが、B2:B6は5行になっておりサイズが一致していません。こうした不一致があると、#VALUE! エラーになってしまうので、まずは全ての範囲のサイズが揃っているかを確認しましょう。

■ 条件の記述ミス

条件の指定方法もミスしやすいポイントです。特に注意したいのが、記号や文字列の扱いです。

  • 数値の条件に「>=5」などの演算記号を使うときは、ダブルクオーテーションで囲む(例:”>=5″)
  • 文字列条件(例:「営業部」)も必ずダブルクオーテーションで囲む
  • 関数と使う場合は文字列連結(&)に注意

例えば、「2024年4月1日以降」という日付条件をDATE関数を使って指定したい場合、下記のようになります。

=AVERAGEIFS(C2:C5, A2:A5, ">="&DATE(2024,4,1))

このように「比較演算子(>=など)」とDATE関数を&(アンパサンド)でつないでいる点に注目してください。もし>=DATE(2024,4,1)のように書くと、構文エラーとなってしまいます。

■ 空白セルが含まれている

データ範囲の中に空白セルがあると、AVERAGEIFS関数は正しく動作しないことがあります。特に、平均を求める対象セルが空白の場合、その行のデータは平均計算から除外される点に注意しましょう。

また、条件範囲に空白があると意図したフィルタがかからない可能性もあります。空白を扱う必要がある場合は、以下のように明示的に条件を指定すると便利です。

=AVERAGEIFS(D2:D6, C2:C6, "<>")

この式は、条件範囲C2:C6において空白でないセルのみを対象にしています(”<>” は「空白でない」ことを表す記号です)。

■ データ形式の不一致

Excelでは、セルに入力された値の表示形式(数値・文字列・日付など)と内部的なデータ型が一致していないと、関数が正しく動作しないケースがあります。特に、見た目は日付に見えても内部は”文字列”になっていると、日付条件が無視されることがあります。

そのような場合は、対象セルの書式を「日付」や「数値」に統一するか、関数(例えば DATEVALUE や VALUE)で変換しながら使うと回避できます。

■ フィルタや非表示行の影響

AVERAGEIFS関数は、非表示行やフィルタで隠れたセルも計算対象に含めます。つまり、「表示されているセルだけを平均したい」という場面ではAVERAGEIFSはそのまま使えません。

そのような場合は、SUBTOTAL関数AGGREGATE関数などを併用する必要があります(これは応用編で解説します)。

■ まとめ:エラーに強くなれば関数の達人

AVERAGEIFS関数を使う上でのエラーは、構文・セル範囲・データ形式の3点をおさえておけば大きく減らすことができます。関数ミスは慣れてきた頃に意外と多く発生するので、常に丁寧に・確実に作成することが大切です。

次章では、こうした基本のミスを回避した状態からさらに、生産性向上のための応用テクニックや他関数との組み合わせについて紹介していきます。より実務で役立つAVERAGEIFSの活用方法を一緒にマスターしていきましょう!

第5章:今日から使える!効率UPテクニックと組み合わせワザ

ここまでで、AVERAGEIFS関数の基本的な使い方から実務での応用、さらにはエラー対処法までを学んできました。でも一歩進んで「もっとスマートに」「もっと柔軟に」AVERAGEIFSを使いこなしたい、と思いませんか?

この章では、AVERAGEIFS関数をさらにパワーアップさせる他関数との組み合わせテクニックと、時短につながる操作のコツをご紹介します。明日からの実務で、ひと味違うExcelスキルをアピールできるようになりますよ。

■ 日付処理にはDATE関数との併用が便利

第3章でも少し触れましたが、日付を条件にする場合は DATE関数 を使うことで柔軟性がグッと上がります。たとえば、「2024年4月以降のデータを対象にした平均」を出すとき、下記のように書くことで年月日の指定が明確にできます。

=AVERAGEIFS(C2:C100, A2:A100, ">="&DATE(2024,4,1))

この方法なら、毎月変わる集計基準日をセルに入力させたり、スケジュール的に予測して自動化したりすることも可能です。たとえば、基準日をセルE1に入力しておいて、

=AVERAGEIFS(C2:C100, A2:A100, ">="&E1)

このようにすれば、日付条件を動的に変更できるのも大きなポイントです。

■ 部分抽出にはTEXT関数やLEFT, MID, RIGHT関数の併用が効果的

データの形式によっては、「部署コード2023営業」「商品ID:A001」など、同じセルに文字と数値・コードが混在していることも。こうした場合は、TEXT関数や文字抽出関数(LEFTMIDRIGHT)を活用しましょう。

たとえば、セルに「2023営業」「2024営業」などと書かれていて、「2024年度の営業部のみ平均を取りたい」といった場面では、次のように補助列を使って条件を整えるのが好手です。

=LEFT(B2,4) = "2024"

このようにして「年度」部分だけを抽出・判定すれば、AVERAGEIFSに使いやすい条件列を自分で作ることができます。

■ INDIRECT関数でシートをまたいだ集計

もしデータが複数のシート(月別・店舗別など)に分かれていた場合でも、INDIRECT関数を使えば動的にセル参照を伸ばして処理することが可能です。

たとえば、シート名が「4月」「5月」…となっていて、指定した月のデータから平均を取りたい場合、次のような式が使えます。

=AVERAGEIFS(INDIRECT("'"&A1&"'!C2:C100"), INDIRECT("'"&A1&"'!A2:A100"), "営業部")

ここで、A1セルには対象のシート名(例:「4月」)が入っていると仮定します。INDIRECTは文字列からセル参照を動的に作る関数で、複数シートの切り替え処理やテンプレート作成にも役立ちます。

■ フィルタ後の集計にはSUBTOTALやAGGREGATEを

AVERAGEIFSはフィルタで非表示になった行も集計対象に含めてしまいます。もし、表示されているデータのみを対象に平均を出したいという場合は、SUBTOTALAGGREGATE関数の使用が効果的です。

たとえば、SUBTOTALを使って表示行のみで平均を出すには次のようにします。

=SUBTOTAL(101, D2:D100)

ここで「101」は平均値(AVERAGE)のコードであり、フィルタやグループで隠された行を除外してくれます。AVERAGEIFSとの直接的な組み合わせはできませんが、計算対象の列を事前に絞りたいときに役立ちます。

■ まとめ:関数の組み合わせが“仕事ができる人”への近道

AVERAGEIFS関数はそれ単体でも十分強力ですが、他の関数と組み合わせることで、作業の柔軟性・効率性が格段に向上します。DATE・TEXT・INDIRECT・SUBTOTALなどの関数は、それぞれ特化した役割を持っており、上手に活用することで、日々の業務を一段とスマートにこなせるようになります。

忙しい20代のビジネスパーソンにとって、Excelスキルの差がそのまま業務スピードと信頼度の差につながります。ぜひ今日紹介したテクニックの中から、まずは1つでも取り入れてみて、あなたの業務をもっと快適に、効率的に進めていきましょう。

お疲れさまでした!このブログが皆さんのExcelスキル向上の助けになれば幸いです。気になった方は、ブックマークやSNSでのシェアもぜひよろしくお願いします!

コメント

NewsTowerをもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む