- ベストアンサー
Vlookup関数で検索結果がエラーになってしまう
- Vlookup関数を使用して氏名から社員番号を引っ張りたいが、検索結果がエラーになる理由を教えてください。
- Vlookup関数で指定した範囲の表には空白行があり、書式設定に問題はないが、なぜエラーが発生するのか教えてください。
- 断片的な情報ではありますが、Vlookup関数を使用した際に「#N/Aエラー」が出てしまう問題について教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ご質問の内容からするとシート2ではA列に社員番号が、B列に氏名があるようにも受け取れますね。もしもそうであるならVLOOKUP関数を使ってシート1で氏名を入力したときに社員番号を表示させることはできません。VLOOKUP関数では氏名の列が最も左側にあって、右側に社員番号が有る表を範囲として指定することが必要です。 もしもシート2のA列に社員番号が、B列に氏名が入力されているとしたら、次のような式にすることがよいでしょう。 =IF(OR(C2="",COUNTIF(Sheet2!B:B,C2)=0),"",INDEX(Sheet2!A:A,MATCH(C2,Sheet2!B:B,0))) 式の意味はC2セルが空の時、あるいはC2セルの氏名のデータがシート2のB列になければ空白にしなさい。そうでなければシート2のB列で氏名の一致する行を求め、その行のA列のデータ、すなわち、社員番号を表示しなさいという意味になります。
その他の回答 (2)
- OPUYOKO
- ベストアンサー率0% (0/1)
思いついた範囲の回答で失礼します。 Sheet2の1列目は、昇順に並んでいますか? 氏名が2列目に入っているなら、FALSEの前は2です。 =VLOOKUP(C2,Sheet2!$A$2:$E$685,2,FALSE)
- keithin
- ベストアンサー率66% (5278/7941)
VLOOKUP関数は,範囲の「左端の1列目」の中から検索値を探すことしか出来ません。 たとえば =VLOOKUP("伊藤",Sheet2!A:C,2,FALSE) という式で検索出来るシート2の表は Sheet2 A B C列 氏名 番号 … 安西 100 伊藤 101 上野 111 のようになってなければダメです。 もしもシート2の表が Sheet2 A B C列 番号 氏名 … 100 安藤 101 猪狩 110 浮田 のようであるときは,VLOOKUPではなく例えば =INDEX(Sheet2!A:A,MATCH("浮田",Sheet2!B:B,0)) などのような工夫で計算します。