• ベストアンサー

エクセルVLOOKUP関数について

=IF($B$3="","",IF(ISERROR(VLOOKUP($B$3,注文管理!A$3:AE$9898,4,0)),"客注NO.を確認!",VLOOKUP($B$3,注文管理!$A$3:$AE$9898,4,0))) VLOOKUP関数を使って、上の式を作りました。 B3に入るのは5桁の数字で文字列です。注文管理のA列に5桁の数字が入っており、そこも文字列にしています。 うまくいく数字とうまくいかない数字があるのですが、なぜだかわかりません。 どこがおかしいのかおしえてください。

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

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

数式は問題ないと思いますので、以下の点を確認して下さい。 (1)数値が半角、全角が混在の有無 (2)表A列を後追いで書式設定(例えば、標準→文字列)をした場合、入力済みセルは書式変更されないので次の方法で書式変更して下さい。   A列選択→データ→区切り位置→次へ→次へ→列のデータ形式を文字列→完了

taruhoo
質問者

お礼

(2)の作業を行って、正常になりました。 本当にありがとうございました。

その他の回答 (3)

  • hirorin00
  • ベストアンサー率50% (446/884)
回答No.4

2番です。 >また該当するデータがない場合には、一番そばのデータを参照してしまいます。 これは嘘ですねぇ。 VLOOKUP関数の第4パラメータが「FALSE(0)」の時にはエラーが返りますね。 勘違いしておりましたm(_ _)m おはずかしい(^_^;) >A3からA9898迄は昇順で並び替え(ソート)してありますか? >VLOOKUP関数はきちんと並び替えしていないと参照できません。 こちらのみ、御確認下さい。

taruhoo
質問者

お礼

mu2011さんの教えてくださった作業でうまくいきました。 何度もありがとうございました。

  • hirorin00
  • ベストアンサー率50% (446/884)
回答No.2

はじめまして A3からA9898迄は昇順で並び替え(ソート)してありますか? VLOOKUP関数はきちんと並び替えしていないと参照できません。 また該当するデータがない場合には、一番そばのデータを参照してしまいます。 ですからあらかじめそのデータが含まれているかどうかを確認する必要があります。 IF(ISERROR(VLOOKUP($B$3,注文管理!A$3:AE$9898,4,0)),"客注NO.を確認!", の部分は IF(COUNTIF(注文管理!A$3:AE$9898,$B$3)=0,"客注NO.を確認!", の方がいいのでは?? そのあたりを確認してみてはいかがでしょうか? 的外れでしたらごめんなさい。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

検索する注文管理のA列の数字に 文字列の数字と只の数値が混在してるのではないでしょうか? A列の数字は、表示形式を文字列にしてから入力したものですか? そうでない場合は混在してる可能性が高いですよ。

taruhoo
質問者

お礼

A列を文字列にしたり標準にしたりいろいろためしていたのでおかしくなったようでした>< mu2011さんの教えてくださった作業でうまくいきました。 アドバイスをありがとうございました。

関連するQ&A