Excelで数値データの平均を求めるとき、データの中に「0」が含まれていると平均値が下がってしまうことがあります。特に「0」が無効データや未入力を意味する場合には、0を無視して平均を出したいでしょう。本記事では、AVERAGEIF関数を中心に、AVERAGEIFS、IF+AVERAGE、SUM/COUNTIF、FILTERなど複数の方法で0を除外する計算式を丁寧に解説します。初心者でも使いやすく、実務に即したやり方を学べます。
目次
Excel AVERAGEIF 0除外 やり方とは何か
ExcelのAVERAGEIFで0除外 やり方とは、平均値を求める際に範囲内のセルが値0のものを計算対象から外す方法を指します。AVERAGE関数だけ使用すると、空白セルやテキストは無視されますが、0は有効な数値として含まれてしまいます。0を無視することで、データの実態に合った平均値を得ることが可能です。例えば売上データやテストの点数など、「0」が測定漏れや未記入を表すケースで重宝されます。
このやり方にはAVERAGEIF関数を使う方法が最もシンプルです。条件を「0」のように設定することで0を除外します。他にもAVERAGEIFSやIF+AVERAGE、SUMとCOUNTIFの組み合わせ、FILTER関数なども使われます。利用するExcel版やデータ構成に応じて最適な方法を選べるように理解を深めていきましょう。
AVERAGEIF関数の基本構文
AVERAGEIF関数の基本構文は以下の通りです。
範囲, 条件, 平均範囲(省略可)の3つの要素からなります。省略した場合は範囲全体で平均を計算します。条件部分で「0」と設定することで値が0でないセルだけを対象にします。この書き方が、0除外の鍵です。
複数条件がある場合や、異なる基準の範囲で平均したい場合はAVERAGEIFSを使うとよいでしょう。また、AVERAGEIFだけでは対応しきれないケース(OR条件、配列処理など)ではIF関数を併用する方法が有効です。
0を除外するAVERAGEIFの具体例
例えば、セル範囲A1からA10までの数値があり、その中の0を除外して平均を求める場合、次のように記述します:
=AVERAGEIF(A1:A10,”0″)
この式ではA1:A10のうち0以外の値だけが平均の計算対象となります。空白やテキストセルも自動的に無視されます。
実際のデータで試すと、0が含まれているときと含めないときの平均の差が分かりやすくなります。0によって平均が押し下げられるケースでは、0除外の方が現実的な数値になります。
AVERAGEIFの制限と注意点
AVERAGEIFを使う際の注意点も把握しておくことが大切です。まず、範囲内に0以外の数値が存在しないと#DIV/0!エラーが発生します。また、数値が文字として入力されていると、数値として認識されず除外されてしまうことがあります。さらに、条件式に誤りがあると意図しない結果になるため、条件の記述は正確に行ってください。
また、AVERAGEIFは一つの条件しか指定できません。複数の条件で0除外を行いたいときにはAVERAGEIFSを使うか、IF関数と組み合わせた配列数式を検討するとよいでしょう。
AVERAGEIFSや他の関数を使って高度に0除外する方法

AVERAGEIFより複雑な条件がある場合には、AVERAGEIFS、IF+AVERAGE、SUMとCOUNTIFの組み合わせ、FILTER関数などを使用して0除外を含む高度な平均値計算が行えます。範囲、条件数、Excelバージョンによって使いやすさが異なるため、それぞれの特徴を理解しておくことが重要です。
AVERAGEIFSで複数条件と0除外の組み合わせ
AVERAGEIFSを使えば、「0を除外する」条件に加えて「特定の地域」や「特定期間」のような別の条件を同時に適用できます。例えば、売上データで「地域A」のデータだけで0を除外して平均を求めたい場合などに便利です。
書き方の例は次の通りです。
=AVERAGEIFS(平均対象範囲, 条件範囲1, 条件1, 平均対象範囲, “0”)
これにより、条件1を満たすデータからさらに0でないものだけ平均を取ることができます。
IF関数との配列数式での0除外
Excelの古いバージョンや配列機能が必要なケースでは、IF関数とAVERAGEを組み合わせた配列数式を使うと柔軟性が高まります。この方法ならOR条件など複雑な論理を構築可能です。
具体例として、範囲A1:A10で0を除外して平均を作る式は次のようになります。
=AVERAGE(IF(A1:A100, A1:A10))
この式はEnterだけではなく、Ctrl+Shift+Enterで確定する必要があるバージョンもあります。新しめのExcelでは通常のEnterで動作することがあります。
SUMとCOUNTIFを使った手動計算方式
AVERAGEIFやAVERAGEIFSを使えない、または0除外と他の加工を併用したい場合、SUM関数とCOUNTIF関数を組み合わせて平均を計算する方法があります。これは平均 = 合計 ÷ 件数、という定義に基づいたアプローチです。
たとえば、A1:A10の中で0を除く平均値を求めるには、以下の式が使えます。
=SUM(A1:A10)/COUNTIF(A1:A10, “0”)
これにより対象となる非0セルの合計と件数から平均が求められます。
FILTER関数を使って動的に0除外する方法
最新のExcel(Microsoft 365など)ではFILTER関数を使って0を除外した範囲を動的に抽出し、その範囲をAVERAGEに通す方法があります。データが変わっても自動で更新される点が強みです。
例として、A1:A10の範囲で0を除く平均値を得たいなら、次のようになります。
=AVERAGE(FILTER(A1:A10, A1:A100))
このように記述すれば、FILTERが0でない値を返し、それをAVERAGEが平均化します。更新性と柔軟性が高い方法です。
実践的な場面での応用例とヒント

0除外のやり方を知っておくだけでなく、実際の業務でどう使うかや、Excel操作で気をつけるポイントを押さえておくと効率的です。データクリーニングからエラーハンドリングまで、より実践的な視点を交えて応用力を磨きましょう。
データクリーニングと0の意味を確認する
まず、0が本当に「除外するべき数値」かどうかを確認してください。たとえば、売上が0だった日が「営業がなかった日」なのか「データ未入力」なのかで判断が変わります。意味のある0は除外すべきではなく、「未入力」等を空白またはNAタイプにすることでAVERAGEIFで扱いやすくなります。
また、データ形式が数値として設定されていないと0が文字列扱いになることがあるため、セルの書式と入力形式を確認することも重要です。こうした基本的な準備が誤差のない計算につながります。
#DIV/0! エラーへの対処法
0を除外すると、範囲内に条件を満たすセルが一つもないケースで平均を計算できず、#DIV/0!エラーが生じることがあります。これを回避するにはIFERROR関数を使ってエラー時の代替値を設定したり、COUNTIFで対象セル数を先にチェックして0なら空欄などを返す式を使うとよいでしょう。
例:=IFERROR(AVERAGEIF(A1:A10,”0″), “”) という式を使えば、非0のセルがなければ空欄を返すようにできます。視覚的にも分かりやすくユーザーフレンドリーなシートになります。
他の条件と組み合わせる使い方
0除外だけでなく、例えば「期間がある」「カテゴリが特定のものだけ」など複数の条件がある場合もあります。そのときはAVERAGEIFSを使ったり、IF+FILTERの組み合わせを用いることで目的に合った平均を簡単に得られます。
また、フィルタ機能を使って0を含む行を一時的に非表示にし、SUBTOTAL関数で非表示を無視した平均を出す方法もあります。データ分析や報告資料で見栄えを整えたいときに便利です。
Excelのバージョンで異なる機能の差異
Excelのバージョンによって、使用できる関数や配列数式の取り扱いが異なります。最新バージョンではFILTER関数が使え、配列数式も簡単に扱えますが、旧バージョンではCtrl+Shift+Enterのような操作が必要な場面があります。
AVERAGEIFはExcel 2007以降で使えますが、それ以前では使えないため、場合によってはIF+AVERAGEの配列数式やSUMとCOUNTIFの組み合わせで代用します。用途に応じて自分のExcel版に合わせた作りにしてください。
AVERAGEIF 0除外 やり方とAVERAGE関数との比較
AVERAGEIF 0除外 やり方を理解したら、AVERAGE関数との違いを比較しておくとどちらを使うべきか判断しやすくなります。ここでは主にAVERAGEとAVERAGEIF/AVERAGEIFSの挙動の差・性能・使い勝手を比較します。
AVERAGE関数の挙動
AVERAGE関数は、指定した範囲の数値と空白やテキストを含まないセルを対象に平均を計算します。しかし、数値としての「0」は例外で含まれてしまいます。そのため、0が意味のない値であるならば、AVERAGEだけでは平均値が小さく見えてしまうことがあります。
例えば「テストを受けなかった人」に0を入力してしまったケースなどでは、評価や分析に誤解を生む可能性があります。AVERAGEを使う場合はデータ内容と0の意味をきちんと確認しましょう。
AVERAGEIF vs AVERAGEの違いを比較表で確認
| 関数 | 0含むか | 特定条件との組み合わせ | 使いやすさ |
|---|---|---|---|
| AVERAGE | 含む | 条件付きなし | シンプル |
| AVERAGEIF(…,”0″) | 除外可能 | 1条件 | やや応用あり |
| AVERAGEIFS(…,範囲,条件,…,範囲,”0″) | 除外可能 | 複数条件可 | 柔軟性高いが記述複雑 |
計算速度や処理負荷の違い
AVERAGEやAVERAGEIFは通常の数式であり計算速度は速いです。AVERAGEIFSも同様ですが、条件が多いほど計算負荷は増します。FILTERや配列数式を使う方法は最新のExcelで最適化されていることが多く、動的なデータ変化に対応しやすいです。
ただし大きなデータセットや複雑な条件で多数のFILTERやIFを使うと、表示更新や計算再構築の際にラグが出ることがあります。データ量が多い場合は処理を軽くする工夫や中間列を使う方法を検討してください。
よくある質問(FAQ)

Excel AVERAGEIF 0除外 やり方に関して、実務でよく出る疑問とその回答をまとめます。疑問がクリアになれば作業効率が上がります。
0だけでなく負の値も除外したい場合は?
0だけでなく負の値も除外したい場合は、AVERAGEIFまたはAVERAGEIFSで条件を「>0」に設定するとよいです。これにより、0と負の値の両方を平均の対象から除外できます。複数の条件がある場合はAVERAGEIFSが有効です。
空白セルとテキストセルはどう扱われるか?
AVERAGE関数およびAVERAGEIF/AVERAGEIFSでは、空白セルとテキストセルは自動的に無視されます。条件式や範囲指定に誤りがなければ、それらが平均計算に含まれることはありません。ただし、テキストとして数字が入力されている場合は数値として認識されず無視されるので注意が必要です。
全ての値が0または条件に合致しない場合の出力は?
条件に一致する値が一つもない場合、AVERAGEIFやAVERAGEIFSの標準動作では#DIV/0!エラーが表示されます。それを避けたい場合はIFERROR関数でエラー発生時に空欄や指定のメッセージを返すようにします。たとえばAVERAGEIFを使った式をIFERRORで囲むことで見栄え良くできます。
フィルタやSUBTOTAL機能の利用は可能か?
データをフィルタで0を非表示にしてからSUBTOTAL関数を使えば、フィルタされたデータだけを対象に平均を出せます。SUBTOTALのコード101(平均)を使うことでフィルタや非表示行を除外できるため、レポート作成時に便利です。
まとめ
AVERAGEIF 0除外 やり方を理解すると、Excelで実際のデータの意味に即した平均値を計算できるようになります。AVERAGEIF関数で「0」を条件とするのが基本中の基本です。複数条件を扱いたいときはAVERAGEIFS、FILTER、IF+AVERAGE、SUM/COUNTIFの組み合わせなどが有効です。
使用するExcelのバージョンやデータの構造、0の意味を明確にしたうえで、エラー処理も含めた式を設計することがポイントです。これによって誤解のないデータ分析や報告が可能になりますので、ぜひ様々な方法を試して自分の業務に合ったやり方を定着させてください。
コメント