Excel。VLOOKUP関数で空白欄が「0(ゼロ)」で表示されてしまうので空欄にしたい
<IFERROR+VLOOKUP関数>
ExcelのVLOOKUP関数で、検索値が無いと、「#N/A」というエラーが表示されてしまうときには、IFERROR関数とVLOOKUP関数のネストで、対応することができます。
しかし、今回は、検索値はあるのだけど、範囲のデータが空欄の場合、「0(ゼロ)」で表示されてしまうので、それを空欄で表示したいわけです。
C2の数式を確認しておきましょう。
=VLOOKUP(A2,$A$6:$C$9,3,FALSE)
検索値は、A2。
範囲は、$A$6:$C$9
列番号は、3。
検索方法は、FALSE で完全一致。
数式にミスは、ありませんね。
ところが、C7は空欄なので、C2の数式の結果は、空欄であってほしいのですが、「0(ゼロ)」と算出されてしまっています。
どうやったら、「0(ゼロ)」を空欄にすることができるのでしょうか。
そこで、C2の数式を次のようにしてみます。
=VLOOKUP(A2,$A$6:$C$9,3,FALSE)&””
「&””」をつけました。これで、文字型に変えることができます。
文字型にしたことで、空欄にすることができました。
これで問題解決と思ったら、大間違い。
NOを1にしてみます。
C2の値は90と表示はされているものの、左揃えになっています。
つまり、数値型のものも「&””」をつけたことで、文字型になってしまいました。
そこで、今度は、数値型に戻すために、C2の数式を次のように修正します。
=(VLOOKUP(A2,$A$6:$C$9,3,FALSE)&"")*1
「*1」することで、数値型にすることができます。
90は、右揃えに変わりました。
文字型を数字型にすることができたわけですが、では、空欄はどうなるのでしょうか?
NOを2にして確認してみましょう。
せっかく、空欄の対応をしたはずなのに、「#VALUE!」というエラーが表示されてしまいました。
原因は、文字に数字をかけたからです。
エラーを消すために、IFERROR関数とこの数式をネストしてみます。
C2の数式を次のように修正します。
=IFERROR((VLOOKUP(A2,$A$6:$C$9,3,FALSE)&"")*1,"")
結果を確認してみましょう。
空欄で表示することができました。
NOを1にしてみます。
きちんと、表示することができています。
このように、VLOOKUP関数をつかって、検索抽出結果が空欄のままで表示したい場合には、以外と数式をアレンジする必要が発生します。
残念ながら、XLOOKUP関数でも空欄は、「0(ゼロ)」とVLOOKUP関数と同様に、表示してしまいます。
今回のケースに限らず、関数をつかって算出した結果が、想像通りに算出されないことがありますので、その時には、色々アレンジが必要になることがあります。