• ベストアンサー

VLOOKUP関数で空白を選択すると「0」と表示されるのですが

VLOOKUP関数で他シートのアドレス帳から住所名前等を引き出し、別シートで宛名ラベルを作っています。 この時、何も記入されていないシートをVLOOKUPで読み込んだ場合に、宛名に「0」が表示されてしまうのですが、これを表示させない方法はどうしたらよいのでしょうか? また以前は「0」では無く、「N#A(記憶が曖昧ですが)」のような表示がされていたんですが、どうして変ったんでしょううか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

検索値が見つからない場合は #N/A エラーになります。 検索値が見つかったが、参照する列が空白の場合は 0 になります。 ISERROR や ISNA 等を使ってエラーの場合は空白にすれば、#N/A は表示されなくなります。 例)=IF(ISERROR(VLOOKUP($A2,検索範囲,2,0)),"",VLOOKUP($A2,検索範囲,2,0)) この状態で ツール-オプション-表示タブの「ゼロ値」を外せば #N/A も 0 も見えなくなります。 ただし、検索結果以外の 0 も見えなくなりますのでそれがまずいようなら、 =IF(ISERROR(VLOOKUP($A1,検索範囲,2,0)),"",IF(VLOOKUP($A1,検索範囲,2,0)=0,"",VLOOKUP($A1,検索範囲,2,0))) のような感じにすると#N/A も 0 も見えなくなります。

monmon1025
質問者

お礼

ありがとうございます。 ISERRORという手がありましたか。 実は、教えていただいた「ゼロ値」のチェックを外しただけで、 今のところは問題の無い宛名表示ができました。 ただ、今後の汎用性を考えてエラー制御関数は組み込んだほうがいいかもしれませんね。 参考になりました。

その他の回答 (2)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

検索キーの有無を事前にチェックする方法で回避する方法は如何でしょうか。 (例)=IF(COUNTIF(検索キー範囲,検索キー)>0,VLOOKUP式,"")

monmon1025
質問者

お礼

ありがとうございます。 理論的には#1さんのと同じような事なんですかね。 考えてもいなかった関数だったので いろいろな方法があるんだなと思いました。 勉強になります。

noname#153814
noname#153814
回答No.1

=IF(A1="","" をVLOOKUP関数の前に書き込んだらいかがですか。 #N/Aは、検索範囲外内にない場合出ます。 0になったのは、データを増やしていって、検索範囲内になったからではないですか。

monmon1025
質問者

お礼

ありがとうございます。 こんなシンプルな方法でもよかったんですね。 個人的にはこのセル内の関数だけで解決できる方法は好きです。 検索範囲のセルデータはいじってないのに#N/Aが0になったのは、おそらくその後に書式設定とかオプションを操作したからじゃないかと思えてきました。 勉強になりました。

関連するQ&A