• ベストアンサー

ExcelのVLOOKUPで結果の表示が・・・

うまくいきません。 =IF(B17="","",VLOOKUP(B17,Sheet3!$A$1:$B$40,2)) という関数を入力しました。 結果は範囲内の2列目から検索された 「0010181」という数字のはずなのですが正しく表示されません。 この場合、結果は「0040602」と表示されました。 (関数は間違っていないと思うのですが) セルの書式設定は「文字列」になっています。 他のセルでもやはり正しい結果がでません。 こんなことは初めてでさっぱりわかりません。 どうしたら、範囲内にある正しい数字(文字列)が表示されますか? うまく説明できないので不明な点があったら補足致しますので よろしくお願い致します。

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

  • ベストアンサー
  • sanakokko
  • ベストアンサー率65% (39/60)
回答No.4

vlookupの検索機能について補足しておきますね。 EXCELのオンラインヘルプでvlookupを見てみると良いと思いますが、次のように書いてあります。 検索の型  検索値 と完全に一致する値だけを検索するか、その近似値を含めて検索するかを、論理値で指定します。TRUE を指定するか省略すると、検索値 が見つからない場合に、検索値 未満で最も大きい値が使用されます。FALSE を指定すると、検索値 と完全に一致する値だけが検索され、見つからない場合は エラー値 #N/A が返されます。 ということで、検索には2種類あるわけです。 完全一致を求めるのでしたら、検索の型をfalseにしないと駄目ですが、この場合はソート不要です。ここを省略かtrueを指定した場合は、「検索値 未満で最も大きい値」が返却されます。ただし、ソートされていない場合は、検索が途中で止まってしまうのか、正しく取得できるセルと取得できないセルが出てしまいますね。 tanuwshaさんは完全一致を求めているようですので、#1の方のように0(=false)を検索の型に設定すれば良いですね。

tanuwsha
質問者

お礼

うひゃ~、ご丁寧な回答本当にありがとうございます。 ありがたくてキーを打つ指が震えますです。(T-T) 今日は時間に追われていましたしさっぱりわからなかったもので すぐに教えていただけそうなここに質問したのですが 明日以降、オンラインヘルプや参考本で もう一度復習しておきます。 どうもありがとうございました。

その他の回答 (3)

  • Faye
  • ベストアンサー率24% (601/2496)
回答No.3

> 検索値が空欄でも値が入っていても結果は表示されずに =IF(C16="","",VLOOKUP・・)とそのまま関数が表示されます。 それは表示形式が「文字列」になっているからでしょう。

tanuwsha
質問者

お礼

今、PCを立ち上げ直したら 2個目の不具合(?)も直ってしまいました。 理由がわからないのがひっかかるのですが・・。 とりあえず急ぎのモノはなんとか出来上がりそうです。(^^) 速攻で的確なお答えをしてくださったお二人に 深く感謝しております。 ありがとうございました。

tanuwsha
質問者

補足

ありがとうございます。 そのセルは表示形式「標準」にしてあります。 う~ん、「標準」でもダメなのかしら? 何にすればいいのか教えていただけると助かります。 よろしくお願いします。

  • sanakokko
  • ベストアンサー率65% (39/60)
回答No.2

vlookupの最後のパラメータである、検索の型が指定されていないので、省略値としてtrueが指定されたことになりますね。 となると、 Sheet3!$A$1 が昇順にソートされていないと上手く検索できません。 ソートされていますか? もし、ソートされていないなら、検索の型にfalseを指定すればいいでしょう。

tanuwsha
質問者

お礼

回答ありがとうございます。 #1の方の回答でちゃんと表示されましたが いろいろ教えていただくと勉強になって嬉しいです。 ソート・・・してないです。 ソートしてあると「0」を省略してもOKということですか? そういえば昨日はほぼ同じようなモノをソートしてから 関数を入れたのですが、正しく表示されるセルと ダメだったセルがありました。 どうしてなのかしら?

tanuwsha
質問者

補足

ここで追加質問していいのかどうかわからないのですが、 さらに教えてください。 (規則違反だったらごめんなさい!) さっきの表示の件はとりあえずOKなのですが、 同じようなエクセルを他にも作っていて こちらは関数を入れるとそのまま表示されてしまいます。 検索値が空欄でも値が入っていても結果は表示されずに =IF(C16="","",VLOOKUP・・)とそのまま関数が表示されます。 たびたびスミマセンが、どうしたらよいでしょうか。

  • Faye
  • ベストアンサー率24% (601/2496)
回答No.1

=IF(B17="","",VLOOKUP(B17,Sheet3!$A$1:$B$40,2,0)) じゃないですかね?(一番最後に「,0」(同じ数字を表示せよ)というのを追加)

tanuwsha
質問者

お礼

あ、ホントだ! ちゃんと表示されました。 ありがとうございました。 いつも、0は省略していた気がするんですが・・。 省略してもいい場合とダメな場合を もう一度復習してみます。

関連するQ&A