「平均を出したいのに、データに『欠席』や『未回答』が混じっていて困った…」そんな経験はありませんか?
通常のAVERAGE関数では、文字列や論理値はスルーされてしまいます。そのため、欠席者を0点として扱いたい場面では、思ったような平均値になりません。
そんなときに活躍するのがAVERAGEA関数です。文字列を0、TRUEを1として平均に取り込み、「分母」をしっかりカウントしてくれます。
この記事では、基本構文からAVERAGE関数との違い、実務シーンまで一通り解説します。「どっちを使えばいいの?」という迷いがなくなる構成にしました。
ExcelのAVERAGEA関数とは?
AVERAGEA(アベレージ エー)関数は、文字列や論理値を数値に変換したうえで平均を求める関数です。
関数名の「A」は「All(すべて)」を意味します。数値だけでなく、文字列・論理値・空文字列もすべて計算対象に含めるのが特徴です。
通常のAVERAGE関数は、文字列や論理値を完全に無視します。一方、AVERAGEA関数は次のように変換して平均値の計算に取り込みます。
- 文字列(”欠席” など) → 0として計算
- TRUE → 1として計算
- FALSE → 0として計算
- 空文字列(
"") → 0として計算 - 空白セル → 無視(カウントもしない)
NOTE
対応バージョン: Excel 2016 / 2019 / 2021 / 2024 / Microsoft 365
「分母(カウント対象)」を意識すると、AVERAGEAの動きがすっきり理解できます。AVERAGEAは「空白セル以外はすべて分母にカウントする」と覚えておくと迷いません。
ExcelでのAVERAGEA関数の書き方
基本構文
=AVERAGEA(値1, [値2], ...)
引数は最大255個まで指定できます。値1は必須で、値2以降は省略可能です。
引数の説明
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 値1 | 必須 | 平均を求める最初の値・セル・範囲 |
| 値2, … | 省略可 | 追加の値やセル範囲(最大255個) |
「値」にはセル参照・セル範囲・数値・論理値を指定できます。セル範囲内に文字列があった場合、その文字列は0として計算されます。
TIP
引数は連続した範囲だけでなく、
=AVERAGEA(A1:A5, C1:C5)のように離れた範囲を併記することもできます。
AVERAGEA関数の基本的な使い方
まずはシンプルな例で動きを確認していきましょう。3パターンに分けて見ていきます。
数値だけのセル範囲を指定する場合
セルA1:A5に「10, 20, 30, 40, 50」が入っているとします。
=AVERAGEA(A1:A5)
結果は 30 です。数値だけのデータなら、AVERAGE関数と同じ結果になります。
文字列が混じっている場合
セルA1:A5に「10, 20, 欠席, 40, 50」と入っているとします。
=AVERAGEA(A1:A5)
「欠席」は0として扱われます。計算式は (10 + 20 + 0 + 40 + 50) / 5 = 24 です。
一方、同じ範囲をAVERAGE関数で指定するとどうなるでしょうか。文字列の「欠席」は無視されるため、計算式は (10 + 20 + 40 + 50) / 4 = 30 となります。文字列の扱いが異なるため、結果も大きく変わります。
論理値(TRUE/FALSE)が混じっている場合
セルA1:A5に「10, 7, 9, FALSE, TRUE」と入っているとします。
=AVERAGEA(A1:A5)
TRUEは1、FALSEは0に変換されます。そのため計算式は (10 + 7 + 9 + 0 + 1) / 5 = 5.4 です。
NOTE
数値が混在するデータでTRUE/FALSEを平均に含めたいケースは限定的です。多くの場合、AVERAGEAの活用先はチェックボックスの達成率計算(後述)です。
AVERAGEA関数とAVERAGE関数の違い
AVERAGEA関数を理解するうえで最も大切なのが、AVERAGE関数との違いです。以下の比較表で整理しておきましょう。
| データ型 | AVERAGEA | AVERAGE |
|---|---|---|
| 数値 | そのまま計算 | そのまま計算 |
| TRUE | 1として計算 | 無視(カウントしない) |
| FALSE | 0として計算 | 無視(カウントしない) |
| 文字列(セル内) | 0として計算 | 無視(カウントしない) |
| 空白セル | 無視 | 無視 |
| 空文字列(””) | 0として計算 | 無視 |
| エラー値 | エラーを返す | エラーを返す |
ポイントは「分母(カウント対象)に含まれるかどうか」です。AVERAGEは数値だけを分母に入れます。一方、AVERAGEAは文字列・TRUE・FALSE・空文字列も分母に入れます。そのため、同じデータでも結果が大きく変わるわけです。
結果の違いを具体例で確認
セルA1:A5に「10, 20, 欠席, 40, 50」が入っているケースで比較してみましょう。
| 関数 | 数式 | 計算式 | 結果 |
|---|---|---|---|
| AVERAGE | =AVERAGE(A1:A5) | (10+20+40+50) / 4 | 30 |
| AVERAGEA | =AVERAGEA(A1:A5) | (10+20+0+40+50) / 5 | 24 |
「欠席」を0点と見なすかどうかで、平均値が大きく変わります。実務では「どちらの定義が業務上正しいか」を意識して使い分けましょう。
どちらを使うべき?判断フロー
迷ったときは、次の判断フローを使ってください。
- 数値だけで平均を出したい(欠損は除外) → AVERAGE関数
- 未入力や「欠席」を0として含めたい(欠損も評価対象) → AVERAGEA関数
- 特定の条件に合うデータだけで平均を出したい → AVERAGEIF関数 / AVERAGEIFS関数
AVERAGEA関数の実務活用パターン
テストの欠席者を0点として平均を出す
テストの点数で「欠席」と入力されたセルがある場合を考えます。AVERAGEA関数なら、欠席者を0点として平均に含められます。
セルB2:B10にテストの点数が入っているとします。欠席者のセルには文字列で「欠席」と入力されています。
=AVERAGEA(B2:B10)
これで、欠席者も0点として計算した「クラス全体の実力平均」が求められます。
TIP
出席者だけの平均(純粋な学力評価)を見たいときは、AVERAGE関数を併用しましょう。
=AVERAGE(B2:B10)と並べて表示すると、欠席の影響度が一目で分かります。
アンケートの未回答を0として集計する
5段階評価のアンケートで、未回答セルに「未回答」と入力されているケースです。
セルC2:C50にアンケート結果が入っているとします。
=AVERAGEA(C2:C50)
「未回答」が0として扱われます。そのため、未回答者も含めた全体の平均評価が算出されます。
ただし、未回答を0で評価するとスコアが過度に低く出ます。「未回答は除外する」という運用が一般的なら、AVERAGEではなくAVERAGEIF関数で空白除外する方が無難です。
チェックボックス(TRUE/FALSE)の達成率を求める
Excelのチェックボックス機能はTRUE/FALSEを返します。AVERAGEAならTRUEを1、FALSEを0として計算するため、達成率の算出にぴったりです。
セルD2:D20にチェックボックスのリンクセルがあるとします。
=AVERAGEA(D2:D20)
結果が0.6なら「60%の項目が完了」という意味です。セルの表示形式をパーセントに設定すると見やすくなります。
NOTE
Excel 365のチェックボックス([挿入]タブ → チェックボックス)はセル値としてTRUE/FALSEを直接返します。フォームコントロールのチェックボックスもリンクセル経由で同じく利用できます。
出席率を一発で出す
出席は「○」、欠席は「×」と入力された出席表でも、AVERAGEAが使えます。
セルE2:E30に「○」または「×」が入っているとします。
=COUNTIF(E2:E30, "○") / COUNTA(E2:E30)
ここまではCOUNT系の組み合わせで対応するのが定石です。一方、TRUE/FALSEで管理しているなら、AVERAGEAで一発計算できます。
=AVERAGEA(E2:E30)
入力スタイルを最初からTRUE/FALSE運用にしておくと、後の集計が楽になります。
よくあるエラーと対処法
| エラー | 発生条件 | 対処法 |
|---|---|---|
| #DIV/0! | 範囲がすべて空白 | データ入力を確認、IFERRORで囲む |
| #VALUE! | 引数に直接文字列を渡した | セル参照経由に書き換える |
| #N/A など | 範囲内にエラー値が含まれる | AGGREGATE関数を使う |
#DIV/0! エラー
指定した範囲にデータが1つもない場合に発生します。すべてのセルが空白だと、割る数(分母)が0になるためです。
対処法: データが入っているか確認しましょう。IFERROR関数で囲むと、エラー表示を回避できます。
=IFERROR(AVERAGEA(A2:A10), "データなし")
#VALUE! エラー
関数に直接文字列を入力した場合に発生します。セル参照経由の文字列は0として処理されます。一方、引数に直接書いた文字列は変換されません。
対処法: 値を直接入力するのではなく、セル参照で指定しましょう。
=AVERAGEA("テスト", 10, 20) ← #VALUE! エラー
=AVERAGEA(A1:A3) ← A1に"テスト"が入っていてもOK(0として計算)
エラー値を含むセルがある場合
範囲内に#N/Aや#REF!などのエラー値があると、AVERAGEAの結果もエラーになります。
対処法: AGGREGATE関数を使うとエラーを除外して平均を取れます。
=AGGREGATE(1, 6, A2:A10)
第1引数の「1」が平均、第2引数の「6」がエラー値を無視するオプションです。ただし、AGGREGATE関数は文字列を無視する動作です。AVERAGEAの「文字列を0扱いにする」挙動とは異なる点に注意してください。
TIP
エラー値を0扱いにしたい場合は、
=AVERAGEA(IFERROR(A2:A10, 0))のように配列数式で前処理するとよいでしょう。Microsoft 365なら通常入力でOKです。
AVERAGEAと似た関数の使い分け早見表
AVERAGEA関数と混同しやすい関数を整理しておきましょう。
| 関数 | 用途 | 文字列の扱い | 論理値の扱い |
|---|---|---|---|
| AVERAGE | 数値の平均 | 無視 | 無視 |
| AVERAGEA | すべてのデータの平均 | 0として計算 | TRUE=1, FALSE=0 |
| AVERAGEIF | 条件付き平均 | 条件次第 | 条件次第 |
| AVERAGEIFS | 複数条件の平均 | 条件次第 | 条件次第 |
カウント系の関数も覚えておくと、「分母」の理解が深まります。COUNT関数は数値セルだけをカウントします。一方、COUNTA関数は空白以外のすべてのセルをカウントします。
「AVERAGE と AVERAGEA」の関係は「COUNT と COUNTA」の関係とそっくりです。AVERAGEAの分母はCOUNTAと同じ、AVERAGEの分母はCOUNTと同じになります。
数式での代替(SUMPRODUCT版)
AVERAGEAの動きを数式で再現したい場合は、SUMPRODUCT関数で同じ計算ができます。
=SUMPRODUCT(IFERROR(A2:A10*1, 0)) / COUNTA(A2:A10)
文字列を0扱いにし、空白以外をカウントする動作です。挙動を細かく制御したいケース向けの上級テクニックですが、シンプルにAVERAGEAを使う方が読みやすいでしょう。
まとめ
AVERAGEA関数は、文字列を0、TRUEを1、FALSEを0として計算に含める平均関数です。
最後に使い方のポイントをおさらいしておきましょう。
- 構文:
=AVERAGEA(値1, [値2], ...) - 特徴: 文字列→0、TRUE→1、FALSE→0に変換して計算
- 空白セル: 無視される(0にはならない)
- AVERAGE関数との違い: AVERAGEは文字列・論理値を無視
- 分母の理解: AVERAGEAの分母 = COUNTA(空白以外すべて)
- 実務シーン: 欠席者を0点で集計、未回答を含む平均、チェックボックス達成率
「欠席者を0点で計算したい」「達成率を出したい」といった場面で活躍します。AVERAGEとの違いを意識すれば、迷うことはありません。
関連する関数もぜひ合わせて確認してみてください。
