「特定の店舗だけの売上平均を出したい」「ある点数以上の人の平均だけを知りたい」といった場面で、Excelを使っていると必ずと言っていいほど直面するのが「条件付きの平均」を求める作業です。
普通に平均を出すだけならAVERAGE関数で十分ですが、「もしも○○なら(IF)」という条件を加えたいときに出番となるのが「AVERAGEIF(アベレージ・イフ)関数」です。
この関数を使えるようになると、大量のデータの中から必要な部分だけをサッと抽出して集計できるようになり、作業効率が格段にアップします。今回は、Excel初心者の方に向けて、AVERAGEIF関数の基本から応用的な使い方までを丁寧に解説します。
AVERAGEIF関数とは?
AVERAGEIF関数を一言でいうと、「指定した範囲の中から、条件に一致するデータだけを探し出し、その平均値を計算する関数」です。
名前に含まれる「AVERAGE」は英語で「平均」を、「IF」は「もしも~なら」という意味です。つまり、「もしも条件に当てはまるなら、その平均を出す」という動作を自動で行ってくれます。
例えば、以下のようなケースで非常に便利です。
- 支店ごとの売上データがある表から、「東京支店」だけの平均売上を出したいとき
- 商品リストの中から、「単価1,000円以上」の商品だけの平均価格を出したいとき
- 成績表から、「合格」と判定された人の平均点だけを算出したいとき
このように、データをグループ分けして分析したいときに欠かせない関数です。
AVERAGEIF関数の基本構文と書き方
AVERAGEIF関数の書き方は、大きく分けて3つの要素(引数といいます)で構成されています。
=AVERAGEIF(範囲, 検索条件, [平均対象範囲])
それぞれの要素が何を指すのか、わかりやすくかみ砕いて説明します。
1. 範囲(必須)
「どこから条件を探すか」を指定する場所です。例えば、A列に「店舗名」が並んでいるなら、そのA列の範囲を指定します。
2. 検索条件(必須)
「どのような条件で絞り込むか」を指定します。「"東京支店"」や「">100"」のように記述します。後ほど詳しく解説しますが、ここでの書き方には少しルールがあります。
3. 平均対象範囲(オプション)
「実際にどの数値で平均を出すか」を指定する場所です。例えば、B列に「売上金額」が入っているなら、B列を指定します。 ※もし「範囲」で指定した場所そのもので平均を出したい場合は、この項目を省略しても大丈夫です。
【実践】ケース別・AVERAGEIF関数の使い方
それでは、具体的なケースに合わせてどのように数式を入力すればよいかを見ていきましょう。
ケース1:特定の文字列で条件を指定する場合
例えば、A列に「店舗名」、B列に「売上」が入っている表で、「本店」の売上平均だけを求めたい場合です。
数式例:`=AVERAGEIF(A2:A10, "本店", B2:B10)`
ここで重要なポイントは、文字列を指定するときは必ず「"(ダブルクォーテーション)」で囲むということです。`"本店"` と書かないと、Excelはそれを文字として認識できず、正しく動作しません。
また、完全に一致する言葉だけでなく、特定の単語が含まれているセルを探して平均を出すことも可能です。
ケース2:数値の条件(以上・以下)で指定する場合
次に、「売上が2,300,000円未満のデータの平均を出したい」という場合を考えます。
数式例:`=AVERAGEIF(B2:B10, "<2300000", B2:B10)`
数値で条件を指定する場合も、比較演算子(`<` や `>`)を含めて `" "` で囲むのが基本です。
- `">100"` :100より大きい(100を含まない)
- `">=100"` :100以上(100を含む)
- `"<100"` :100未満(100を含まない)
- `"<=100"` :100以下(100を含む)
このケースでは、平均を出したい範囲(B列)と、条件を判定する範囲(B列)が同じなため、1番目と3番目の引数に同じ範囲を指定しています。
ケース3:セル参照を使って動的に条件を変える場合
数式の中に直接 `"本店"` と書き込むと、条件を変えたいたびに数式を書き直さなければなりません。そこで便利なのが「セル参照」です。
例えば、D2セルに「本店」と入力されており、そのセルを使って平均を出したい場合はこう書きます。
数式例:`=AVERAGEIF(A2:A10, D2, B2:B10)`
これなら、D2セルの内容を「支店」に書き換えるだけで、自動的に計算結果が「支店」の平均に切り替わります。実務で集計表を作る際は、この方法が最も効率的です。
注意点とエラーへの対処法
AVERAGEIF関数を使っていると、たまに意図しない結果になったり、エラーが表示されたりすることがあります。よくある原因と対策をまとめました。
エラー「#DIV/0!」が出る理由
もっとも多いのが `#DIV/0!` というエラーです。これは「0で割り算をした」ときに発生するエラーで、AVERAGEIF関数においては「条件に一致するデータが1つも見つからなかった」ことを意味します。
例えば、範囲内に「新設支社」というデータがないのに、条件に `"新設支社"` と指定した場合、計算対象がゼロ件になるため、このエラーが表示されます。
範囲の大きさを揃える
「範囲(条件を探す場所)」と「平均対象範囲(数値を出す場所)」の行数や列数が異なっていると、正しい結果が得られない場合があります。 たとえば、条件範囲を `A2:A10`(9行分)にしたのに、平均対象範囲を `B2:B20`(19行分)にしてしまうと、Excel内部でずれて計算されるリスクがあります。必ず同じサイズで指定するようにしましょう。
空白セルや文字列の扱い
平均対象範囲の中に「空白のセル」や「文字が入力されたセル」が含まれている場合、AVERAGEIF関数はそれらを無視して計算します。そのため、わざわざ空白を削除して詰め直す必要はありません。
さらにステップアップ:複数の条件で集計したいときは?
AVERAGEIF関数は非常に便利ですが、ひとつだけ弱点があります。それは「条件をひとつしか指定できない」ことです。
「東京支店」で、かつ「10月分」のデータだけを平均したい……というように、2つ以上の条件を組み合わせたい場合は、兄弟関数の 「AVERAGEIFS(アベレージ・イフ・エス)関数」 を使いましょう。
末尾に「S」がついたこの関数は、複数の条件(もしも○○で、かつ△△なら)を指定して平均を出すことができます。構文の順番がAVERAGEIFとは少し異なるため、慣れるまで注意が必要ですが、使いこなせばさらに高度な分析が可能になります。
まとめ
AVERAGEIF関数は、大量のデータから必要な条件だけを抽出して平均を出すための、シンプルながら強力なツールです。
- 基本構文: `=AVERAGEIF(範囲, 検索条件, [平均対象範囲])`
- 文字列の条件: 必ず `" "` で囲む。
- 数値の条件: `">100"` のように比較演算子を `" "` で囲む。
- エラー対策: `#DIV/0!` が出たら「条件に合うデータがあるか」を確認する。
まずは簡単な表で、「特定の文字で絞り込む」ところから試してみてください。一度慣れてしまえば、今まで手作業でデータを並び替えて計算していた時間が大幅に短縮されるはずです。
ピックアップ記事



