1. ホーム
  2. ブログ
  3. IFERROR関数の使い方|エラーを消していい場面とは

IFERROR関数の使い方|エラーを消していい場面とは

この記事は 事務でよく使うExcel関数まとめ|目的から探せる一覧 の1本です。他の関数もまとめて見られます。

式を入れた表に #N/A#DIV/0! がずらっと並んで、そのままでは資料として出せない。

これを消すのが IFERROR(イフエラー) です。1行囲むだけでエラーが消えるので、覚えるとすぐ使いたくなります。

ただしこの関数は、使ってはいけない場面があります。そこを先に押さえないと、間違った数字のまま気づかない資料ができあがります。使い方と一緒に、その線引きまで扱います。

この記事で直すもの

品番からマスタを引いて、単価×数量で金額を出している表です。

A1
ABCDE
1品番単価数量金額単価率
2S-1001,2005060,0002.4%
3H-2003,8002076,0005.0%
4X-999#N/A10#N/A#N/A
5 #N/A #N/A#DIV/0!
伝票
3行目はマスタに無い品番、4行目は未入力です。表全体が読めなくなっています。

#N/A は「探したけれど見つからない」、#DIV/0! は「0で割ろうとした」という意味です。Excelとしては正しい動きですが、このまま印刷はできません。

エラー表示の意味

先に、よく出るものだけ整理しておきます。エラーの種類によって、対処がまったく変わります。

表示意味多い原因
#N/A見つからない探した値がマスタに無い
#DIV/0!0で割った割る数が未入力、または0
#VALUE!種類が違う数字のところに文字が入っている
#REF!参照先が消えた参照していた行や列を削除した
#NAME?名前が分からない関数名の打ち間違い、" の付け忘れ

上2つは想定内のことが多く、下2つは式そのものが壊れているサインです。ここが後で効いてきます。

IFERRORの形

=IFERROR(いつもの式, エラーだったときに表示するもの)
  1. いつもの式もともと入れていた式をそのまま書く
  2. エラーだったときに表示するものエラーの代わりに出す文字や値

もとの式を =IFERROR(, "") で囲むだけです。IFと同じで、囲むだけと覚えると迷いません。

STEP1:実際に消してみる

D4 =IFERROR(B2*C2, "")
ABCDE
1品番単価数量金額単価率
2S-1001,2005060,0002.4%
3H-2003,8002076,0005.0%
4X-999#N/A10  
5 #N/A   
伝票
金額と単価率のエラーが消えました。ただし単価の #N/A は残っています。

エラーが出ている列それぞれに入れる必要があります。1か所に入れれば全部消える、というものではありません。

STEP2:消していい場面と、いけない場面

ここが本題です。

!

消していい場面

「エラーが出るのが当たり前」で、しかも害がないときです。

・まだ入力していない行に #DIV/0! が出る
・集計前の空欄に #N/A が出る
・印刷して渡す資料で、空欄のほうが読みやすい

つまり、エラーの原因がすでに分かっていて、放置して問題ない場合です。

×

消してはいけない場面

エラーが「何かおかしい」と教えてくれているときです。

#REF! … 参照していた列を消してしまっている。式はもう壊れています
#NAME? … 関数名や " を間違えている。計算されていません
#N/A でも、本来マスタにあるはずの品番が見つからないとき

これらをIFERRORで空欄にすると、壊れた式が「正常に空欄を返している」ように見えます。

どうなるかを見てください。

E3 =IFERROR(D2*E2, "")
ABCDE
1得意先品番単価数量金額
2A社S-1001,2005060,000
3B社H-200#REF!20 
4C社G-3009003027,000
5合計   87,000
請求
B社の金額が空欄のまま合計されています。76,000円の請求漏れです。

エラーは出ていません。合計も普通に出ています。だから誰も気づかないまま請求書が出ます。

#REF! が見えていれば「何かおかしい」と分かったはずのものを、IFERRORが隠してしまった形です。

!

IFERRORは「エラーを消す」関数であって、「エラーを直す」関数ではありません

見た目がきれいになるので、つい全部の式を囲みたくなります。
ですが囲んだ瞬間から、その式が壊れても分からなくなります。

「とりあえず全部IFERRORで囲む」は、やってはいけない使い方です。

STEP3:原因で分けて書く

正しい形は、原因ごとに違う表示を出すことです。

未入力なら空欄、マスタに無いならその旨を表示する。こうすれば、想定内のものだけが静かになり、想定外のものは目に見えたままになります。

D5 =IF(A2="", "", IFERROR(B2*C2, "品番を確認"))
ABCD
1品番単価数量金額
2S-1001,2005060,000
3H-2003,8002076,000
4X-999#N/A10品番を確認
5    
伝票
未入力(4行目)は空欄、品番が見つからない(3行目)は「品番を確認」と出ます。

式の読み方はこうです。

品番が空なら空欄。そうでなければ計算する。計算できなければ「品番を確認」と出す。

=IF(A2="", "", IFERROR(B2*C2, "品番を確認"))
  1. A2=""品番が空かどうか
  2. ""空なら何も表示しない
  3. IFERROR(B2*C2, "品番を確認")空でなければ計算。エラーなら注意書きを出す

「空なら空欄」の作り方は IF関数の使い方 で扱っています。

!

エラーの種類を見て分けることもできます

#N/A だけを拾って、それ以外のエラーはそのまま表示させるという書き方もあります。
「見つからないのは想定内、それ以外は見逃したくない」という場面に向いています。

詳しくは IFNA関数の使い方(近日公開) で扱います。

よくあるつまずき

×

エラーを消したら、今度は 0 が並んだ

空のセルを参照すると、Excelは 0 を返します。エラーではないのでIFERRORでは消えません。

この場合はIFERRORではなく、「空なら空欄」の形で対処します。
=IF(A2="", "", 元の式) です。

×

式が長くなって読めなくなった

IFERRORの中にさらにIFERRORを入れるような書き方をすると、
あとから誰も直せなくなります。

入れ子が2段を超えたら、式を分けるか、作業列を1つ作ってください。
「1つの式に詰め込みすぎない」ほうが、結果的に早く終わります。

使う前のチェック

IFERRORを入れる前に、この2つだけ確認してください。

  1. そのエラーの原因が分かっているか

    分からないまま消さないでください。まず原因を特定します。分からないエラーを消すのは、警告灯にテープを貼るのと同じです。

  2. 消したあと、集計に影響しないか

    空欄にした行が合計から抜けても問題ないか確認します。上の請求漏れは、ここを見落として起きます。

この2つが確認できていれば、IFERRORは安全に使えます。

今日やってみること

  1. エラーが出ている表を1つ開く

    まずエラーの種類を見てください。#N/A #DIV/0! なのか、#REF! #NAME? なのか。

  2. #REF!#NAME? があれば、消さずに直す

    参照が壊れているか、式を打ち間違えています。IFERRORで隠してはいけない方です。

  3. #N/A #DIV/0! で、原因が「未入力」なら囲む

    =IFERROR(元の式, "") の形にします。まず1行だけ試してください。

  4. 合計が変わっていないか確認する

    消す前と後で合計を見比べます。変わっていたら、消してはいけないものを消しています。

最後の確認が一番大事です。見た目がきれいになったかではなく、数字が合っているかを見てください。

次に読むとよい記事

  • 「空なら空欄」の作り方 → IF関数の使い方
  • #N/A だけを拾いたいとき → IFNA関数の使い方(近日公開)
  • そもそも #N/A が出る表引きの仕組みXLOOKUP関数の使い方
  • #VALUE! の原因になる文字の混入を直すTRIM関数の使い方
  • 条件が3つ以上に分かれるとき → IFS関数の使い方(近日公開)

「エラーが出ているけれど、原因が分からないので放置している」というファイルがあれば、拝見すれば原因は特定できます。現状のヒアリングと課題整理は無料です。

#Excel#IFERROR#エラー対処

この記事について

SUPRAXは、林業・製造・運送の現場経験をもとに、中小企業の業務改善・AI活用・GISの支援を行っています。 記事の内容について「うちの場合はどうか」を聞きたい方は、無料相談をご利用ください。

無料で相談してみる

あわせて読みたい

記事一覧へ戻る