Excel関数 逆引き集 | 計算前チェック → IF

Excel
スポンサーリンク

概要

式を書いてから、こう思ったことないですか?

「そもそも入力がそろってないのに計算しちゃってる…」
「分母が 0 なのに割り算して #DIV/0! が出てる…」
「文字が混ざってて #VALUE! だらけ…」

こういう“計算前にチェックしておけば防げたエラー”を止めるのが
IF 関数による「計算前チェック」です。

計算する前に
「この状態なら計算していい? それともやめる?」
を IF で判定させてから、OK のときだけ計算するイメージです。


IF の基本(「条件を満たしたら計算する」型)

IF の基本形

IF の形はこれです。

=IF(論理式, 条件が真のとき, 条件が偽のとき)

「計算前チェック」で使うときの考え方は一つだけです。

  1. まず「計算してよい状態か?」を論理式でチェックする
  2. OK なら計算式を書く
  3. NG なら空白やメッセージを返す

たとえば「A2 が空白なら計算しない。何か入っていれば計算する」なら、

=IF(A2="", "", A2*100)

これが「計算前チェック → IF」のもっとも基本の型です。


パターン1:未入力なら計算しない

空白チェックで“途中行のエラー”を防ぐ

入力途中の行がエラーを出して見栄えが悪いとき、
まずは「必要なセルが空白なら計算しない」にするのが定番です。

例:A2 に数量、B2 に単価が入っていて、C2 で金額(数量×単価)を出したい。

どちらかが未入力なら、C2 は空白にしたい場合:

=IF(OR(A2="", B2=""), "", A2*B2)

論理式(OR の部分)で「計算してよい状態か?」を判定し、
OK のときだけ A2*B2 を計算します。


パターン2:分母が 0 なら計算しない(割り算の前チェック)

#DIV/0! を出さない“お作法”

割り算をするときは、
「分母が 0 でないこと」を先にチェックするのが鉄則です。

例:C2÷D2 を計算したい。D2 が 0 または空白なら計算せず空白にしたい。

=IF(OR(D2=0, D2=""), "", C2/D2)

D2 が 0 or 空白 → 計算せず “”
それ以外 → C2/D2

これだけで、
分母が 0 のときに #DIV/0! を出すことはなくなります。


パターン3:数値以外が混ざっていたら計算しない

数値だけがそろっているときだけ計算

数量の列に「10個」など文字付きで入力されて、
掛け算が #VALUE! になってしまうケースもよくあります。

「両方とも数値のときだけ計算する」というチェックも IF で書けます。

例:A2×B2 を計算したいが、どちらかが数値でなければ計算しない。

=IF(OR(NOT(ISNUMBER(A2)), NOT(ISNUMBER(B2))), "", A2*B2)

ISNUMBER で「数値かどうか」をチェックし、
どちらかが数値でなければ空白にしています。


パターン4:条件を満たすときだけ集計する

条件付きで「この行を集計対象にするか」を決める

「売上が 0 以下のときは集計しない」
「ステータスが“確定”の行だけ合計したい」

といった“前提条件”も、計算前チェックで制御できます。

例:A2 にステータス、B2 に金額。
ステータスが「確定」のときだけ金額を返し、それ以外は 0 にする。

=IF(A2="確定", B2, 0)

この列を SUM すれば、「確定分の合計」だけを安全に集計できます。


パターン5:エラーが出そうならメッセージだけ返す

あえて計算せず、「要確認」と表示する

「この状態なら本当は計算したくない」というときは、
あえて計算せずにメッセージだけ返すのもアリです。

例:D2 が 0 のときは「分母が0です」と表示し、
それ以外なら C2÷D2 を計算する。

=IF(D2=0, "分母が0です", C2/D2)

エラーでユーザーを戸惑わせるのではなく、
日本語のメッセージで“何が問題か”を伝えられます。


例題

問題1

A2 に数量が入っています。
A2 が空白なら何も表示せず、
A2 に値があれば 100 倍して返す式を書いてください。

=IF(A2="", "", A2*100)

問題2

C2÷D2 で割合を計算したいです。
D2 が 0 または空白のときは計算せず空白を返し、
それ以外のときだけ C2÷D2 を計算する式を書いてください。

=IF(OR(D2=0, D2=""), "", C2/D2)

問題3

A2 に数量、B2 に単価が入っています。
どちらも数値のときだけ A2×B2 を計算し、
どちらかが数値でない場合は空白を返す式を書いてください。

=IF(OR(NOT(ISNUMBER(A2)), NOT(ISNUMBER(B2))), "", A2*B2)

問題4

A2 にステータス(「確定」「仮」など)、B2 に金額が入っています。
ステータスが「確定」のときだけ B2 を返し、
それ以外のときは 0 を返す式を書いてください。

=IF(A2="確定", B2, 0)

問題5

C2÷D2 を計算したいが、D2 が 0 の場合は計算せず、
「分母が0です」と表示したいです。
そのための式を書いてください。

=IF(D2=0, "分母が0です", C2/D2)

まとめ

「計算前チェック → IF」の本質は、

  1. まず「この状態で計算してよいか?」を判定する
  2. OK のときだけ計算式を実行する
  3. NG のときは空白やメッセージを返す

という“ワンクッション”を置くことです。

型としては次の形を頭に入れておくと、ほとんどの場面をカバーできます。

=IF(計算してよい条件, 計算式, 計算しないときの値)

エラーの多くは「計算前にチェックしていない」ことが原因です。
IF で前提条件をきちんと確認するクセをつけると、
数式はぐっと安定して、読みやすく・壊れにくくなります。

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