Excelで関数や数式を使っていると、「#N/A」や「#REF!」などのエラー値を見かけることがあると思います。
Excelのエラー値は7種類あり、数式が計算できない場合は「#N/A」、セル参照が無効の場合は「#REF!」など、それぞれに意味があります。しかし、使う立場としては「これじゃカッコ悪いから、とにかくこのエラーを消したい!」というのが本音ではないでしょうか?
【エクセル時短】第56回では、Excelのエラー値を消す方法について解説します。見積書などでは計算結果の「0」が邪魔になることもあるので、「0」を消す方法も一緒に覚えてしまいましょう!
「IFERROR」関数でVLOOKUPのエラー値を消す
まずエラー値ですが、定番の関数として「IFERROR」(イフ・エラー)があります。構文は以下のとおり。
IFERROR
(値, エラーの場合の値)
IFERROR関数では、エラーの場合に表示する値を指定できます。引数[値]は数式をそのまま指定し、引数[エラーの場合の値]には、エラーの場合に表示したい値を指定します。
ここでは例として、VLOOKUP関数のエラー値をIFERROR関数を使って消してみましょう。VLOOKUPの検索値として存在しない顧客コードが指定された場合に、セルに「#N/A」エラーを表示するのではなく空白にします。
1数式にIFERROR関数を挿入する
入力済みの数式を修正します。「=」の直後に「IFERROR(」と入力し、引数[エラーの場合の値]には、空白を意味する「""」を指定します。最後の「)」を忘れずに。修正した数式は以下のようになります。
=IFERROR
(VLOOKUP(B1,A10:F108,2,),"")
2エラーの場合に空白を表示できた
セルA1の顧客コード「T101」は顧客リストに存在しませんが、IFERROR関数の働きにより、VLOOKUP関数のエラー値を空白にできました。なお。引数[エラーの場合の値]は「"エラー"」のように文字列を指定することもできます。
「0」を表示したくないときはIF関数を使う
エラーではなくても、計算結果の「0」が邪魔なことがありますよね。例えば、見積書で未入力の項目に表示される「0」。いちいち数式を削除しなくても、IF(イフ)関数を使えば解決です。
ここでは、もうひと工夫して「単価」と「数量」のいずれかが空白の場合は、結果の「金額」も空白としてみます。単価×数量を表す数式が「=C19*D19」とすると、「0」を消すIF関数の数式は以下のようになります。
=IF
(OR(C19="",D19=""),"",C19*D19)
IF関数の1つ目の引数[論理式]では、OR(オア)関数を使って「セルC19が空白、または、セルD19が空白」かどうかを調べています。それが真であれば2つ目の引数[真の場合]に指定した空白が表示され、偽であれば3つ目の引数[偽の場合]に指定した「C19*D19」の結果が表示される、という仕組みです。
1数式にIF関数を挿入する
前述の数式を、見積書の「金額」が表示されるセルに入力します。
2「0」の場合に空白を表示できた
IF関数とOR関数により、「0」を非表示にできました。ここではセルが空白かどうかを調べましたが、『計算結果が「0」かどうか』を判定して「=IF(C19*D19=0,"",C19*D19)」としても結果は同じです。
いかがでしたか? エラーの非表示はIFERROR関数、「0」が邪魔なときはIF関数が定番。困ったときに思い出してくださいね。
なお、Excelのエラー値の意味や、ここで登場した関数のリファレンスは以下の関連記事を参照してください。
あわせて読みたい
【エクセル時短】は「少しでも早く仕事を終わらせたい!」というビジネスパーソンのみなさんに、Excelの作業効率をアップするワザをお届けする連載です。毎週木曜日更新。
過去の記事一覧【エクセル時短まとめ】