=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関数の結果がエラーとなってしまいました。
注意2. 範囲指定の行数を一致させる
AVERAGEIF関数では、範囲指定の行数を一致させないと正しい結果が反映されません。
以下にサンプルを記載します。
サンプル式 | AVERAGEIF関数結果 |
---|---|
=AVERAGEIF(A5:A8,"=りんご",B4:B8) | 19 |
区分 | 出荷数 |
りんご | 19 |
りんご | 58 |
ぶどう | 55 |
バナナ | 27 |
ぶどう | 71 |
AVERAGEIF関数でりんご出荷数の平均値を算出したいのに、条件範囲と平均範囲の指定行数が異なるため、正しい結果が求められていないことが分かります。
- 条件をシングルクォーテーションで囲む
- 条件と平均範囲の行数を一致させない
どちらにしてもエラーとして返されます。
AVERAGEIF関数の使い方. Excelとスプシの違い
AVERAGEIF関数は指定した範囲から検索条件を満たすセルの平均値を求めます。
ExcelとGoogleスプレッドシートでは大きな相違点はなくワイルドカードも同様に使えます。
指定できるワイルドカード文字 | |
---|---|
Excel | スプレッドシート |
疑問符 ? アスタリスク * | 疑問符 ? アスタリスク * |
すべて半角 |
なお複数範囲の平均値を算出する場合は、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関数の実行サンプル結果
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で
AVERAGEIF関数の使い方 まとめ
AVERAGEIF関数の使い方でした。 有効に利用するには、
- 指定する値をなるべく隣接させる
- テキストを途中入れない
といった感じでしょうか。
AVERAGEIF関数ではワイルドカードを利用した方が、簡単に意図する平均値を取得できると感じています。
次の記事:AVERAGEIFS関数の使い方|複数条件の範囲の平均値を求める
前の記事:AVERAGE関数の使い方|数値・データの平均値を求める
関連記事: ASC関数の使い方|全角または半角文字に変換する
関連記事: AND関数の使い方|すべての条件が満たされているか調べる