【AVERAGEIF関数】検索条件に一致したデータの平均値を求める

【AVERAGEIF関数】検索条件に一致したデータの平均値を求める

記事『【AVERAGE関数】使い方と解説 – 平均値 –』では、「AVERAGE関数」を紹介しました。

本記事は、AVERAGE関数を拡張させたAVERAGEIF関数を紹介します。

ちなみに、SUMIF関数の平均版がAVERAGEIF関数です。

本日は、SUM関数の機能を拡張した「SUMIF関数」を紹介します。

AVERAGE関数を使っていると、条件ごとに平均値を求めたいというシーンがあります。

例えば、男性の合計、女性の合計を別々に求めたい等です。

AVERAGEIF関数


記事の読み方

説明の順は以下です。
まずは、「問題」を与えて、
次に、「解答」を提示します。
最後に、「解説」です。

よくある、結論→理由の構成順に沿いました。

先に「解答」を知りたい人を考慮したためです。

「解説」の説明は不要で、とりあえずビジネス現場で使えればいいと思う方もいるためです。

また、ある程度の経験者であれば、
「問題」と「解答」だけで、関数を使いこなせてしまうためです。

そのために、即利用できるように、ダウンロードファイルを用意していますので、活用してください。
(経験者であれば、ダウンロードファイルだけで、実務に応用できてしまうのではないでしょうか)

問題

Date」ごとに、「Sales」の平均値を求めてみます。

下図のイメージです。

Excel, 関数, AVERAGEIF, データ分析, スプレッドシート

サンプルファイルは、財務サンプルの Excel ブックを一部改変したものですので、ダウンロードして活用ください。
解答付きです。

解答

AVERAGEIF関数を使用します。

なお、AVERAGE関数でも、参照範囲を適宜変更すれば、Dateごとの合計値は求まります。
ただ、大変ですし、間違いやすいですので、お勧めしません。

関数式

次の関数式を記述すると、DateごとのSales合計値が求まります。

=AVERAGEIF($M$2:$M$701,$R3&$S3,$J$2:$J$701)

解説

ざっくり解説

関数の構文は以下です。

要は、SUM関数の平均版がAVERAGE関数です。
そのため、構文も共通の構成を持っています。

AVERAGEIF(範囲条件平均対象範囲

本問題に関数の構文を当てはめると・・・

AVERAGEIF(「Date」&「Sales」

では、実際のセル範囲を指定すると・・・

AVERAGEIF($M$2:$M$701,$R3&$S3,$J$2:$J$701

となります。

図の色が対応していますので、確認いただければと思います。

Excel, 関数, AVERAGEIF, データ分析, スプレッドシート

年&月 の「&」の意味

「Date」の表記が「2014年1月」となっているため、「&」で文字列を結合をして、年&月で指定しています。

完全一致をしないと、検索にヒットしないためです。


$マークによる絶対参照/複合参照/相対参照を正しく設定してください。
分からない方は、下記記事ををご覧いただければと思います。

くわしく解説

AVERAGEIF関数とは

記事『Excel関数の検索テクニック』で説明した通り、Excel標準機能の[関数の挿入]ダイアログ/[関数の引数]ダイアログを大体のことは書かれているので、活用して詳しく解説します。

ダイアログの使い方は、上記記事を参照していただければと思います。

Excel, 関数, AVERAGEIF, データ分析, スプレッドシート

指定した検索策条件に一致するセルの値を合計します

[関数の挿入]ダイアログより


AVERAGEは「和」IFは「条件」ですから、その名の通りです。



Excel関数名が分からない場合は日本語訳してみると、発見できるかもしれません。

AVERAGEIF関数の構文

Excel, 関数, AVERAGEIF, データ分析, スプレッドシート
AVERAGEIF(範囲条件平均対象範囲

範囲の中から検索条件を合致したデータに関して、平均範囲のデータから平均するということです。

第1引数:範囲

範囲には、評価の対象となるセル範囲を指定します

上記に補足すると、
範囲は、「検索条件」の範囲を指します。

本問題では、Date列の$R3&$S3 範囲になります。

Excel, 関数, AVERAGEIF, データ分析, スプレッドシート
第2引数:検索条件

条件には、平均の計算対象となるセルを定義する条件を、数値、式、または文字列て指定します

その名の通り、「条件」を指します。

本問題では、Date列の$M$2:$M$701 が条件になります

Excel, 関数, AVERAGEIF, データ分析, スプレッドシート
第3引数:平均範囲

平均対象範囲には、実際に平均を求めるのに使用されるセルを指定します。省略した場合範囲内のセルが使用されます。

その名の通り、「平均範囲」を指します。
本問題では、Sales列の$J$2:$J$701 が平均範囲になります。

Excel, 関数, AVERAGEIF, データ分析, スプレッドシート

引数を入力しみてる

ダイアログボックスに沿って、引数を入力します。

Excel, 関数, AVERAGEIF, データ分析, スプレッドシート
[関数の引数]ダイアログの方が、解説付きで、さらに、引数の入力結果数式の結果まで表示されます。

使いやすく、間違いに気づきやすいです。

[関数の引数]ダイアログの方が、解説付きで、さらに、引数の入力結果数式の結果まで表示されます。

基本的に、直接入力よりも、使いやすく、間違いに気づきやすいです。

ただし、引数オプションを確認する場合などは直接入力も有効です。

引数オプションとは、Excel関数の引数の中で、予め用意されており、関数の特定の振る舞いや設定を制御できます。

そのため、状況に応じての使い分けが最も有効です。

参考記事は末尾に記載します。

小話:外観上は数値の場合

AVERAGEIF関数では、引数に文字列を設定してならないとルールがあります。

ただし、外観上は数値の場合には正常に動作します。

例えば、以下の2つのケースではどちらも「999」という値が数値に見えます。

書式は文字列だが、外観上は数値



しかし、2行目の「999」は書式が文字列です。

本来ならばルール違反であり、AVERAGEIF関数はエラーを返すべきですが、
実際には正常に動作します。

おそらく、裏で数値変換が行われているものと考えられます。

そのため、書式が文字列でも外観上数値であれば、AVERAGEIF関数は正常に動作するようです。

最後に

本記事では、ExcelのAVERAGEIF関数について詳しく解説しました。

AVERAGEIF関数は、条件に基づいて平均値を求める際に非常に便利なツールです。
AVERAGEIF関数は、AVERAGE関数に検索条件という機能を拡張した関数でした。

記事全体を通じて、次のポイントが強調しました。

AVERAGEIF関数の活用:
AVERAGEIF関数は、特定の条件を満たすセルの平均値を計算するのに役立ちます。
これは、データの要約や集計に非常に有用です。

関数の構文:
AVERAGEIF関数の構文は、「範囲」「条件」「平均対象範囲」という3つの引数で構成されます。
これらの引数を正しく設定することが重要です。

具体的な例:
記事では、具体的な例を使用してAVERAGEIF関数の使用方法を示しました。
特に、日付ごとの売上の平均値を求める例が取り上げました。

絶対参照と相対参照:
記事では、セル参照の際に絶対参照や相対参照の設定についても触れられています。これは、正確な計算に必要なステップです。

[関数の引数]ダイアログの活用:
AVERAGEIF関数を使用する際に、[関数の引数]ダイアログの活用が助けになることが述べました。
これは、エラーの防止や正確な引数の入力に役立ちます。

最後に、AVERAGEIF関数をマスターするために、
記事の中で紹介された参考記事を読むことをおすすめします。Excel関数の理解を深めるためにこれらのリソースを利用することができます。

Excelユーザーにとって、AVERAGEIF関数はデータの分析やレポート作成に役立つツールであり、正確な平均値の計算を支援します。
この記事がAVERAGEIF関数の理解に役立つことを願っています。

参考記事

Excel関数自体の原理原則に関する記事です。こちらを参照すると、個別の関数の理解がさらに深まるでしょう。