Googleスプレッドシートで割り算の計算式を入れたとき、突然「#DIV/0!」という赤いエラーが表示されて困った経験はないでしょうか。
このエラーは原因を理解して適切な関数を使えば、数式1本で解消できます。
この記事では、#DIV/0!エラーの原因と、状況に応じた3つの非表示方法をわかりやすく解説します。
#DIV/0!エラーとは何か
#DIV/0!(ディバイド・パー・ゼロ)は、「0で割り算をしようとしたときに発生するエラー」です。
数学的に「0で割る」という計算は定義されていないため、スプレッドシートがエラーとして表示します。
#DIV/0!が出る主な原因
以下のいずれかに該当するとエラーが発生します。
- 分母のセルが「0」になっている(例:
=A2/B2でB2が0) - 分母のセルが空白になっている(スプレッドシートは空白を0として扱う)
- データ入力中でまだ値が入っていない(集計シートの未記入行など)
- AVERAGE関数を空白範囲に使った(平均を計算するデータがない場合)
データ入力中のシートや、行を事前に用意しておく集計表では特に出やすいエラーです。
方法①:IFERROR関数(最もシンプルで推奨)
IFERROR関数は、数式の結果がエラーだった場合に「代わりに表示する値」を指定できる関数です。
DIV/0!に限らず、あらゆるエラーに対応できるため、最もよく使われる方法です。
基本構文(Google公式ヘルプより)
IFERROR(値, [エラー値])
| 引数 | 内容 |
|---|---|
| 値 | エラーチェックしたい数式や値 |
| エラー値 | エラー時に表示する値(省略すると空白) |
空白にする(最もすっきりする)
=IFERROR(A2/B2,"")
エラーのとき空白を返します。
エラー値の引数を省略して =IFERROR(A2/B2) と書いても同じ動作になります。
0にする(数値として扱いたい場合)
=IFERROR(A2/B2,0)
後続のSUMやAVERAGEなど数値計算に使うセルには0を返す方が扱いやすいケースがあります。
ただし、0が計算結果に混入するため、AVERAGE関数の結果がズレる点には注意が必要です。
任意のテキストにする(状況を明示したい場合)
=IFERROR(A2/B2,"データなし")
テキストを指定するときはダブルクォーテーション(”)で囲むのがルールです。
ダブルクォーテーションなしで文字を入力すると、別のエラー(#NAME?)が発生するため注意してください。
IFERRORの注意点
IFERRORはすべてのエラーをキャッチします。
つまり、#DIV/0! だけでなく #VALUE!(型のミス)や #REF!(参照エラー)も同じように非表示になってしまいます。
本来気づくべきエラーを隠してしまう可能性があるため、データ整合性が重要なシートでは使いすぎに注意しましょう。
方法②:IF関数で分母をチェック(#DIV/0!のみを特定して対処)
IF関数を使って「分母が0または空白のときだけ別の値を返す」という書き方です。
IFERRORより記述は長くなりますが、#DIV/0!だけを対処したい場合に適しています。
分母が0のとき空白にする
=IF(B2=0,"",A2/B2)
B2が0ならば空白、そうでなければ割り算を実行します。
分母が空白のとき空白にする
=IF(B2="","",A2/B2)
B2が空白(未入力)ならば空白を返します。
分母が0または空白のどちらにも対応する
=IF(OR(B2=0,B2=""),"",A2/B2)
OR関数を組み合わせることで、0と空白の両方に対応できます。
方法③:IF+ISERROR関数(旧来の方法)
IFERRORが登場する前によく使われていた書き方です。
ISERROR関数はセルの値がエラーかどうかを判定し、TRUEかFALSEを返します。
=IF(ISERROR(A2/B2),"",A2/B2)
同じ計算式(A2/B2)を2回書く必要があり冗長です。
現在はIFERRORのほうがシンプルに同じことができるため、特別な理由がない限りIFERRORを使うほうが一般的です。
3つの方法の使い分け
| 状況 | おすすめ方法 |
|---|---|
| とにかくエラーを非表示にしたい | IFERROR(空白 or 0) |
| #DIV/0!だけを特定して対処したい | IF関数 |
| IFERRORでは隠したくないエラーがある | IF関数 |
| 旧バージョンとの互換性が必要 | IF+ISERROR |
ほとんどのケースでIFERROR関数が最適です。
集計途中で空白行がある表や、データが順次入力される予定のシートには特に有効です。
VLOOKUP・AVERAGEなどでも同じ方法が使える
IFERROR関数はDIV/0!専用ではなく、あらゆる関数のエラー対策に使えます。
VLOOKUPの#N/Aエラーを非表示にする例:
=IFERROR(VLOOKUP(D2,A:B,2,FALSE),"該当なし")
AVERAGEの#DIV/0!を非表示にする例(対象範囲が空のとき):
=IFERROR(AVERAGE(B2:B10),"")
関数が変わっても、IFERROR(元の数式, エラー時の値) という構造は共通です。
まとめ
Googleスプレッドシートの#DIV/0!エラーを非表示にするには、主に以下の方法があります。
- IFERROR関数:最もシンプル。空白・0・テキストを指定できる
- IF関数:#DIV/0!だけを特定的に防ぎたい場合
- IF+ISERROR関数:旧来の方法。現在はIFERRORで代替可能
多くの場合は =IFERROR(A2/B2,"") の一行で解決します。
スプレッドシートをもっと快適に使いたい方は、Googleスプレッドシートの便利なショートカット一覧もあわせてご覧ください。
ExcelとGoogleスプレッドシートの違いが気になる方はExcel vs Googleスプレッドシート比較記事も参考にどうぞ。
参考情報源:

コメント