概要
式を書いてから、こう思ったことないですか?
「そもそも入力がそろってないのに計算しちゃってる…」
「分母が 0 なのに割り算して #DIV/0! が出てる…」
「文字が混ざってて #VALUE! だらけ…」
こういう“計算前にチェックしておけば防げたエラー”を止めるのが
IF 関数による「計算前チェック」です。
計算する前に
「この状態なら計算していい? それともやめる?」
を IF で判定させてから、OK のときだけ計算するイメージです。
IF の基本(「条件を満たしたら計算する」型)
IF の基本形
IF の形はこれです。
=IF(論理式, 条件が真のとき, 条件が偽のとき)
「計算前チェック」で使うときの考え方は一つだけです。
- まず「計算してよい状態か?」を論理式でチェックする
- OK なら計算式を書く
- 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」の本質は、
- まず「この状態で計算してよいか?」を判定する
- OK のときだけ計算式を実行する
- NG のときは空白やメッセージを返す
という“ワンクッション”を置くことです。
型としては次の形を頭に入れておくと、ほとんどの場面をカバーできます。
=IF(計算してよい条件, 計算式, 計算しないときの値)
エラーの多くは「計算前にチェックしていない」ことが原因です。
IF で前提条件をきちんと確認するクセをつけると、
数式はぐっと安定して、読みやすく・壊れにくくなります。
