データの平均を出したいけど、範囲に「欠席」や「対象外」といった文字列が混ざっていることってありますよね。
AVERAGE関数なら文字列はスキップしてくれます。でも「文字列が入っているセルも含めて平均を出したい」場面もあります。
そんなときに使うのがAVERAGEA関数です。文字列やFALSEを0、TRUEを1として計算に含めてくれます。
この記事ではAVERAGEA関数の基本から、AVERAGE関数との違い、実務での使いどころまで紹介します。
AVERAGEA関数とは?
AVERAGEA関数(読み方: アベレージエー関数)は、文字列やTRUE/FALSEを含むデータ全体の平均値を返す関数です。
名前は「AVERAGE」に「A(All)」を加えたもので、「すべてのデータを計算対象にする」というイメージです。
AVERAGE関数との最大の違いは、データ型ごとの扱い方です。
| セルの内容 | AVERAGE | AVERAGEA |
|---|---|---|
| 数値 | 計算に含む | 計算に含む |
| 文字列 | スキップ | 0として計算 |
| TRUE | スキップ | 1として計算 |
| FALSE | スキップ | 0として計算 |
| 空白セル | スキップ | スキップ |
たとえばA1:A5に「80, 70, “欠席”, 90, 60」と入っているとします。
=AVERAGE(A1:A5)→ 75(数値4つの平均: 300/4)=AVERAGEA(A1:A5)→ 60(文字列を0として5つの平均: 300/5)
AVERAGEA関数は文字列セルを分母に含めるため、平均値が変わります。
AVERAGEA関数にできることをまとめると、次のとおりです。
- 文字列を0として平均に含める
- TRUEを1、FALSEを0として平均に含める
- 空白セルはスキップする(AVERAGE関数と同じ)
- 数値だけの範囲ではAVERAGE関数と同じ結果になる
NOTE
AVERAGEA関数はGoogleスプレッドシートの全バージョンで使えます。Excelにも同名の関数があり、動作もほぼ同じです。
AVERAGEA関数の書き方(構文と引数)
基本構文
=AVERAGEA(値1, [値2], ...)
カッコの中に、平均を求めたいデータやセル範囲を指定します。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 値1 | 必須 | 平均を求めたい最初の値、セル参照、またはセル範囲 |
| 値2, … | 任意 | 追加で平均に含めたい値やセル範囲(最大30個まで) |
引数が2つ以上ある場合は、カンマ( , )で区切ります。
AVERAGE関数と構文は同じです。違いは「文字列やTRUE/FALSEをどう扱うか」だけです。
TIP
Excelでは引数を最大255個まで指定できますが、Googleスプレッドシートでは最大30個です。セル範囲を使えば実務で困ることはありません。
AVERAGEA関数の基本的な使い方
ここからは、実際にAVERAGEA関数を使う手順を見ていきましょう。
文字列を含むデータの平均を求める
B2からB6にテストの点数が入っていて、B4に「欠席」という文字列が入っているとします。
=AVERAGEA(B2:B6)
「80, 70, 欠席, 90, 60」の場合、「欠席」は0として計算されます。結果は「60」です。(80+70+0+90+60) / 5 ですね。
AVERAGE関数なら「75」になります。文字列をスキップして (80+70+90+60) / 4 で計算するからです。
TRUE/FALSEを含むデータの平均
チェックボックスの列など、TRUE/FALSEが混在するデータにも使えます。
B2からB5に「80, TRUE, FALSE, 60」が入っているとします。
=AVERAGEA(B2:B5)
TRUEは1、FALSEは0として計算されます。(80+1+0+60) / 4 = 35.25 です。
数値だけの範囲で使った場合
数値だけの範囲ならAVERAGEA関数はAVERAGE関数と同じ結果を返します。
=AVERAGEA(80, 70, 90)
結果は「80」です。文字列やTRUE/FALSEが含まれていなければ、違いはありません。
AVERAGEA関数の実務活用パターン
パターン1: アンケートの回答率を考慮した平均
アンケートで「未回答」のセルがある場合です。B列に回答スコア(1〜5)が入っているとします。未回答のセルには「未回答」と入力されています。
=AVERAGEA(B2:B50)
「未回答」を0として平均に含めることで、回答率を反映した平均が出せます。
ただし、未回答を無視して回答者だけの平均を出したい場合は、AVERAGE関数のほうが適しています。目的に合わせて使い分けてください。
パターン2: 出席率を加味した平均点
テスト結果で「欠席」と記録されている生徒がいる場合です。
=AVERAGEA(C2:C30)
欠席者は0点として分母に含まれます。「全員が受けた場合の平均」を知りたいときに使えます。
受験者だけの純粋な平均点を出したい場合はAVERAGE関数を使いましょう。
パターン3: AVERAGE関数との結果を並べて比較する
同じ範囲に対してAVERAGEとAVERAGEAの両方を出しておくと、データの質が見えてきます。
=AVERAGE(B2:B20)
=AVERAGEA(B2:B20)
2つの値に差があれば、範囲内に文字列やTRUE/FALSEが含まれています。差が大きいほど非数値データが多いとわかります。
パターン4: COUNTA関数と組み合わせて分母を確認する
AVERAGEA関数が何件のデータを分母にしているか確認したいときは、COUNTA関数を使います。
=COUNTA(B2:B20)
COUNTA関数は空白以外のセル数を返します。AVERAGEA関数の分母と一致するので、平均の根拠を添えられます。
よくあるエラーと対処法
AVERAGEA関数はシンプルな関数ですが、結果がおかしいと感じる場面もあります。
| 症状 | 原因 | 対処法 |
|---|---|---|
| #DIV/0!エラー | 範囲内にデータが1つもない(すべて空白) | データが入っているか確認する |
| 平均が低すぎる | 文字列セルが0として含まれている | 意図どおりか確認。不要ならAVERAGE関数に切り替える |
| AVERAGE関数と結果が同じ | 範囲内に文字列やTRUE/FALSEがない | 数値だけの範囲では同じ結果になる |
| 空白セルの扱いが不明 | 空白はスキップされる | AVERAGEA関数でも空白セルは分母に含まれない |
#DIV/0!エラーの対処
範囲内がすべて空白セルのとき、分母が0になってこのエラーが出ます。
=IF(COUNTA(B2:B10)=0, "", AVERAGEA(B2:B10))
データが1つもないときは空白を表示し、あるときだけ平均を返します。
平均が低すぎるときの確認方法
AVERAGEA関数で平均が想定より低い場合、文字列が0として計算されている可能性があります。
AVERAGE関数と結果を比べてみてください。
=AVERAGE(B2:B20) → 文字列をスキップした平均
=AVERAGEA(B2:B20) → 文字列を0として含めた平均
差があるなら、範囲内に文字列が含まれています。文字列を0として含める意図がなければ、AVERAGE関数に切り替えましょう。
AVERAGE関数との違い・使い分け
AVERAGEA関数とAVERAGE関数は構文が同じで、データ型の扱いだけが異なります。
| 比較項目 | AVERAGE | AVERAGEA |
|---|---|---|
| 数値 | 計算に含む | 計算に含む |
| 文字列 | スキップ | 0として計算 |
| TRUE | スキップ | 1として計算 |
| FALSE | スキップ | 0として計算 |
| 空白セル | スキップ | スキップ |
| 主な用途 | 数値だけの平均 | 全データ型を考慮した平均 |
どちらを使うべき?
使い分けの判断基準はシンプルです。
- 数値だけの平均を出したい → AVERAGE関数
- 文字列セルも「0」として分母に含めたい → AVERAGEA関数
実務ではほとんどの場面でAVERAGE関数が適しています。AVERAGEA関数を使うのは「欠席者を0点扱いにする」「未回答も含めた平均を見たい」など、文字列を0として含める意図が明確な場面です。
似た関数との違い・使い分け
AVERAGEA関数と関連する関数をまとめました。
| 関数 | 動作 | 文字列の扱い | 使いどころ |
|---|---|---|---|
| AVERAGEA | 全データ型を含む平均 | 0として計算 | 文字列も分母に含めたい |
| AVERAGE | 数値の平均 | スキップ | 数値だけの平均 |
| AVERAGEIF | 条件付き平均 | スキップ | 条件に合うデータの平均 |
| AVERAGEIFS | 複数条件付き平均 | スキップ | 複数条件を組み合わせた平均 |
| MEDIAN | 中央値 | スキップ | 外れ値の影響を受けにくい代表値 |
条件付きで平均を出したい場合は、AVERAGEIF関数やAVERAGEIFS関数を使いましょう。
Excelとの違い
AVERAGEA関数はExcelとGoogleスプレッドシートでほぼ同じ動作です。
| 項目 | Excel | Googleスプレッドシート |
|---|---|---|
| 構文 | =AVERAGEA(値1, …) | =AVERAGEA(値1, …) |
| 文字列の扱い | 0として計算 | 0として計算 |
| TRUEの扱い | 1として計算 | 1として計算 |
| FALSEの扱い | 0として計算 | 0として計算 |
| 空白セル | スキップ | スキップ |
| 引数上限 | 最大255個 | 最大30個 |
引数の上限数が異なりますが、セル範囲を使えば問題ありません。Excelと同じ感覚で使えますよ。
まとめ
AVERAGEA関数は、文字列やTRUE/FALSEを含むデータの平均を求める関数です。
ポイントを整理します。
- 構文は
=AVERAGEA(値1, [値2], ...)で全データ型を含む平均を返す - 文字列は0、TRUEは1、FALSEは0として計算に含める
- 空白セルはスキップされる(AVERAGE関数と同じ)
- 数値だけの範囲ではAVERAGE関数と同じ結果になる
- 実務では「文字列を0として含める意図」が明確なときだけ使う
- 通常の平均はAVERAGE関数がおすすめ
まずは =AVERAGEA(範囲) と =AVERAGE(範囲) を並べて、結果の違いを確認してみてください。
