Excel関数 逆引き集 | 0除算回避 → IFERROR

Excel
スポンサーリンク

概要

割合・単価・単価あたりコスト…
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除算回避”がどれくらい見た目と運用をラクにしてくれるか、すぐ実感できるはずです。

タイトルとURLをコピーしました