Excel 検索条件に一致するセルの値の平均(AVERAGEIF関数)

2020年5月15日

AVERAGEIF関数は指定したセル範囲で検索条件を満たすセルの

平均値を表示する関数でAVERAGE関数の拡張版です。

AVERAGEIF関数の上位版で複数条件を指定するAVERAGEIFS関数も存在します。

仕様

=AVERAGEIF(範囲,条件,平均範囲)
引数省略時の値説明
範囲省略不可検索条件の評価対象となるセル範囲を指定。
条件省略不可平均する条件を指定。
平均対象範囲範囲と同じ平均対象とするセル範囲を指定。
(条件と集計の範囲が異なる場合に指定)
平均範囲内で数値以外のセルは対象外。
各引数の詳細

使用例

例えば商品の中で特定のカテゴリの売上だけを平均するようなケースで使用します。

また特定の金額以上のものを平均といった用途にも仕様が可能です。

集計元表

下記の表を参照するAVERAGEIF関数を例示します。

集計元表
集計元表

特定の文字列に一致するデータを平均する例

C列の種類に一致する金額を集計元表から検索し平均する例です。

D列がAVERAGEIF関数を使った平均結果です。

特定の文字列に一致するデータを平均する例
特定の文字列に一致するデータを平均する例
引数設定例
範囲集計元表の種類のセル範囲(絶対参照)
条件結果表の種類のセル(D14ではC14)
平均対象範囲集計元表の金額のセル範囲(絶対参照)
引数の設定例

範囲と平均対象範囲はコピーで位置が変わっても

参照先の一覧表は変わらないため、

コピーしても固定されるよう絶対参照で指定します。

ワイルドカードを使用する例

前方一致、部分一致、後方一致をワイルドカードの* (アスタリスク)を用いて実現することも可能です。

「犬」を含む文字を例に3種類を例示します。

  • 検索条件を数式に直接指定する例
  • 検索条件をセル指定する例1
  • 検索条件をセル指定する例2(ワイルドカードは数式で指定)
ワイルドカードによる部分一致の例
ワイルドカードによる部分一致の例

条件には"*犬*"という文字列を指定する必要があります。

“犬"をセル指定で実現したい場合は"*"を&で文字列連結し"*"&セル指定&"*"のように

数式を組む必要があります。

この例は部分一致ですが、*を後ろだけにすれば前方一致、前だけにすれば後方一致になります。

数値の閾値を設定して平均する例

特定の金額以上の平均を集計する例です。

D列がAVERAGEIF関数を使った合計結果です。

数値の閾値を設定して平均する例
結果表

条件に比較演算子を指定して特定数値以上や以下などの条件を設定することが可能です。

範囲と平均対象範囲が同一のため、平均対象範囲を省略してあります。

ここの例では1行目は400円以上の平均、

2行目は1,000円以上の平均を出しています。

なお比較演算子は"(ダブルコーテーション)で囲み、文字列として扱う必要があります。

&(アンパサンド)は文字列連結演算子です。

D21の「">="&C21」は結果として">=400″と処理されます。

スピルを利用する方法とメリット

Office365やExcel2019以降ではスピルという形式で記述可能です。

これは複数セルに数式をコピーする場合に便利な機能です。

スピルの利用には引数2の条件を複数セルの範囲で指定します。

スピルでAVERAGEIF関数を記述する例(D14セル)
スピルでAVERAGEIF関数を記述する例(D14セル)

数式を入力するのは最初の一つのセルですが、

引数2で指定した高さ分、数式がセルのコピーなしで自動拡大されます。

D14に指定したAVERAGEIF関数がD17まで自動拡大
D14に指定したAVERAGEIF関数がD17まで自動拡大

スピルを利用することで今回の例では、

D14セルに入力するだけでよいため(D15以降にコピーペーストが不要)

以下のメリットがあります。

  • 入力の手間が少ない(数式のセルが多いほど効果が大きい)
  • 数式を編集した時、コピー忘れのリスクがない(最初のセルを更新すると全セルに反映)
  • 絶対参照が不要
  • 途中に行を追加した場合、数式のコピー&ペーストが不要。行削除でも壊れにくい。

関連記事

活用例

0(ゼロ)を含まない平均値を取得する方法

SUMIF関数やCOUNTIF関数で「以上」「以下」を指定する方法

AVERAGEIFS関数で特定の文字列を含む条件で平均する方法

IF系関数の使い方・活用方法の記事一覧

関数の仕様と使い方の記事一覧