11/04/2021

Excel。VLOOKUP関数で空白欄が「0(ゼロ)」で表示されてしまうので空欄にしたい【Zero display】

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関数と同様に、表示してしまいます。


今回のケースに限らず、関数をつかって算出した結果が、想像通りに算出されないことがありますので、その時には、色々アレンジが必要になることがあります。