【Excel】#DIV/0!エラーが表示される原因と直し方|0で割らない数式にする方法

  • URLをコピーしました!

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関数の第2引数を表示する
=IFERROR(A2/0,"")
// B2に「0」が入力されている場合、IFERROR関数の第2引数を表示する
=IFERROR(A2/B2,"B2に0以外の数値を入力してください")

分母に使用した関数の結果が0になった(COUNT関数等)

分母に使用した関数の結果が0になった場合、「#DIV/0!」が発生します。

例えば、「=A2/COUNT(B2:B4)」でCOUNT(B2:B4)の結果が0になった場合です。

指定した範囲に数値が入力されない可能性がある場合は、IFERROR関数を使用すると、「#DIV/0!」の表示を避けることができます。

/*【IF関数で範囲に数値が入力されていない場合、例外処理する】*/
// B2からB4に数値が入力されている場合だけ割り算を行う=IF(COUNT(B2:B4)=0,"",A2/COUNT(B2:B4))

/*【IFERROR関数でエラー発生時の例外処理をする】*/
// COUNT関数の結果が0の場合、IFERROR関数の第2引数を表示する
=IFERROR(A2/COUNT(B2:B4),"")
=IFERROR(A2/COUNT(B2:B4),"B2からB4に数値が入力されていません")

平均を求める範囲に数値が入力されていない(AVERAGE関数等)

AVERAGE関数やAVERAGEIF関数など、内部で割り算を行う関数でも「#DIV/0!」が発生することがあります。

例えば、「=AVERAGE(A1:A5)」としたときに、A1からA5に数値を入力していない場合、#DIV/0!が発生します。

対象範囲に数値が入力されていない可能性がある場合は、IF関数とCOUNT関数を組み合わせるか、IFERROR関数を使用してください。

/*【IF関数で範囲に数値が入力されていない場合、例外処理する】*/
// A1からA5に数値が入力されている場合だけ平均を求める
=IF(COUNT(A1:A5)=0,"",AVERAGE(A1:A5))
=IF(COUNT(A1:A5)=0,"A1からA5に数値が入力されていません",AVERAGE(A1:A5))

/*【IFERROR関数でエラー発生時の例外処理をする】*/
// A1からA5に数値が入力されていない場合、IFERROR関数の第2引数を表示する
=IFERROR(AVERAGE(A1:A5),"")

2.未入力のセルを分母にした

未入力のセルを分母にしてしまうと、「#DIV/0!」エラーが表示されることがあります。

このエラーを直すには、IF関数で分母のセルが未入力または0の場合に計算しないようにするか、IFERROR関数を使用してください。

/*【IF関数で問題ないか確認する】*/
// B2が空白以外かつ0以外の場合だけ割り算を行う
// ※B2が数値に変換可能な文字列の場合、計算される
// ※B2が数値に変換不可能の文字列の場合、「#VALUE!」エラーとなる=IF(OR(B2="",B2=0),"",A2/B2)

// B2が0以外の数値の場合だけ割り算を行う
// ※B2が文字列の場合、数値に変換が可能・不可能にかかわらず空白となる
=IF(AND(ISNUMBER(B2),B2<>0),A2/B2,"")

/*【IFERROR関数でエラー発生時の例外処理をする】*/
// B2が0または未入力の場合、IFERROR関数の第2引数を表示する
=IFERROR(A2/B2,"")
// 「#DIV/0!」の代わりに、メッセージを表示する
=IFERROR(A2/B2,"B2の入力に誤りがあります")

割り算の分母に数値に変換不可能な文字列を入力してしまうと、「#VALUE!」エラーが発生します。そのため、「=A2/B2」のエラーメッセージを『未入力のセルで割ってしまった』旨の表記をすると混乱を招きます。

まとめ

「#DIV/0!」エラーは、0や未入力のセルで割り算をした場合や、分母に使用した関数の結果が0になった場合に表示されます。また、AVERAGE関数などで平均を求める範囲に数値が入力されていない場合にも発生します。

まずは、分母となる数値や参照しているセル、関数の対象範囲を確認してください。分母が0や未入力になる可能性がある場合は、IF関数で事前に確認するか、IFERROR関数を使用すると、「#DIV/0!」の代わりに空白や任意のメッセージを表示できます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

元・エクセル迷子。関数やグラフに頭を抱えつつ、地道に勉強してきました。
今では「むずかしいを、やさしく」にこだわって、初心者さん向けにExcelのコツを発信中。
「なんか分かるかも!」って思える瞬間を一緒に楽しみましょう♪

目次