壊れにくい単価計算(IFERROR)
注文の単価は Total を Qty で割ったものです。数量に 0 が入ると、レポートの除算がすべて #DIV/0! になってしまいます。Unit price のセル D2 に安全な版を書いてください。計算できるときは通常の単価、除算が失敗したときは文字列 "Check qty" を表示します。
セル参照を使って数式を書いてください。テストケースを切り替えても正しい結果になる必要があります。
テストケース
1
2
3
リセット
提出
A
B
C
D
E
F
G
1
2
3
4
5
6
7
8
9
10
○ 準備完了 ハイライトされたセルに数式を入力し、「提出」を押してください。
テストケース
1
2
3
リセット
提出
A
B
C
D
E
F
G
1
2
3
4
5
6
7
8
9
10
○ 準備完了 ハイライトされたセルに数式を入力し、「提出」を押してください。
ポイント解説
#DIV/0! は「0 または空白のセルで割ろうとした」という意味です。IFERROR(値, 代わりの値) は、値がエラーのときだけ代わりの値を返します。ケース3の非対称に注意:合計が 0 は正当な数値です(0 ÷ 5 = 0)。IFERROR はそれを変えません。IFERROR はあらゆる種類のエラーを拾うので、数量ゼロだけを拾いたいなら IF で調べるほうが正確です。
関数ガイド
よくある質問
Excel の #DIV/0! はなぜ出ますか?
0 または空白のセルで割ると出ます。=C2/B2 は B2 が 0 や空白のときエラーです。データを直すか、=IFERROR(C2/B2, "代わりの文字") で役立つ表示にします。
レポートの #DIV/0! を隠すには?
=IFERROR(C2/B2, "") は空白に見えるセルを返します。"Check qty" のようなメッセージのほうがよいことが多いです。静かな空白は、直すべきデータ問題を隠してしまいます。
IF(B2=0,…) のほうが IFERROR よりよいですか?
ゼロだけが現実的な問題なら、IF のほうが正確です。そのケースだけを置き換え、#REF! や #VALUE! はそのまま残します。IFERROR はすべてのエラーを置き換えるので便利ですが、構造の破損まで隠すことがあります。