• ベストアンサー

この式どこが違いますか?

G列にある品名リストの品名の隣(F列)に「型式マスタ一覧表」というシートの同じ品名(D列)の隣(C列)にあるコードを入れたかったので以下のように式を作りましたが#N/Aとなりました。 =VLOOKUP(G2,型式マスタ一覧表!$A$1:$D$1268,3,FALSE) 使い方がおかしかったんでしょうか?

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

  • ベストアンサー
  • kukineko
  • ベストアンサー率28% (81/286)
回答No.2

vlookup関数は範囲の左端列を検索し検索値と同値の行の値を返します。 したがってA列を検索した結果、検索値が存在しないとのことでエラーを出していると思われます。 vlookupで検索する為には検索列を最左端にし、且つ昇順で並べておく必要があります。

tyukasoba
質問者

お礼

検索列を最左端にしないといけなかったんですね。検索範囲全部を検索すると思っていました。 ありがとうございます。 検索範囲を左端にするためにE列にC列をコピーして =VLOOKUP(N1,型式マスタ一覧表! $D$1:$E$1268,2,FALSE) とすることで解決しました。

その他の回答 (3)

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

次の方法は如何でしょうか。 =INDEX(型式マスタ一覧表!C:C,MATCH(G2,型式マスタ一覧表!D:D,0))

tyukasoba
質問者

お礼

検索範囲を左端にするためにE列にC列をコピーして =VLOOKUP(N1,型式マスタ一覧表! $D$1:$E$1268,2,FALSE) とすることで解決しました。 =INDEX(型式マスタ一覧表!C:C,MATCH(G2,型式マスタ一覧表!D:D,0)) この式を入れてみたらまったく同じ結果が得られました。 INDEX関数は知りませんでした。べんきょうになります。ありがとうございました。

  • vista2446
  • ベストアンサー率46% (131/279)
回答No.3

G2セルの検索値を型式マスタ一覧表のA列から探し出す数式になっています。 型式マスタ一覧表のD列を参照してC列の値を返すのなら =LOOKUP(G2,型式マスタ一覧表!D:D,型式マスタ一覧表!C:C) でよろしいかと。。。

tyukasoba
質問者

お礼

回答ありがとうございます。 教えていただいた式では違うコードを拾っていてしまいました。 そこで、検索範囲を左端にするためにE列にC列をコピーして =VLOOKUP(N1,型式マスタ一覧表! $D$1:$E$1268,2,FALSE) とすることで解決しました。

  • K-19
  • ベストアンサー率30% (3/10)
回答No.1

多分 =VLOOKUP(G2,型式マスタ一覧表!$A$1:$D$1268,3,FALSE) の G2 を絶対参照化させてみては?  $G$2として =VLOOKUP($G$2,型式マスタ一覧表!$A$1:$D$1268,3,FALSE) ではどうですか? 式を貼り付けると参照セルが動きます。 注意ですね。

tyukasoba
質問者

補足

回答ありがとうございます。 $をつけてみましたがダメでした。 200行くらいのリストにコピーして使用するのでG2は行をそろえた後、下にコピーしていっています。行はずれていないと思うんですが、品名でのチェックのため文字のフォントとかで違うことがあるのかな?と思い型式マスタ一覧表の品名を数件コピーしてG列に張ってみましたがこれも検索できませんでした。何か別の方法を考えないとダメですかね。

関連するQ&A

専門家に質問してみよう