Sheet基本
AVERAGE・AVERAGEIF・AVERAGEIFS 完全ガイド
AVERAGE・AVERAGEIF・AVERAGEIFS 完全ガイド
条件付き平均と外れ値対処まで
単純な平均から条件付き平均まで。「0を含めたくない」「外れ値を除外したい」など実務でよく出る問題への対処法も解説する。
GASとの関係:filter + reduce で実装できる
GASで const vals = data.filter(r=>r[1]==="東京").map(r=>r[2]); const avg = vals.reduce((s,v)=>s+v,0)/vals.length; と書く処理は AVERAGEIF と対応します。
目次
AVERAGE — 範囲の平均
=AVERAGE(数値1, [数値2], ...)
=AVERAGE(B2:B100) // 範囲の平均(空白・テキストは無視される)
=AVERAGE(B2:B10, D2:D10) // 複数範囲の平均
AVERAGEは空白セルを自動的に除外します。ただし0は除外されません。「売上0円」と「未入力」を区別したい場合は AVERAGEIF を使います。
AVERAGEIF — 1条件付き平均
=AVERAGEIF(条件範囲, 条件, [平均範囲])
// 東京だけの売上平均
=AVERAGEIF(B2:B100, "東京", C2:C100)
// 0を除外して平均(未入力行を除外)
=AVERAGEIF(C2:C100, "<>0", C2:C100)
// 空白以外の行の平均
=AVERAGEIF(C2:C100, "<>", C2:C100)
AVERAGEIFS — 複数条件付き平均
=AVERAGEIFS(平均範囲, 条件範囲1, 条件1, 条件範囲2, 条件2, ...)
// 東京 かつ 担当「田中」の売上平均
=AVERAGEIFS(C2:C100, B2:B100, "東京", D2:D100, "田中")
// 2024年Q1(1〜3月)の売上平均
=AVERAGEIFS(C2:C100, A2:A100, ">="&DATE(2024,1,1), A2:A100, "<="&DATE(2024,3,31))
実務でよく出る問題と対処
問題1:0が平均を下げてしまう
// 0を含むAVERAGE(問題)
=AVERAGE(B2:B100) // 0も含まれる
// 0を除外したAVERAGE(正解)
=AVERAGEIF(B2:B100, "<>0")
問題2:外れ値(異常値)を除いた平均
// TRIMMEAN で上下X%を除いた平均
=TRIMMEAN(B2:B100, 0.1) // 上下各5%(合計10%)を除外
問題3:中央値で代替したい
// 平均より中央値の方が実態を反映する場合
=MEDIAN(B2:B100)
// 最頻値
=MODE(B2:B100)
AVERAGE・MEDIAN・MODEの使い分け
| 状況 | 使うべき関数 |
|---|---|
| 外れ値がなく均一な分布 | AVERAGE(平均) |
| 高額・低額の外れ値がある | MEDIAN(中央値) |
| 最も多い値を知りたい | MODE(最頻値) |
| 外れ値を一部除いた平均 | TRIMMEAN |
この知識をGASで活かす
GASでデータの平均を計算するとき、AVERAGEIFの「0を除外する」条件はfilter()で再現できます。スプレッドシートで集計ロジックを設計してからGASに移植する手順が実用的です。
Free Newsletter
AIを業務に活かしたいなら
SMR-Labメルマガ
毎週火曜10時、コピペで使えるChatGPTプロンプト・
GASテンプレートをお届け。登録は1分・完全無料。
