表の中に「#DIV/0!」や「#N/A」が並ぶと、見た目が悪いだけでなく、合計や平均まで巻き込まれて止まります。エラーの意味を知ったうえで、IFERRORで消す方法と、消してはいけない場面をまとめます。
使う表の例です。売上表のA〜C列に商品・売上・目標があり、商品Bだけ目標が0です。F列は商品コード、別シート「マスタ」にコードと商品名があります。
■ よく出るエラーの意味
・#DIV/0!:0で割り算している(目標が0や空白)
・#N/A:VLOOKUPなどで探した値が見つからない
・#VALUE!:数字の計算に文字が混ざっている(例:「2個」)
■ 割り算のエラーを空白にする
=B3/C3
試した結果:#DIV/0!(商品Bは目標が0のため)
これを次の式にします。
=IFERROR(B3/C3,"")
試した結果:空白
IFERRORは「エラーならこの値を出す」という関数で、2番目の""は空白の意味です。エラーでない行(=IFERROR(B2/C2,"") など)は、元の答え(1.2)がそのまま出ます。
■ 見つからないときに「未登録」と出す
=VLOOKUP(F4,マスタ!$A$2:$B$3,2,FALSE)
試した結果:#N/A(C999はマスタに無いため)
=IFNA(VLOOKUP(F4,マスタ!$A$2:$B$3,2,FALSE),"未登録")
試した結果:未登録
コードがマスタにある行(C001・C002)は、りんご・みかんがそのまま出ます。
■ IFERRORとIFNAの違い
IFERRORはどの種類のエラーも消します。IFNAは「#N/A」だけを消します。
VLOOKUPの検索には、IFNAのほうが安全です。範囲の指定ミス(#REF!)や関数名の打ち間違い(#NAME?)まで空白にすると、間違いに気づけなくなるためです。
■ 文字が混ざった計算を0にする
=IFERROR(I3*J3,0)
試した結果:0(数量が「2個」と文字になっているため)
ただし、これは気づかない間違いの元です。本来は数量の列を数字だけに直すのが先で、IFERRORは一時的な逃げ道にとどめます。
■ 消しすぎないための決まり
・エラーを消す前に、なぜ出たかを一度確かめる
・空白にすると、あとの合計や平均が「その行を飛ばす」動きになる。0にすると平均が下がる。どちらにするか決めてから使う
・一覧の最後に「エラーの数」を出しておくと、見逃しを防げる
=SUMPRODUCT(--ISERROR(B2:B100))
これは範囲の中のエラーの数を数える式です。
まとめ:割り算はIFERROR、検索の見つからないはIFNA、消す前に原因を確かめる。この3つを覚えておけば、表が崩れにくくなります。