• ベストアンサー

VLOOKUPで値があるのにエラーになる

EXCEL2003でVLOOKUP関数を使用しています。 =VLOOKUP(A1,マスタ,2,0) 上記の関数をコピーしたのですが、いくつかエラーとなる箇所があり、 マスタの検索先を調べてみると、検索値と一致している項目があるのに エラーとなっているものがあります。 IF関数で検索値とマスタの検索先を比べてみて、一致しているのは確認しました。 原因がわかる方いらっしゃいましたら教えてください。

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

  • ベストアンサー
  • shinkami
  • ベストアンサー率43% (179/411)
回答No.7

・検索先はマスターの左端の列ですよね ・検索先のセルをA1にコピーしてもエラーになりますか ・マスターの部分を範囲指定で置き換えたらどうなりますか

ff11111111
質問者

お礼

同じ名前の定義されたシートをコピーしていたのがまずかったみたいです。 名前を削除し、再定義するとうまくいきました。 ありがとうございました。

その他の回答 (7)

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

>関数をコピーしたのですが、いくつかエラーとなる箇所があり  ⇒数式をコピーという事ということから連想すると、   マスタの参照範囲が相対参照になっている事はないでしょうか、   ご確認下さい。   為参考。VLOOKUP関数の第4引数は0でも問題ないが、FALSEとした方が良い。

ff11111111
質問者

お礼

同じ名前の定義されたシートをコピーしていたのがまずかったみたいです。 名前を削除し、再定義するとうまくいきました。 ありがとうございました。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.6

>IF関数で検索値とマスタの検索先を比べてみて、一致しているのは確認しました。 どのような方法で確認したのでしょうか? #N/Aエラーが出るなら、検索値がマスタの値と一致していないパターンです。 確認するには以下の式を入力して、TRUEが返るか調べてみてください(一致しない場合はFALSE)。 =検索値のセル番地=該当するマスタのセル番地 このような原因で最も多いのは、検索値が数字の場合で、この数字が「数値」(通常の入力値)と「文字列」(文字列セルに入力したり、テキスト関数系での数式の返り値の数字)の違いがあるパターンです。 手入力した値を比較しているなら、その数字の列を選択して「データ」「区切り位置」で「完了」すれば、一括して文字列数字データを通常の数値データに変更できます。

ff11111111
質問者

お礼

同じ名前の定義されたシートをコピーしていたのがまずかったみたいです。 名前を削除し、再定義するとうまくいきました。 ありがとうございました。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

問題意識が無くて(注意点を十分知らずに)みている(チェックしている)から、そうなるのだと推測する。 半角・全角 先頭後尾の無用なスペース 中間スペースの数 大文字・小文字 拗音撥音と普通のカナ など代表的なチェック点はあります。 ーー ()内は例 目をつけた(おかしいと思う)セルで =LEN(A1)のような関数 =Type(A1)のような関数 =TRIM(A1)のような関数 =EXACT(A1.B1)のような関数 の利用してチェックも役立つかも。 ーー テストで検索表データをワーク列にデータをコピーして移し、一方検索文字列を最後にコピー貼り付けして、並べ替えをして前後に引っ付くかなども役に立つかも。 ーー 第4引数はFALSEにしてるよね。 第2引数は名前を使うか、セル範囲には$をつけているよね。

ff11111111
質問者

お礼

同じ名前の定義されたシートをコピーしていたのがまずかったみたいです。 名前を削除し、再定義するとうまくいきました。 ありがとうございました。

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

VLOOKUP関数、HLOOKUP関数の検索値は 数値は数値、文字列は文字列を検索します。 範囲に検索値があるのに#N/A!が出るケースで考えられるのは 1.検索値が数値で、範囲の内容が文字列 2.検索値が文字列で、範囲の内容が数値 3.範囲の内容の文字列の前後にスペース等、見えない文字列がある です。 1の場合は=VLOOKUP(TEXT(A1,"G/標準"),マスタ,2,0) 2の場合は=VLOOKUP(VALUE(A1),マスタ,2,0) 3の場合は、範囲の内容を確認して、入力し直す。 上記で確認してみてください。

ff11111111
質問者

お礼

同じ名前の定義されたシートをコピーしていたのがまずかったみたいです。 名前を削除し、再定義するとうまくいきました。 ありがとうございました。

  • ka28mi
  • ベストアンサー率41% (969/2315)
回答No.3

マスタが、昇順に並んでいないということはないでしょうか? (私だけかもしれませんが、マスターを並べ替えれていなかったことがありました。) また、再計算を行ってみても、エラーとなるのでしょうか?

ff11111111
質問者

お礼

同じ名前の定義されたシートをコピーしていたのがまずかったみたいです。 名前を削除し、再定義するとうまくいきました。 ありがとうございました。

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.2

検索値が文字列で検索先が数値ということはないですか。

ff11111111
質問者

お礼

同じ名前の定義されたシートをコピーしていたのがまずかったみたいです。 名前を削除し、再定義するとうまくいきました。 ありがとうございました。

ff11111111
質問者

補足

IF文で正となりましたので、どちらも文字列になっていると思います。

回答No.1

エラー値はなんですか? IF関数を使った数式はどのようにしましたか? また、その値はなんですか? 「マスタ」の範囲は適正ですか?

ff11111111
質問者

お礼

同じ名前の定義されたシートをコピーしていたのがまずかったみたいです。 名前を削除し、再定義するとうまくいきました。 ありがとうございました。

ff11111111
質問者

補足

VLOOKUPの結果は「#N/A」となります。 IF文は「=IF(A30=Sheet2!A100,1,2)」(A30=Sheet2!A100は検索値と マスタの検索先で同じものが表示されているセル)です。 1と表示されます。 マスタの範囲については問題ないと思います。 同じ範囲の中で、きちんと検索されているものとされていないものが あるのがよくわかりません。

関連するQ&A