Introduction
Ver. all 2013 2016 2019 2021 365
項目ごとに、複数の条件を指定して平均値を出したい時に便利なのがAVERAGEIFS関数です。
Excel2007以降で使用できます。
AVERAGEIFS関数・・・指定した範囲の中で、複数の条件に合ったデータを平均する
=AVERAGEIFS(平均対象範囲,条件範囲1,条件1,[条件範囲2],[条件2],…)
- 平均対象範囲・・・平均したいデータ範囲全体を指定
- 条件範囲1・・・検索する範囲全体を指定
- 条件1・・・「条件範囲1」の中で検索する条件(セル)を指定
- 条件範囲2、条件2…・・・追加の範囲と追加の条件を指定
1つの条件しか指定しない場合はAVERAGEIF関数がおすすめです。
※AVERAGEIF関数の使い方は、下のリンク先をご覧ください。
最初はセル参照を使用する方法を紹介して、後半に文字列や日付で検索する方法を説明します。
条件付きの集計は使用する機会が多いにゃ
AVERAGEIFS関数の使い方
では、最初は下の表の「受注営業所」を「新宿営業所」、「商品区分」を「かりかり」の条件で「金額」を平均してみます。
まず、関数を入力するセルを選択して[関数の挿入]ボタンをクリック。
[関数の挿入]画面では、[関数の分類]を「すべて表示」か[統計]にすると探しやすいですよ。
引数の入力画面がこちら。
複数の条件を入力するには狭く感じますが、入力しているうちに、ドンドン下に伸びていきます。
AVERAGEIFS関数・・・指定した範囲の中で、複数の条件に合ったデータを平均する
=AVERAGEIFS(平均対象範囲,条件範囲1,条件1,[条件範囲2],[条件2],…)
- 平均対象範囲・・・平均したいデータ範囲全体を指定
- 条件範囲1・・・検索する範囲全体を指定
- 条件1・・・「条件範囲1」の中で検索する条件(セル)を指定
- 条件範囲2、条件2…・・・追加の範囲と追加の条件を指定
【ポイント】
「条件」で、セル参照以外を使用する場合はダブルクォーテーション「”」で囲む必要があります。
では、引数を入力します。
- [平均対象範囲]・・・平均したい「金額」の範囲全体「C2:C13」までを指定します
- [条件範囲1]・・・検索する条件範囲の「受注営業所」の範囲全体「A2:A13」を指定します
- [条件1]・・・今回は「新宿営業所」で検索したいので、準備しておいた右側のセル「E2」を指定します(場所を用意せず、直接文字列で指定したい場合は「”新宿営業所”」と入力します)
これで最初の条件は完成。「平均対象範囲」に関しては、最初の1回だけ設定すればOKです。続いて、次の条件を入力します。
- [条件範囲2]・・・2つ目の条件範囲である「商品区分」全体「B2:B13」を指定します
- [条件2]・・・2つ目の条件の「F2」を指定します
さらに条件がある場合は続けて指定しますが、今回はこれで終了。
[OK]をクリックすると、「新宿営業所」の「かりかり」の平均が結果として表示されます。
完成した関数は下のようになります。
=AVERAGEIFS(C2:C13,A2:A13,E2,B2:B13,F2)
文字で条件を指定するやり方
先ほどの説明は、検索条件に、すでに表に入力されている文字列を使用しました。
直接検索条件に文字列を使用したい場合はダブルクォーテーション「”」で囲む必要があります。
例えば下の表で「E2」に「新宿営業所」の「かりかり」の「金額」の平均値を出したい場合は、下のように引数を入力します。
ポイントは赤枠で囲んだ場所。
「条件」の場所では、それぞれの検索文字列をダブルクォーテーション「”」で囲んでいますね。
=AVERAGEIFS(C2:C13,A2:A13,"新宿営業所",B2:B13,"かりかり")
結果は下のようになります。
ちゃんと新宿営業所のかりかりの場所だけ平均されています。
【ポイント】
「?」や「*」のワイルドカードを使用して思い通りの条件を作成することができます。
ワイルドカードとは、類似した情報を持つデータを検索する場合などに使用する、テキストや文字をあらわすものです。
- 「?」・・・任意の1文字を表す
- 「*」・・・任意の複数文字列を表す
例えば1文字目が「新」で始まる営業所を抽出したい場合は、「新*」と入力します。
日付で条件を指定するやり方
日付で条件を指定する場合もダブルクォーテーション「”」で囲む必要があります。
下の表で、「E2」に4月1日~5日までのデータの平均を出したい場合の引数は、
下のようになります。
4月1日~5日までを2つの条件に分けて指定しています。
- 4月1日以降・・・
">=2018/4/1"
- 4月5日以前・・・
"<=2018/4/5"
完成した関数は下のようになります。
=AVERAGEIFS(C2:C13,A2:A13,">=2018/4/1",A2:A13,"<=2018/4/5")
ちゃんと設定した日付の場所だけ平均されました。
【ポイント】
日付を指定する場合は、西暦で年月日全てを入力しましょう。
【例】
- 以降の場合・・・
">=2018/4/1"
- 以前の場合・・・
"<=2018/4/1"
- 当日以降の場合・・・
">="&TODAY()
まとめ
エクセルでは、集計する機能がたくさん用意されています。
「ピボットテーブル」や「統合」機能や「集計」機能や「3D集計」など。
必要に応じて関数を使用するか、機能で対応するか考えたいですね。
最初にも書きましたが、条件が1つの場合は、昔のバージョンでも使用できる「AVERAGEIF関数」を使用するのがおすすめです。
出番の多い関数だにゃ