- ベストアンサー
Vlookupで見つかった行から2つ取りたい
sheet1とsheet2があります。 sheet2には番号、姓、名が入ってます。 sheet1にて入れた番号によりsheet2から姓と名を連結して取得したいのです。 sheet2 A | B | C 001 | 鈴木 | 一郎 002 | 斉藤 | 次郎 sheet1に001を入れると 隣のセルに「鈴木 一郎」と出したい。 VlookUpを2つ使ってCONCATENATEで連結できるのは分かるのですが2回Vloopupする以外に何か方法はありませんか? 検索を1回 にして発見した行から2つ取るような事って出来ますか? よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こういうことでしょうか? =IF(ISNA(VLOOKUP(A1,Sheet2!$A$1:$C$10,2,FALSE)),"",VLOOKUP(A1,Sheet2!$A$1:$C$10,2,FALSE)&VLOOKUP(A1,Sheet2!$A$1:$C$10,3,FALSE)) MATCHとINDEXでもできますね。 =IF(ISNA(MATCH(A1,Sheet2!A1:A10,0)),"",INDEX(Sheet2!B1:C10,MATCH(A1,Sheet2!A1:A10,0),1)&INDEX(Sheet2!B1:C2,MATCH(A1,Sheet2!A1:A10,0),2))
その他の回答 (2)
- FEX2053
- ベストアンサー率37% (7991/21371)
#2の回答者です。ちょっと間違えました。 =VLOOKUP(A1,Sheet2!A1:D10,4) VLOOKUPの範囲にD列まで入れないとダメですよね。すいません。
- FEX2053
- ベストアンサー率37% (7991/21371)
どうしてもVLOOKUPを1回しか使いたくないなら、D列を使って =B1&C1 こいつをD列の上から下までコピーしておき =VLOOKUP(A1,Sheet2!A1:C10,4) で、出来ることは出来ますけどね。 でも#1さんの言われるような、VLOOKUPを2つ引っ付けるほうが ずっとアタリマエでいいんじゃないかと思いますが・・・。
お礼
やはり結合したセルを作っておくかVloopUPまたはMATCHの2回実行しかないのですか。 確かに当たり前の方法ではあるのですが何か私の知らない関数があり かんたんに出来ればと思って質問させていただきました。 行が増えて遅くならないようならばVlookup2回の方法で検討して見ます。 御回答ありがとうございます。
補足
こうすると姓と名で2回VLOOKUPかMATCHすることになり検索が2回実行され時間がかかるため 下記のような検索にしたいのです(下記は実行できませんが) =VLOOKUP(A1,Sheet2!$A$1:$C$10,CONCATENATE( 2 & 3 ),FALSE) なにかいい方法ありませんでしょうか