※ Microsoft365(旧Office365)Excelの画像で解説しています。
DIV/0とは「0除算」を意味する英語「Divide by Zero(読み方:ディバイド‐パイ‐ゼロ)」の略です。「0(ゼロ)除算」とは数値を「0」で割り算することで、これは数学上あり得ない計算であり、Excelでは#DIV/0!エラーが返ります。
1.「0」と「空白」で0除算すると#DIV/0!エラーが表示される
割り算の除数になる範囲に「0」のセルがある場合は「0除算」であり、当然、#div/0!エラーが返りますが、ゼロ以外にも「空白」のセルがあるとExcelでは「0」と見做されて#DIV/0!エラーが返ります。
2.文字列で平均を計算すると#DIV/0!エラーが表示される
AVERAGE関数で文字列だけが入力されたセル範囲の平均を求めると#DIV/0!エラーが返ります。セル範囲の中に1つでも数値が入力されたセルがあれば、平均値が計算されます。これも0除算の一種で、セル範囲全体を「0」と見做して#DIV/0!エラーを表示します。
3.未入力データをAVERAGEIF関数で条件に指定すると#DIV/0!エラーになる
AVERAGEIF関数で担当者名を条件にして売上金額の平均を求めています。まだデータのない担当者の結果には#DIV/0!エラーが表示されました。この例のように、AVERAGEIF関数では条件に一致するデータが見つからない場合に「数値の合計=0、データの個数=0」で、「0/0」の0除算エラーになります。
4.計算する範囲内に#DIV/0!があると、割り算以外の計算でも0除算エラーになる
上記のAVERAGEIF関数で表示された#DIV/0!を含むセル範囲をSUM関数で合計すると、0除算エラーとなります。
【対処法】#div/0!エラーは避けられないが、IFERROR関数で0や空白にして処理できる
上記の例で、#DIV/0!が表示されていると単純なSUM関数の計算もできないことが分かりました。とは言え、データ入力の過程で未入力のセルが出現するのは避けられません。そこで、IFERROR関数でエラー値「#DIV/0!」に対処する方法を使います。
AVERAGEIF関数の例では=IFERROR(AVERAGEIF($C$2:$C$14,I2,$G$2:$G$14),””)として、#DIV/0!を空白にするか、=IFERROR(AVERAGEIF($C$2:$C$14,I2,$G$2:$G$14),0)として0を表示させます。
#DIV/0!を空白、または0にすることで、SUM関数の計算も支障なくできます。
空白は無視され、0はカウントされる。#DIV/0!を処理する時はこの違いに注意!
「合計」ではなく、#DIV/0!の含まれた範囲で「平均」を計算する場合などは、「空白」と「0」の違いに注意しましょう。
Excelの計算では、空白は無視され、0はカウントされます。「平均」を計算する場合、空白と0では割る数が違い、計算結果も変わります。
【対処法】Excel2003以前のバージョンではISERRORとIF関数を使って#DIV/0!エラーを消す
IFERROR関数はExcel2007から追加されたので、2003以前のExcelバージョンでは使用できません。その代わり、エラーを判定できるISERROR関数をIF関数にネストして0除算エラーに対処することができます。
以下の例では「B2/C2」の計算結果で表示された#DIV/0!をISERROR関数をIF関数にネストして空白にしています。
数式: =IF(ISERROR(B2/C2),””,B2/C2)
【対処法】条件付き書式で#DIV/0!エラーを非表示にして隠す
表の見た目をカバーするために#DIV/0!を非表示にして隠してしまうだけなら、条件付き書式が使えます。但し、0除算エラーは隠されているだけで計算対象に置き換えられてはいないので、他の数式でこの範囲を参照すると#DIV/0!が表示されます。
- #div/0!のセルがある範囲を選択して、「ホーム」タブ➔「条件付き書式」➔「新しいルール」をクリック
- ルールの種類のプルダウンで「指定の値を含むセルだけを書式設定」を選択
- 「次のセルのみを書式設定」のプルダウンで「エラー」を選択
- 「書式」をクリック、文字色と背景色で同じ色を指定
- 「OK」をクリック
エラーインジケータ(緑の三角)が邪魔なら、アイコンをクリックして「エラーを無視する」をクリックして消します。