ヘッダーロゴ

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

=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関数の使い方(準備中...)

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
各品種ごとの出荷平均がすぐに分かるようになりますね。

AVERAGEIF関数の使い方 まとめ

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

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

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

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

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

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

前の記事:AVERAGE関数の使い方|数値・データの平均値を求める

関連:ASC関数の使い方|全角または半角文字に変換する

関連:AND関数の使い方|すべての条件が満たされているか調べる

  • この記事を書いた人
  • 最新記事

OYAKUN

30代半ば♂妻・子3人の5人で日々激戦中。Google app script&VBA初心者が自分の備忘録を兼ねて「スプレッドシート、Excel、WordPress、plugin」の設定等、主にブログやアフィリエイト周辺のtipsを背伸びしながらご紹介しています。

© 2021 OYAKUDACHI.XYZ