cellio

Excelの#DIV/0!エラーの原因と消す方法4選【非表示・IFERROR】

Excelで#DIV/0!エラーが出る原因と解決策を解説。数式で0や空白セルで割り算した際に発生します。オートフィル時の参照ズレの直し方や、IF・IFERROR関数を使ってエラーを非表示にする方法まで網羅。

著者 Ayoub Farid · · 4 分で読めます

#DIV/0! は、数式が「0」または「空白のセル」で割り算を行っていることを意味します。データがまだ入力されていないため一時的に出る場合もあれば、数式が間違ったセルを参照しているサインの場合もあります。まずはどちらのケースか見極めてから対処しましょう。

原因1:参照セルがズレてしまった(設定ミス)

合計値で割り算を行い、そのまま下にオートフィル(数式のコピー)をした場合によく起こります。

=B2/B14     2行目:問題なし
=B3/B15     3行目:B15は空白セル → #DIV/0!

この場合、割る数である合計値のセルを固定(絶対参照)する必要があります。

=B2/$B$14

これは実務のスプレッドシートや、就職・転職のExcelスキルテストでも圧倒的によく見られるミスです。詳しくは絶対参照の解説記事をご覧ください。

原因2:データがまだ入力されていない(想定内の動作)

例えば「利益率 = 利益 ÷ 売上」を計算したいものの、月によってはまだ売上データが入っていない場合です。数式自体の動作としては「正しい」のですが、エラーが表示されたままだと表の見栄えがよくありません。

解決策1:IF関数で割る数が0なら空白にする

=IF(B2=0,"",(B2-C2)/B2)

非常にわかりやすく明示的な記述方法です。Excelでは空白セルも0として判定されます。

解決策2:IFERROR関数を使う

=IFERROR((B2-C2)/B2,"")

より短く書けますが、ゼロ除算だけでなく、他のあらゆるエラーもすべて非表示にしてしまう点には注意が必要です。詳しくはIFERROR関数の解説記事をご覧ください。

解決策3:メッセージを表示する

=IF(B2=0,"No sales",(B2-C2)/B2)

データが未入力であることを他の人にも明確に伝えたい場合は、空白にするよりもテキストを表示するほうが親切です。

解決策4:AVERAGEIF関数で#DIV/0!が出る場合

AVERAGE関数やAVERAGEIF関数は、平均を計算するための数値データが1つもない場合に #DIV/0! を返します。その場合は関数全体を囲んで対応します。

=IFERROR(AVERAGEIF(A2:A100,F2,B2:B100),"No data")

エラーを「0」に置き換えないこと

売上がゼロだったときに利益率を「0%」と表示すると誤解を招く恐れがあります。また、0が入ることで全体の平均値が不当に下がってしまう原因にもなります。エラー時は0ではなく、空白にするか文字列(ラベル)を表示するのがおすすめです。

実際に練習してみましょう

Cellioのフィードバック機能は、このエラーを的確に検出します。数式が空白セルを参照してしまっている場合はすぐに通知され、オートフィルの演習でもどの行のコピーが崩れたかを正確に把握できます。

よくある質問

#DIV/0! とはどういう意味ですか?

数式が0または空白のセルで割り算を行っていることを意味します。

Excelで #DIV/0! エラーを消すにはどうすればよいですか?

=IF(割る数=0,"",計算式) や =IFERROR(計算式,"") のように関数を使って処理します。

オートフィルした後に #DIV/0! が出るのはなぜですか?

数式を下にコピーしたことで、割る数の参照セルがズレて空白セルを指してしまっています。「$」を付けて絶対参照に固定してください。

Googleスプレッドシートでも #DIV/0! は出ますか?

はい、Googleスプレッドシートでも同じ意味で発生し、対処法も同様です。

あわせて読みたい