タグ: AVERAGEIF

  • AVERAGEIF関数の使い方|条件に合うものだけ平均する

    AVERAGEIFは、条件に合う行だけの平均を求める関数です。

    SUMIF の平均版で、引数の順番も同じです。ExcelとGoogleスプレッドシートで共通です。

    書式

    =AVERAGEIF(条件の範囲, 条件, [平均する範囲])
    引数 内容
    条件の範囲 条件を判定する列
    条件 判定の内容。" で囲む
    平均する範囲 実際に平均する列。省略すると条件の範囲を平均

    SUMIF と同じ順番です(条件の範囲が先)。複数条件版の AVERAGEIFS は逆順になるので注意してください。

    基本の使い方

    A B
    1 支店 売上
    2 東京 1200
    3 大阪 800
    4 東京 1500
    =AVERAGEIF(A2:A4, "東京", B2:B4)   → 1350

    条件をセル参照にすれば切り替えられます。

    =AVERAGEIF(A:A, D1, B:B)

    条件の書き方

    条件 意味
    "東京" 完全一致
    ">1000" 1000より大きい
    "<>0" 0以外
    "<>" 空欄でない
    "東*" 「東」で始まる

    セルの値と比較するときは & で連結します。

    =AVERAGEIF(B:B, ">"&D1)

    ">D1" と書くと文字列の「D1」を探します。

    0を除いた平均

    AVERAGEIFの実務で最も便利な使い方がこれです。

    AVERAGE は0を1件として数えるため、未入力に0が入っていると平均が下がります。

    =AVERAGEIF(A:A, "<>0")

    これで0の行を除いた平均が出ます。

    空欄でないものだけなら次の形です。

    =AVERAGEIF(A:A, "<>")

    数式が返した ""(見た目は空欄)も、この書き方なら除外できます。AVERAGE を直接使うより安全です。

    外れ値を除いた平均

    極端な値を除きたい場合にも使えます。

    =AVERAGEIF(A:A, "<10000")

    10000未満のものだけで平均を出します。ただし、除外の基準を恣意的に決めると数字を作り込むことになるので、除外した条件は必ず明記してください。

    条件が2つ以上あるとき

    AVERAGEIFS を使います。引数の順番が逆になる点に注意してください。

    =AVERAGEIFS(平均する範囲, 条件範囲1, 条件1, 条件範囲2, 条件2)

    例:

    =AVERAGEIFS(C:C, A:A, "東京", B:B, ">=1000")

    SUMIFS と同じく、平均する範囲が最初です。AVERAGEIFとは逆なので、混同しやすいところです。

    条件が1つでもAVERAGEIFSで書くと決めてしまえば、順番の混乱がなくなります。

    #DIV/0! が出る原因

    条件に合う行が1件もない、という意味です。0で割ることになるので発生します。

    原因はほぼ次のどれかです。

    • – 条件の文字列にスペースが入っている("東京 "
    • – 全角と半角が違う
    • – 数値が文字列になっている
    • – 平均する範囲に数値が1つもない

    エラーを消す前に、条件が正しいか確認してください。

    該当なしが正常なケースなら、IFERROR で包みます。

    =IFERROR(AVERAGEIF(A:A, D1, B:B), "該当なし")

    0 ではなく「該当なし」と表示するほうが親切です。0だと「平均が0だった」のか「該当がなかった」のか区別できません。

    Excelとの違い

    AVERAGEIF・AVERAGEIFS ともに共通です。書式も挙動も同じです。

    Googleスプレッドシートでは、FILTER と組み合わせる書き方もできます。条件が複雑なときはこちらが読みやすいことがあります。

    =AVERAGE(FILTER(C:C, A:A="東京", C:C>0))

    グループ別の平均を一度に出したいなら QUERY です。

    =QUERY(A:C, "select A, avg(C) group by A", 1)

    まとめ

    • – 書式は =AVERAGEIF(条件の範囲, 条件, 平均する範囲)
    • SUMIF と同じ順番AVERAGEIFS は逆順
    • 0を除いた平均=AVERAGEIF(A:A, "<>0")
    • #DIV/0! は「条件に合う行が1件もない」という意味
    • – エラーを隠す前に、条件のスペース・全角半角を確認する

    関連する関数