条件に合うデータの平均を求める…AVERAGEIF関数

[Excel 2016/2013/2010/2007]

AVERAGEIF関数を使用すると、表の中から条件に合うデータを探して平均値を求められます。

スポンサーリンク

作例…会員ランクが「S」の会員の平均年齢を求める

図1の名簿の「会員ランク」欄(セルC3~C9)から「S」を検索して、「年齢」欄(セルD3~D9)の数値の平均を求めます。

AVERAGEIF関数の引数[範囲]に「会員ランク」欄の「C3:C9」、[条件]に「S」が入力されているセル「F3」、[平均対象範囲]に「年齢」欄の「D3:D9」を指定すると、会員ランクが「S」の会員の平均年齢を求められます。

[範囲]から[条件]を探し、見つかった行の[平均対象範囲]のデータの平均を求める
=AVERAGEIF(範囲, 条件[, 平均対象範囲])

セルG3 | =AVERAGEIF(C3:C9,F3,D3:D9)

図1 AVERAGEIF関数を使用して、会員ランクが「S」の会員の平均年齢を求める。

関数解説…AVERAGEIF関数

書式

=AVERAGEIF(範囲, 条件[, 平均対象範囲])

範囲]から[条件]に一致するデータを探し、見つかった行の[平均対象範囲]のデータの平均値を求めます。指定した[条件]に該当するデータがない場合、エラー値「#DIV/0!」が返されます。

引数

引数 指定 説明
範囲 必須 条件判定の対象となるデータが入力されているセル範囲を指定する
条件 必須 条件判定のための条件を指定する
平均対象範囲 省略可 計算対象の数値が入力されているセル範囲を指定する。省略した場合は[範囲]のデータが対象になる

条件の指定例

図2 文字列、数値、日付の条件で集計してみる。

■文字列条件:条件が入力されているセルを指定するか、条件となる文字列を「”」(ダブルクォーテーション)で囲んで入力します。

=AVERAGEIF(C3:C9,F3,D3:D9)
=AVERAGEIF(C3:C9,"旅費交通費",D3:D9)

■数値条件:条件が入力されているセルを指定するか、条件となる数値を直接入力します。

=AVERAGEIF(B3:B9,F4,D3:D9)
=AVERAGEIF(B3:B9,18,D3:D9)

■日付条件:条件が入力されているセルを指定するか、条件となる日付を「"」(ダブルクォーテーション)で囲んで入力するか、DATE関数で「DATE(年,月,日)」のように入力します。

=AVERAGEIF(A3:A9,F5,D3:D9)
=AVERAGEIF(A3:A9,"2017/4/10",D3:D9)
=AVERAGEIF(A3:A9,DATE(2017,4,10),D3:D9)

STEPUP…AVERAGEIF関数をコピーして集計表を作成するには

AVERAGEIF関数を使用して集計表を作成する場合は、数式をコピーしたときに引数[範囲]と[平均対象範囲]がずれないように、絶対参照(「$A$1」形式)で指定します。引数[条件]は相対参照(「A1」形式)で指定して、数式をコピーしたときに適切に条件が変化するようにします。

先頭のセルに入力する数式
セルG3 | =AVERAGEIF($C$3:$C$9,F3,$D$3:$D$9)

コピー先の数式
セルG4 | =AVERAGEIF($C$3:$C$9,F4,$D$3:$D$9)
セルG5 | =AVERAGEIF($C$3:$C$9,F5,$D$3:$D$9)
([条件]の「F3」は「F4」「F5」に変化するが、[範囲]と[平均対象範囲]は変化しない)

図3 引数[範囲]と[平均対象範囲]を絶対参照、[条件]を相対参照で指定すると、数式をコピーするだけで会員ランクごとの集計表を作成できる。

スポンサーリンク

関連記事