広告

AVERAGEIF関数の使い方|基準に応じた範囲の平均値を返す

2021年3月28日

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

averageif_gif1

AVERAGEIF(アベレージイフ)関数は、条件範囲から、条件を満たすセルを検索し、見つかったセルと同じ行(または列)にある平均範囲セル値の平均値を求めます

参考:AVERAGEIF関数ドキュメントエディタヘルプ

AVERAGEIF関数の使い方. 構文

AVERAGEIF関数の構文は以下のとおりです。

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

AVERAGEIF関数の構文内訳

用語 意味
条件範囲(必須) 必ず指定。条件に対して検証する範囲です。
条件(必須) かならず指定。条件範囲に適用するパターンまたはテストです。
条件範囲
パターン
等しい "テキスト"、1、"=テキスト"、"=1" のいずれか
より大きい ">1"
以上 ">=1"
未満 "<1"
以下 "<=1"
等しくない "<>1" または "<>テキスト"
平均範囲(任意) [省略可] - 平均化する範囲です。指定しない場合は、代わりに条件範囲を使用して平均化します。

AVERAGEIF関数を使うときの注意点

注意1. 条件を囲む時は「"」で囲む

検索条件にあたる条件を指定する際は、「"」で囲みます。シングルクォーテーションで囲むと#ERROR!エラーを返します。

以下にサンプルを記載します。

サンプル式 AVERAGEIF関数結果
=AVERAGEIF(A4:A8,'=りんご',B4:B8) #ERROR!
区分 出荷数
りんご 19
りんご 58
ぶどう 55
バナナ 27
ぶどう 71

averageif_kekka02

シングルクォーテーションで条件を指定すると、AVERAGEIF関数の結果がエラーとなってしまいました。

注意2. 範囲指定の行数を一致させる

AVERAGEIF関数では、範囲指定の行数を一致させないと正しい結果が反映されません

以下にサンプルを記載します。

サンプル式 AVERAGEIF関数結果
=AVERAGEIF(A5:A8,"=りんご",B4:B8) 19
区分 出荷数
りんご 19
りんご 58
ぶどう 55
バナナ 27
ぶどう 71

averageif_kekka

AVERAGEIF関数でりんご出荷数の平均値を算出したいのに、条件範囲と平均範囲の指定行数が異なるため、正しい結果が求められていないことが分かります。

  • 条件をシングルクォーテーションで囲む
  • 条件と平均範囲の行数を一致させない

どちらにしてもエラーとして返されます。

AVERAGEIF関数の使い方. Excelとスプシの違い

AVERAGEIF関数は指定した範囲から検索条件を満たすセルの平均値を求めます。

ExcelとGoogleスプレッドシートでは大きな相違点はなくワイルドカードも同様に使えます。

指定できるワイルドカード文字
Excel スプレッドシート
疑問符 ?
アスタリスク *
疑問符 ?
アスタリスク *
すべて半角

なお複数範囲の平均値を算出する場合は、AVERAGEIFS関数が便利です。

参考:AVERAGEIFS関数の使い方

AVERAGEIFS
function-AVERAGEIFS
AVERAGEIFS関数の使い方|複数条件の範囲の平均値を求める

=AVERAGEIFS(平均範囲, 条件範囲1, 条件1, [条件範囲2, 条件2, ...]) AVERAGEIFS( ...

続きを見る

AVERAGEIF関数の実行サンプル

AVERAGEIF関数を実行するサンプル。

区分 地域 収益
埼玉 埼玉北部 8,910
埼玉 埼玉南部 9,821
埼玉 東京西部 23,456
埼玉 東京北部 21,010
埼玉 埼玉中西部 20,000

区分 地域 収益
埼玉 埼玉北部 8,910
埼玉 埼玉南部 9,821
埼玉 東京西部 23,456
埼玉 東京北部 21,010
埼玉 埼玉中西部 20,000
説明 サンプル式 AVERAGEIF関数結果↓
西部および中西部地域の全利益に対する平均値を求めます。 =AVERAGEIF(B2:B6,"=*西部",C2:C6) 21728
埼玉を除く全地域の全利益に対する平均値を求めます。 =AVERAGEIF(B2:B6,"<>?(埼玉)",C2:C6) 16641.4

GIFで↓

averageif_gif1

AVERAGEIF関数の実行サンプル結果

averageif_kekka01

AVERAGEIF関数 × GASのサンプル

AVERAGEIF関数をGASで利用する際の、かんたんなサンプルを作成してみました。

実装する表のサンプル。

平均出荷数    
日付 区分 出荷数
1/1 りんご 19
1/2 りんご 58
1/3 ぶどう 55
1/4 バナナ 27
1/5 パイナップル 71

実装するGAS

function AVERAGE_IF() {
var ss,sht,lastrw,val,rng
ss = SpreadsheetApp.getActiveSpreadsheet();
sht = ss.getActiveSheet();
lastrw = sht.getLastRow();
val = Browser.inputBox('平均出荷数を算出する対象名を入力',Browser.Buttons.OK_CANCEL);
rng = sht.getRange("B1").setValue(val);
if(val == "cancel"){
return;
} else {
// AVERAGEIF関数をC1セルにセット
sht.getRange("C1").setFormula('=AVERAGEIF('+'B3'+':'+'B'+lastrw+','+'"='+val+'"'+','+'C3'+':'+'C'+lastrw+')');
}
}

実行結果をGIFで

averagei_gif02

OYAKUN
OYAKUN
各品種ごとの出荷平均がすぐに分かるようになりますね。

AVERAGEIF関数の使い方 まとめ

AVERAGEIF関数の使い方でした。 有効に利用するには、

  • 指定する値をなるべく隣接させる
  • テキストを途中入れない

といった感じでしょうか。

AVERAGEIF関数ではワイルドカードを利用した方が、簡単に意図する平均値を取得できると感じています。

OYAKUN
OYAKUN
さらに複数範囲の平均値を算出するにはAVERAGEIF関数が有効です。

次の記事:AVERAGEIFS関数の使い方|複数条件の範囲の平均値を求める
前の記事:AVERAGE関数の使い方|数値・データの平均値を求める
関連記事: ASC関数の使い方|全角または半角文字に変換する
関連記事: AND関数の使い方|すべての条件が満たされているか調べる