概要
割合・単価・単価あたりコスト…
Excel で「割り算」を使う場面は多いですが、必ずつきまとうのが 0 で割る問題(0除算) です。
- 分母が 0 や空白 →
#DIV/0!のエラーだらけ - 見た目も悪いし、後続の計算にもエラーが伝染する
これを 「エラーのときだけ別の値に置き換える」 ことで、
きれいに回避してくれるのが IFERROR 関数です。
ここでは、0除算回避に絞って、IFERROR の使い方をかみ砕いて解説します。
IFERROR の基本(0除算にも効く「エラー用の保険」)
書式と動き
IFERROR の基本形はこうです。
=IFERROR(値, エラーのときに返す値)
動きはとてもシンプルです。
- 「値」が正常に計算できる → そのまま結果を返す
- 「値」がエラー(
#DIV/0!など) → 「エラーのときに返す値」を返す
0除算は #DIV/0! というエラーになるので、
割り算の式をそのまま IFERROR で包めば、
「0 で割れない行」だけ別表示にできます。
0除算回避の基本パターン
割り算結果を出したいが、0や空白のときは空欄にしたい
例えば、C2 を B2 で割るとします。
=C2/B2
B2 が 0 や空白だと #DIV/0! になります。
これを IFERROR で包むと、
エラーのときだけ空白にできます。
=IFERROR(C2/B2, "")
動きはこうなります。
- B2≠0 → 正常に C2/B2 を計算して表示
- B2=0 or 空白 →
#DIV/0!になるが、IFERROR で空白に置き換え
「エラーのときは 0 にしたい」なら、こうです。
=IFERROR(C2/B2, 0)
割合計算での 0除算回避
売上に対する構成比(合計が 0 のとき)
前提:
- B2:各行の売上
- B$10:全体売上(合計)
構成比はふつう、
=B2/$B$10
ですが、合計が 0 の場合は #DIV/0! になります。
これを IFERROR で回避します。
=IFERROR(B2/$B$10, 0)
または、表示だけ整えたいなら空白でも構いません。
=IFERROR(B2/$B$10, "")
「まだデータが入っていない月」などでも、
構成比列をエラーではなく 0 や空白で見せられます。
単価や平均値での 0除算回避
単価計算:金額 ÷ 数量
前提:
- C2:金額
- B2:数量
単価はふつう、
=C2/B2
数量が 0 のときに #DIV/0! を出したくないなら、こうします。
=IFERROR(C2/B2, "")
「数量 0 のときは単価を 0 として扱いたい」なら、こう。
=IFERROR(C2/B2, 0)
IF+条件分岐で書く代わりに IFERROR で簡略化
BEFORE:IF で 0 チェックを書く場合
0除算回避は、IF だけでも書けます。
=IF(B2=0, "", C2/B2)
- B2=0 のとき → 空白
- それ以外 → C2/B2
ただし、B2 が空白や文字列のときの扱いなど、
条件を増やすほど IF が複雑になりがちです。
AFTER:IFERROR ならシンプル
=IFERROR(C2/B2, "")
- 正常に計算できれば結果
- 何らかの理由でエラーなら空白
0除算以外のエラー(文字列が混ざるなど)もまとめて受け止めてくれるので、
「とにかくエラー表示を出したくない」場面では IFERROR のほうが楽です。
0除算回避で IFERROR を使うときの注意点
エラー原因を全部「なかったこと」にしない意識も大事
IFERROR は、#DIV/0! だけでなく すべてのエラー をまとめて別値にします。
- 本当は式のミス(セル参照の間違い)なのに
- IFERROR が上からかぶさっていて気づかない
ということも起きがちです。
0除算回避で使う場合は、
- 割り算の式自体は正しい
- 分母が 0 なのは想定内のケース
と分かっているところに使う、という意識を持っておくと安全です。
もし「0 で割る以外のエラーは気づきたい」場合は、IF(B2=0, "", C2/B2) のように自分で条件を書く方法も検討してください。
例題
問題1
C2 を B2 で割った値を表示したいが、
B2 が 0 や空白で #DIV/0! になるときは空白(””)を表示したいです。
IFERROR を使って式を書いてください。
=IFERROR(C2/B2, "")
問題2
B2 に「売上」、B$10 に「売上合計」が入っています。
構成比=B2/B$10 を計算したいが、B$10 が 0 のときは 0 を返したいです。
IFERROR を使った式を書いてください。
=IFERROR(B2/$B$10, 0)
問題3
C2 に金額、B2 に数量が入っています。
単価=金額/数量 を表示したいが、数量が 0 のときは「-」と表示したいです。
IFERROR を使った式を書いてください。
=IFERROR(C2/B2, "-")
問題4
(B2*C2)/D2 という計算をしています。
D2 が 0 や空白のときに #DIV/0! になるのを避け、
その場合は空白(””)を返したいです。
IFERROR を使って書き直してください。
=IFERROR((B2*C2)/D2, "")
問題5
B2 に「件数」、C2 に「エラー件数」が入っています。
エラー率=エラー件数/件数 をパーセンテージで表示したいですが、
件数が 0 のときは 0 を返したいです。
IFERROR を使った式を書いてください。
=IFERROR(C2/B2, 0)
まとめ
0除算回避での IFERROR の基本パターンは、これだけです。
=IFERROR(割り算の式, エラーのときに返す値)
- 割合・構成比
- 単価・平均値
- 件数に対するエラー率
など、「分母が 0 になりうる割り算」に 1 行かませておくだけで、#DIV/0! だらけの表から解放されます。
あなたの表の中で「割り算でときどきエラーが出ている列」があれば、
まず 1 か所、IFERROR で包んでみてください。
“0除算回避”がどれくらい見た目と運用をラクにしてくれるか、すぐ実感できるはずです。
