Excelで数式や関数を使用していると、「#DIV/0!」エラーが表示されることがあります。
「#DIV/0!」は、0や空白(未入力)のセルで割り算をした場合に発生するエラーです。
0で除算してしまうと、計算を行うことができず、Excelでは「#DIV/0!」と表示されます。
#DIV/0!の「DIV」はdivision(ディビジョン) の略で、『割り算』『除算』という意味です。
「/0」で『0で割った』を表し、それらを合わせて『0で除算したエラー』を意味します。
この記事では、「#DIV/0!」エラーが表示される主な原因と直し方を、具体的な数式を使って解説します。
原因1.「0」で除算してしまった
数値「0」で除算したり、平均を求める範囲に数値が入力されていないと、「#DIV/0!」が発生します。
数値「0」で除算してしまった(四則演算等)
数値「0」で割り算をしてしまった場合、「#DIV/0!」が発生します。
例えば、「=3/0」など、分母を0にして割った場合です。
修正方法は、分母を0以外の実数にすることですが、0を入力してしまう可能性がある場合は、IFERROR関数を使用してください。なお、IFERROR関数の第2引数に文字列を指定すると、空白ではなく任意のメッセージを表示できます。
○ 割り算の分母が「0」のため、メッセージを表示する
=IFERROR(A2/0,"分母が「0」のため、エラー!")
○ エラーが発生した場合はIFERROR関数でメッセージを表示する
=IFERROR(A2/B2,"エラーが発生しました")
分母に使用した関数の結果が0になった(COUNT関数等)
分母に使用した関数の結果が0になった場合、「#DIV/0!」が発生します。
例えば、「=A2/COUNT(B2:B4)」でCOUNT(B2:B4)の結果が0になった場合です。
指定した範囲に数値が入力されない可能性がある場合は、IF関数やIFERROR関数を使用すると、「#DIV/0!」の表示を避けることができます。
IF関数で範囲に数値が入力されていない場合、例外処理する
IF関数で、COUNT関数の結果が0の場合は空白を表示する
=IF(COUNT(B2:B4)=0,"",A2/COUNT(B2:B4))
IFERROR関数でエラー発生時の例外処理をする
○ エラーが発生した場合はIFERROR関数で空白を表示する
=IFERROR(A2/COUNT(B2:B4),"")
○ エラーが発生した場合はIFERROR関数でメッセージを表示する
=IFERROR(A2/COUNT(B2:B4),"B2からB4に数値が入力されていません")
平均を求める範囲に数値が入力されていない(AVERAGE関数等)
AVERAGE関数やAVERAGEIF関数など、内部で割り算を行う関数でも「#DIV/0!」が発生することがあります。
例えば、「=AVERAGE(A1:A5)」としたときに、A1からA5に数値を入力していない場合、#DIV/0!が発生します。
対象範囲に数値が入力されていない可能性がある場合は、IF関数とCOUNT関数を組み合わせるか、IFERROR関数を使用してください。
IF関数で範囲に数値が入力されていない場合、例外処理する
○ 数値が入力されていない場合は、IF関数で空白を表示する
=IF(COUNT(A1:A5)=0,"",AVERAGE(A1:A5))
○ 数値が入力されていない場合は、IF関数でメッセージを表示する
=IF(COUNT(A1:A5)=0,"A1からA5に数値が入力されていません",AVERAGE(A1:A5))
IFERROR関数でエラー発生時の例外処理をする
○ IFERROR関数で、エラーが発生した場合は"Error!!"と表示する
=IFERROR(AVERAGE(A1:A5),"Error!!")
原因2.未入力のセルを分母にした
未入力のセルを分母にしてしまうと、「#DIV/0!」エラーが表示されることがあります。
このエラーを直すには、IF関数で分母のセルが未入力または0の場合に計算しないようにするか、IFERROR関数を使用してください。
IF関数で問題ないか確認する
○ B2が未入力または0の場合は、IF関数で空白を表示する
=IF(OR(B2="",B2=0),"",A2/B2)
※B2が数値に変換可能な文字列の場合、計算される
※B2が数値に変換不可能な文字列の場合、「#VALUE!」エラーとなる
○ B2が0以外の数値の場合だけ、IF関数で割り算を行う
=IF(AND(ISNUMBER(B2),B2<>0),A2/B2,"")
※B2が文字列の場合、数値に変換が可能・不可能にかかわらず空白となる
IFERROR関数でエラー発生時の例外処理をする
○ エラーが発生した場合は、IFERROR関数で空白を表示する
=IFERROR(A2/B2,"")
○ エラーが発生した場合は、IFERROR関数でメッセージを表示する
=IFERROR(A2/B2,"B2の入力に誤りがあります")
割り算の分母に数値に変換不可能な文字列を入力してしまうと、「#VALUE!」エラーが発生します。
そのため、「=A2/B2」のエラーメッセージを『未入力のセルで割ってしまった』旨の表記にすると混乱を招きます。
まとめ
「#DIV/0!」エラーは、0や未入力のセルで割り算をした場合や、分母に使用した関数の結果が0になった場合に表示されます。また、AVERAGE関数などで平均を求める範囲に数値が入力されていない場合にも発生します。
まずは、分母となる数値や参照しているセル、関数の対象範囲を確認してください。分母が0や未入力になる可能性がある場合は、IF関数で事前に確認するか、IFERROR関数を使用すると、「#DIV/0!」の代わりに空白や任意のメッセージを表示できます。
