- AVERAGE関数を使った基本的な平均の出し方
- 0や空白セルがある場合の平均の計算方法
- 条件を指定して平均を求める方法
- 平均の計算結果が正しくならないケースと対処方法
Excelで平均を出すには、結果を表示したいセル(表の1マス)にAVERAGE関数を入力します。
関数は、指定したデータを自動で計算するための式です。
たとえば、D2からD12までの点数の平均をD13セルに表示する式は次のとおりです。
=AVERAGE(D2:D12)
D2:D12は、D2セルからD12セルまでの範囲を表します。
AVERAGEは、範囲内の数値の合計を数値の個数で割ります。
もくじ
それでは、Excelで平均を計算する基本的な方法から見ていきましょう。
まずはAVERAGE関数を使い、実際のExcel画面を確認しながら、平均値を求める手順を説明します。
Excelで平均を出す基本的な方法
平均の式はセルに直接入力できます。
数式を入力した後は、かっこ内の範囲が平均したいセルを指しているか確認してください。
マウスで範囲を選びたい場合は、オートSUMから「平均」を選ぶ方法もあります。
AVERAGE関数の使い方
次の表では、1年1組の点数がD2:D12に入力されています。
点数のすぐ下にあるD13セルを選び、そこに平均を表示します。

[ホーム]タブの[オートSUM]の右側にある▼をクリックし、[平均]を選びます。

D13に表示された式のかっこ内がD2:D12か確認し、違う場合は直してEnterキーを押します。
次の画像のように、D13に平均点の65.8が表示されます。

0や空白を除いて平均を計算する
- 数値の0が入力されたセル:AVERAGE関数では計算に含める
- 何も入力されていない空白セル:AVERAGE関数では計算に含めない
- 0を平均から除きたい場合:AVERAGEIF関数で「0以外」を条件にする
=AVERAGEIF(D2:D12,"<>0")
式の「<>0」は「0以外」という条件です。D2:D12のうち、条件に合う数値だけを平均します。
0を除くべきかは、0の意味で決まります。
実際に売上が0だった日などを除くと、求めたい平均と違う結果になります。
未測定を0と入力している場合は、空白や別の欄で未測定を区別する方法も検討しましょう。
AVERAGEとAVERAGEAの違い
欠席した生徒の点数をどう記録するかで、平均は変わります。
次の画像は、同じ点数表で欠席の欄に「0」または「欠席」と入力した比較です。

| 入力と関数 | 平均点 |
|---|---|
| 0を入力してAVERAGE | 60.8 |
| 「欠席」を入力してAVERAGE | 66.9 |
| 「欠席」を入力してAVERAGEA | 60.8 |
点数が入力された10人の合計は669点です。
「欠席」と入力してAVERAGEを使うと、文字は数えないため669÷10=66.9になります。
AVERAGEAでは「欠席」を0点として1件に数え、669÷11を小数第1位で表示すると60.8です。
数値の0を入力してAVERAGEを使った場合も、11件で割るため60.8になります。
次の画像で3つの結果を比べてください。

次の違いも押さえておきましょう。
ここでいう空白は、何も入力されていない真の空白セルです。
| 参照範囲内の値 | AVERAGE | AVERAGEA |
|---|---|---|
| 数値の0 | 0として含む | 0として含む |
| 真の空白セル | 除外 | 除外 |
| 「欠席」などの文字列 | 除外 | 0として含む |
| TRUE/FALSE | 除外 | 1/0として含む |
見た目が空白でも、数式の結果が空の文字""なら、AVERAGEAは0として数えます。
「欠席」を0点として数えるべきかは、集計の目的によって判断してください。
条件付きで平均を計算する
ここでいう条件とは、平均に含める行を選ぶ基準です。
教科など1つの条件ならAVERAGEIF、学級と教科のような複数条件ならAVERAGEIFSを使います。
表示中の行だけを平均したい場合はSUBTOTALを使います。
AVERAGEIF関数:1つの条件
AVERAGEIF関数は、指定した1つの条件に一致するデータだけを平均する関数です。基本形は次のとおりです。
=AVERAGEIF(条件範囲, 条件, 平均範囲)
条件範囲は条件を調べるセルや列、条件は探す値、平均範囲は平均する数値のセルや列です。AVERAGEIFでは、最初に条件範囲を指定します。
次の表ではD列に教科、E列に点数が入っています。G2セルの「国語」を条件に、H2セルへ平均結果を表示します。

=AVERAGEIF(D:D,G2,E:E)
この式のD:Dは教科を調べる条件範囲、G2は「国語」という条件、E:Eは点数の平均範囲です。D列で国語に一致する行のE列だけを平均します。次の画像で、式と表の対応を確認してください。

Enterキーで式を確定すると、次の画像のようにH2セルに国語の平均点が表示されます。

H2セルの式を下の結果欄へコピーします。
コピー先では条件のセルがG3、G4と変わり、次の画像のように各教科の平均点が表示されます。

条件には「>=80」(80以上)のような数値の比較や、「*」を使った文字の指定もできます。
AVERAGEIFS関数:複数の条件
AVERAGEIFS関数は、指定した複数の条件をすべて満たすデータだけを平均する関数です。条件が1つでも使えますが、ここでは学級と教科の2条件で説明します。
AVERAGEIFとAVERAGEIFSでは、平均範囲を指定する順序が異なります。
AVERAGEIFは「条件範囲 → 条件 → 平均範囲」、AVERAGEIFSは「平均範囲 → 条件範囲 → 条件」の順です。AVERAGEIFSでは、最初に平均範囲を指定します。
2つの条件を使う基本形は次のとおりです。
=AVERAGEIFS(平均範囲, 条件範囲1, 条件1, 条件範囲2, 条件2)
平均範囲は平均する数値の範囲、条件範囲1・条件1は1つ目の条件を調べる範囲と値、条件範囲2・条件2は2つ目の条件を調べる範囲と値です。
次の表ではA列が学級、D列が教科、E列が点数です。上の見出しH1に学級、左のG2に教科が入っています。

「1年1組の国語」の結果欄であるH2セルを選び、次の式を入力します。
=AVERAGEIFS($E:$E,$A:$A,H$1,$D:$D,$G2)
式の$E:$Eは平均する点数の列、$A:$Aは学級を調べる列、H$1は学級の条件です。続く$D:$Dは教科を調べる列、$G2は教科の条件です。
学級と教科の両方に一致する行の点数をE列から平均します。次の画像で、式と表の対応を確認してください。

EnterキーでH2の式を確定したら、右と下の結果欄へコピーします。
$は、コピー時に参照先が意図せずずれないようにする記号です。
$E:$E、$A:$A、$D:$Dは列を固定し、H$1は学級見出しの1行目を固定して右へ動きます。
$G2は教科名のG列を固定して下へ動きます。
次の画像は、コピーして完成した学級別・教科別の平均点です。

このような絶対参照・複合参照の詳しい使い方は、次の記事で解説しています。
SUBTOTAL関数:フィルター後の行
フィルターは、表から指定した条件に合う行だけを表示する機能です。
絞り込んで表示中の行だけを平均したいときはSUBTOTAL関数を使います。
次の式はE2:E117の点数を対象に、集計方法「1」で平均を求めます。
=SUBTOTAL(1,E2:E117)

画像では、フィルターで表示された行の点数が結果に反映されています。
通常のAVERAGEは範囲内の非表示行も平均しますが、SUBTOTALの1と101はどちらもフィルターで除外された行を含めません。
手動で非表示にした行だけ、次の表のように扱いが異なります。
| 集計方法 | 手動で非表示にした行 | フィルターで除外した行 |
|---|---|---|
| 1 | 含む | 含まない |
| 101 | 含まない | 含まない |
SUBTOTALのほかの集計方法や使い方は、こちらの記事を参照してください。
DAVERAGE関数は、列見出しを含むデータ表と、別に用意した条件表を使って平均を求めます。
基本形はDAVERAGE(データベース,フィールド,検索条件)です。
条件表の作り方まで必要な場合は、データベース関数の記事をご覧ください。
平均計算で注意したいポイント
複数のクラスの平均値から全員の平均を求めるときは注意が必要です。
クラスごとの人数が異なる場合、クラス平均をそのまま平均しても、全員の平均と一致するとは限りません。
人数が違うグループの「平均の平均」
次の画像では、4クラスの人数がそれぞれ15人です。
全員の身長を直接平均した結果と、4つのクラス平均をさらに平均した結果は一致します。
画像のクラス平均は小数第1位までの表示ですが、Excelは表示前の値で計算します。

次の画像では空白セルがあり、クラスごとの人数が違います。
上側の155.8333…は全員の身長を直接平均した結果、下側の155.9310…は4クラスの平均をさらに平均した結果です。
下側は各クラスを1つずつ同じ割合で計算し、人数の違いを反映していないため、結果が異なります。

全生徒の平均身長を知りたいなら、画像の上側の結果欄に次の式を入力します。
B3:E17の身長を直接平均し、空白セルはAVERAGEが自動で除外します。
=AVERAGE(B3:E17)
クラスごとの平均値しか分からない場合は?
元の身長データがなくても、各クラスの平均値と人数が分かれば、人数の違いを考慮して全員の平均を求められます。
この方法を「重み付き平均(加重平均)」といいます。詳しい計算方法は、次の記事で具体例を使って紹介しています。
小数の表示と四捨五入:セルの見た目だけを小数第1位にしたいなら、表示形式で小数点以下の桁数を変更します。
計算結果そのものを小数第1位に丸めたいなら、D13セルなど結果を表示するセルに次の式を入力します。
=ROUND(AVERAGE(D2:D12),1)
式はD2:D12の平均を計算し、最後の「1」で小数第1位に丸めます。
表示形式だけを変えた場合は、後の計算に丸める前の値が使われます。
ROUNDを使った場合は、丸めた値が使われます。
平均が計算できないとき:#DIV/0!は、平均する数値が1件もなく、件数で割れないときに出ます。
まず対象の範囲に数値があるか確認してください。
AVERAGEIFやAVERAGEIFSでは、条件に合う数値がない場合にも起こります。
- 式が平均したいセル範囲を指しているか
- 条件に合う行に、平均できる数値があるか
- 0を除いた結果、平均できる数値が残っているか
参照先に別のエラー値がある場合は、そのセルも確認してください。
エラーを表示だけで隠す前に、データと数式を直す方が確実です。
まとめ
平均の出し方は、計算に含めるデータを決めると選びやすくなります。
| 求めたい平均 | 使う方法 |
|---|---|
| 数値の普通の平均 | AVERAGE。0は含み、真の空白と文字列は除外 |
| 文字列も0として数える平均 | AVERAGEA。文字列は0として計算 |
| 0を除いた平均 | AVERAGEIFで条件「<>0」 |
| 教科などの条件付き平均 | 1条件はAVERAGEIF、複数条件はAVERAGEIFS |
| フィルター後の表示行の平均 | SUBTOTALの集計方法1または101 |
| 人数が違うグループ全体の平均 | 元データをAVERAGE。集計済みなら人数で加重平均 |
0や「欠席」の意味、条件に合う行、グループの人数を確認すれば、目的に合った平均を計算できます。
まずはAVERAGE関数で基本的な平均を求め、必要に応じて条件付き平均などにも挑戦してみましょう。
目的に合った関数を使い分けることで、Excelでの集計作業がより簡単になります。



