「平均」に便利な関数を覚えよう
Excelの表にあるいくつかある数値を平均するとき「数値の合計÷数値の数」といった計算式を入力していませんか? Excelには平均を求めるための「AVERAGE」(アベレージ)関数が用意されているため、このような計算は不要です。
例えば、以下の表で「来店回数」を平均してみましょう。データは20件、合計は「93」ですが、「93÷20」のような計算をしなくても、AVERAGE関数ですぐに平均を求められます。
セルI1には「=AVERAGE(F2:F21)」と入力されています。「93÷20」の計算結果と等しい「4.65」と表示されていますね。
平均の対象とするセル範囲を指定するだけと、使い方はSUM関数とほぼ同じです。では、特定の店舗を対象に平均したいときは? 「AVERAGEIF」(アベレージ・イフ)関数や「AVERAGEIFS」(アベレージ・イフス)関数を利用します。いずれも基本の関数なので、まとめて覚えてしまいましょう。
AVERAGE関数とAVERAGEA関数の違い
AVERAGE関数とよく似た「AVERAGEA」(アベレージ・エー)関数も知っておきましょう。AVERAGE関数は指定したセル範囲に含まれる文字列、空のセル、論理値を無視して平均を求めます。一方、AVERAGEA関数は、文字列を「0」、論理値のTRUEを「1」、FALSEを「0」とみなし、空のセルは無視します。構文は以下の通りです。
=AVERAGE
(数値1, 数値2, ..., 数値255)
=AVERAGEA
(値1, 値2, ..., 値255)
引数[数値・値]に平均を求めるセル範囲を指定します。数値を直接指定しても構いません。構文は同じですが、「A」の有無で動作が異なることに注意してください。
以下は、AVERAGE関数とAVERAGEA関数の比較です。データは12件入力されており、そのうち数値が10件、「-」が2件あります。AVERAGE関数では「-」が無視されて、合計値の2002を10件で割った結果の「200.2」と表示されています。AVERAGEA関数では「-」が「0」とみなされて、合計値の2002を12件で割った結果の「166.8」と表示されています。
セルD2の数式は「=AVERAGE(B2:B11)」、セルE2の数式は「=AVERAGEA(B2:B11)」です。指定したセル範囲はどちらも同じですが、数値ではない「-」の扱いによって結果が異なります。
あらかじめ引数[数値・値]にセル範囲を指定しておき、数値を入力しながら平均を求めるような使い方をしたいときは注意が必要です。例えば、未入力のセルに「-」や「未定」などの文字列が含まれていると、AVERAGE関数とAVERAGEA関数で異なる結果となります。
条件を指定して平均する
条件を指定して平均する場合はAVERAGEIF関数、もしくはAVERAGEIFS関数を利用します。
AVERAGEIF関数
AVERAGEIF関数の構文は以下の通りです。
=AVERAGEIF
(範囲, 検索条件, 平均対象範囲)
- [範囲] ... 検索の対象とするセル範囲を指定します。
- [検索条件] ... [範囲]を検索する条件を指定します。
- [平均対象範囲] ... 平均する対象のセル範囲を指定します。[範囲]と高さが揃っていない場合、正しい結果が得られないことがあります。
例えば、店舗が「新宿」の来店回数の平均を求める数式は以下のようになります。
=AVERAGEIF(E2:E21,"新宿",F2:F21)
セルI2に「=AVERAGEIF(E2:E21,"新宿",F2:F21)」と入力しました。[範囲]は[店舗]列、[検索条件]は「"新宿"」、[平均対象範囲]は[来店回数]列です。
店舗が「新宿」の来店回数の平均が求められました。
AVERAGEIFS関数
AVERAGEIFS関数の構文は以下の通りです。AVERAGEIFS関数は複数の条件を指定するときの関数と思われがちですが、1つの条件のみを指定することも可能です。AVERAGEIF関数を使わずに、AVERAGEIFS関数のみを利用してもいいでしょう。
ただし、引数の順番が異なることに注意してください。平均の対象とする数値が入力されているセル範囲を最初の引数[平均対象範囲]に指定し、[条件範囲]と[条件]をセットで指定します。
=AVERAGEIFS
(平均対象範囲, 条件範囲1, 条件1, 条件範囲2, 条件2, ..., 条件範囲127, 条件127)
- [平均対象範囲] ... 平均する対象のセル範囲を指定します。
- [条件範囲] ... 検索の対象とするセル範囲を指定します。[平均対象範囲]と高さが揃っていない場合、エラーとなります。
- [条件] ... [条件範囲]を検索する条件を指定します。
例えば、店舗が「新宿」、性別が「男」の来店回数の平均を求める数式は以下のようになります。
=AVERAGEIFS(F2:F21,E2:E21,"新宿",C2:C21,"男")
セルI3に「=AVERAGEIFS(F2:F21,E2:E21,"新宿",C2:C21,"男")」と入力しました。[平均対象範囲]は[来店回数]列、[条件範囲1]は[店舗]列、[条件1]は「"新宿"」、[条件範囲2]は[性別]列、[条件2]は「"男"」です。
店舗が「新宿」、性別が「男」の来店回数の平均が求められました。
複雑な条件を指定して平均する
任意の文字を含む文字列や○○以外といった条件も指定可能です。AVERAGEIF関数とAVERAGEIFS関数の引数[条件]に利用できます。
なお、上の例では、数式内に「"新宿"」や「"男"」と直接指定しましたが、「"」(ダブルクォーテーション)で囲んだ条件をセルに入力して、セル参照することもできます。
引数[条件]に使える比較演算子
演算子 | 名称 | 使用例 | 結果 |
---|---|---|---|
= | 等しい | "=5" | 5と等しい | <> | 等しくない | "<>新宿" | 「新宿」に等しくない |
> | より大きい | ">5" | 5より大きい |
< | より小さい | "<5" | 5より小さい |
>= | 以上 | ">=5" | 5以上 | <= | 以下 | "<=5" | 5以下 |
引数[条件]に使えるワイルドカード
ワイルドカード | 意味 | 使用例 | 結果の例 |
---|---|---|---|
* | 任意の文字列 | "*谷" | 渋谷、四ッ谷、千駄ヶ谷など 任意の文字列+「谷」 |
? | 任意の1文字 | "新?" | 新宿、新橋、新田など 「新」+任意の1文字 |
ワイルドカードそのものを検索したいときは、「*」や「?」を「~」で挟んで、「"~?~"」と指定します。
あいまいな条件で平均する
『「新」からはじまる』といったあいまいな条件で平均を求めてみましょう。入力する数式は以下の通りです。AVERAGEIFS関数でも同じように指定できます。
=AVERAGEIF(E2:E21,"新*",F2:F21)
セルI2に「=AVERAGEIF(E2:E21,"新*",F2:F21)」と入力しました。「"新*"」は「新」からはじまる任意の文字列という意味です。この例では「新宿」と「渋谷」が該当します。
「○○以外」の条件で平均する
今度は『「新宿」以外で「男」』という条件で平均を求めてみましょう。入力する数式は以下の通りです。AVERAGEIF関数でも同じように指定できます。
=AVERAGEIFS(F2:F21,E2:E21,"<>新宿",C2:C21,"男")
セルI2に「=AVERAGEIFS(F2:F21,E2:E21,"<>新宿",C2:C21,"男")」と入力しました。「"<>新宿"」は「新宿以外」という意味です。
AVERAGE系関数を総まとめしました。末尾に「A」「IF」「IFS」と付く関数が存在するのは、個数を求める「COUNT」(カウント)関数と共通する特徴なので、あわせて覚えておくといいでしょう。
関連記事
Source: できるネット
数値を平均する「AVERAGE」系関数を総まとめ。条件を指定できるAVERAGEIF / AVERAGEIFS関数はどう使う?