ExcelのAVERAGEA関数の使い方|文字列・論理値も含めて平均を計算

スポンサーリンク

「平均を出したいのに、データに『欠席』や『未回答』が混じっていて困った…」そんな経験はありませんか?

通常の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関数との違いです。以下の比較表で整理しておきましょう。

データ型AVERAGEAAVERAGE
数値そのまま計算そのまま計算
TRUE1として計算無視(カウントしない)
FALSE0として計算無視(カウントしない)
文字列(セル内)0として計算無視(カウントしない)
空白セル無視無視
空文字列(””)0として計算無視
エラー値エラーを返すエラーを返す

ポイントは「分母(カウント対象)に含まれるかどうか」です。AVERAGEは数値だけを分母に入れます。一方、AVERAGEAは文字列・TRUE・FALSE・空文字列も分母に入れます。そのため、同じデータでも結果が大きく変わるわけです。

結果の違いを具体例で確認

セルA1:A5に「10, 20, 欠席, 40, 50」が入っているケースで比較してみましょう。

関数数式計算式結果
AVERAGE=AVERAGE(A1:A5)(10+20+40+50) / 430
AVERAGEA=AVERAGEA(A1:A5)(10+20+0+40+50) / 524

「欠席」を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との違いを意識すれば、迷うことはありません。

関連する関数もぜひ合わせて確認してみてください。

タイトルとURLをコピーしました