Excel。VLOOKUP関数。範囲のデータが空だと「0(ゼロ)」と表示されるので空白にしたい。
<VLOOKUP関数>
VLOOKUP関数。
アチラコチラで使われています。
よくあるトラブルは、「#N/A」というエラー。
これは、検索値が範囲にない場合に、発生します。
C2の数式は、
=VLOOKUP(B2,$E$2:$F$7,2,FALSE)
「#N/A」は、IF+VLOOKUP関数とか、IFERROR+VLOOKUP関数で対応することで、エラー防げます。
C2の数式は、
=IFERROR(VLOOKUP(B2,$E$2:$F$7,2,FALSE),"")
今回は、IFERROR関数で対応しました。
さて、問題はここから、検索値はあるのですが、検索した結果が空白だと、結果は「0」と表示されてしまいます。
C2の計算式は、先程のまま、
=IFERROR(VLOOKUP(B2,$E$2:$F$7,2,FALSE),"")
「#N/A」エラーは防ぐことができても、商品名が「0」の対応はできません。
この「0」表示ではなくて、「空白」にしたいとしたら、どのようにしたらいいのでしょうか?
0だったら、空白。
という判断をさせるのならば、IF関数をつかうといいように思えます。
しかし、この考え方を踏まえて、数式を修正すると、かなり長い数式になってしまいます。
=IF(IFERROR(VLOOKUP(B2,$E$2:$F$7,2,FALSE),"")=0,"",IFERROR(VLOOKUP(B2,$E$2:$F$7,2,FALSE),""))
0ならば、空白。
そうでなければ、VLOOKUP関数。たしかに空白に対応することができました。
しかしながら、こんなに長い数式にしたにもかかわらず、問題を解決し切れていません。
それは、検索結果が空白ならばいいのですが、検索結果そのものが、「0」だった場合、「0」を表示しなければいけないのに、C2は空白になってしまいます。
ということで、せっかくの長い数式も使えないわけです。
では、対応することができないのでしょうか?
実は、とても簡単に数式を加筆修正するだけで対応することができるのです。
次のように、C2の数式を修正してみます。
=IFERROR(VLOOKUP(B2,$E$2:$F$7,2,FALSE),"")&""
するとどうでしょう。
数式の後ろに、「&""」をつけたら、結果が「0」ではなくて、「空白」になりましたね。意外かもしれませんが、簡単に空白にすることができます。
VLOOKUP関数で、「0」を表示するのではなく、「空白」で表示したい場合には、色々と数式を考えるのではなく、「&""」をつける解決できると覚えておくと、意外と便利かもしれませんね。