• ベストアンサー

Vlookupで見つかった行から2つ取りたい

sheet1とsheet2があります。 sheet2には番号、姓、名が入ってます。 sheet1にて入れた番号によりsheet2から姓と名を連結して取得したいのです。 sheet2 A | B | C 001 | 鈴木 | 一郎 002 | 斉藤 | 次郎 sheet1に001を入れると 隣のセルに「鈴木 一郎」と出したい。 VlookUpを2つ使ってCONCATENATEで連結できるのは分かるのですが2回Vloopupする以外に何か方法はありませんか? 検索を1回 にして発見した行から2つ取るような事って出来ますか? よろしくお願いいたします。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

こういうことでしょうか? =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))

taka0028
質問者

補足

こうすると姓と名で2回VLOOKUPかMATCHすることになり検索が2回実行され時間がかかるため 下記のような検索にしたいのです(下記は実行できませんが) =VLOOKUP(A1,Sheet2!$A$1:$C$10,CONCATENATE( 2 & 3 ),FALSE) なにかいい方法ありませんでしょうか

その他の回答 (2)

  • FEX2053
  • ベストアンサー率37% (7987/21355)
回答No.3

#2の回答者です。ちょっと間違えました。 =VLOOKUP(A1,Sheet2!A1:D10,4) VLOOKUPの範囲にD列まで入れないとダメですよね。すいません。

  • FEX2053
  • ベストアンサー率37% (7987/21355)
回答No.2

どうしてもVLOOKUPを1回しか使いたくないなら、D列を使って =B1&C1 こいつをD列の上から下までコピーしておき =VLOOKUP(A1,Sheet2!A1:C10,4) で、出来ることは出来ますけどね。 でも#1さんの言われるような、VLOOKUPを2つ引っ付けるほうが ずっとアタリマエでいいんじゃないかと思いますが・・・。

taka0028
質問者

お礼

やはり結合したセルを作っておくかVloopUPまたはMATCHの2回実行しかないのですか。 確かに当たり前の方法ではあるのですが何か私の知らない関数があり かんたんに出来ればと思って質問させていただきました。 行が増えて遅くならないようならばVlookup2回の方法で検討して見ます。 御回答ありがとうございます。

関連するQ&A

  • エクセル空白行を削除したい

    コピー元のデータは、2行を「セルを結合する」として一つのセルにし、入力していました。 それを別のシートに貼り付けたいのですが、ここではセルの結合を外した上で、空白行は見栄えと場所を確保するために削除したいのです。 方法の一つは、隣の行に連番を空白行をはさんでフィルで振り、その後ソートするということは思いつきます。 もっとスマートな方法はありますか? 具体例 コピー元 (うまく表示できませんが、セルは2行単位で結合しています) 貼り付けて、結合を解除すると、ちょうど下のようになります。       A       B     C タイトル行        氏名     住所 2行           松崎一郎   東京都 3行 4行           鈴木次郎   埼玉県 5行 貼り付け先 (こうしたいのです)         A     B      C タイトル行         氏名     住所 2行            松崎一郎   東京都 3行            鈴木次郎   埼玉県 4行 5行 よろしくお願いします。

  • 複数のシートに跨ってVLOOKUPするには?

    複数のシートに跨っているデータをVLOOKUPで参照しようとしています。 1つめのシートには コード番号 シート名 の2つのカラムがあり、コード番号ごとに どのシートを参照すればよいかわかるようになっています。 参照されるほうのシートには コード番号 値 の2つのカラムがあります。 このシートが数十存在しますが、1つのシートにまとめることは出来ません。 1つ目のシート上で、 =VLOOKUP(A1,CONCATENATE(B1,"!A:B"),2,false) などと試してみたのですが、うまくいかないようです。 何か良い方法はないでしょうか。

  • 条件にあった複数データを組合わせて別のセルに表示するには?

    例えば、以下のデータがセルに入っていたとして A列には姓 B列には名 A1:鈴木  B1:一郎 A2:鈴木  B2:次郎 A3:鈴木  B3:三郎 A4:佐藤  B3:あきら A5:佐藤  B3:けんた 同じ姓にあてはまるデータの名を、組合わせて別のセルに表示したいのです。 結果イメージ C1:鈴木  D1:一郎 次郎 三郎 C2:佐藤  D2:あきら けんた このようなことAccessかExcelで出来ますか?

  • VLOOKUPのような操作ができるマクロ

    VLOOKUPのような操作を マクロで行いたいのですが、 その組み方を教えていただけませんでしょうか。 下表のように 入力作業を行うシート「sheet作業」(シート数は10あります)と データが入力されているシート「sheetデータ」があり、 「sheet作業1」(~「sheet作業10」)のセルにNo.を入力すると、 「sheetデータ」のNo.列を参照して、 同じ番号の、"姓"から"点数"までのデータをコピーして、 「sheet作業」の、"姓"から"点数"までのセルに、 値のペーストで貼り付ける というような形でマクロを組みたいのですが、 どのように組めばよろしいでしょうか? ------------------------------------------------- 「sheetデータ」 No.  姓   名  点数 101  あい  うえ  10 102  かき  くけ  20 103  さし  すせ  25 104  たち  つて  30 105  なに  ぬね  45 ------------------------------------------------- 「sheet作業1」 No.  姓   名  点数 102 (かき) (くけ) (20) ↑ (No.を入力してマクロを実行すると、  "姓"から"点数"までのデータがペーストされる。) 「sheet作業2」 No.  姓   名  点数 105 (なに) (ぬね) (45) ------------------------------------------------- 分かりづらい文章ですみません。 よろしくお願いします。

  • VLOOKUPがうまく行かない

    VLOOKUP関数でSheet1のA2セルに=VLOOKUP(B2,Sheet1!$A$1:$B$22,1)と入力すると、012というコードが変えてこないといけないのですが、Sheet1の1行目の最終行のデータを持ってきてしまいます。昇順に並べ替えもしているのに、何故でしょうか?

  • VLOOKUP関数 列番号の設定の仕方教えて下さい

    VLOOKUP関数の列番号を 1、2、とかではなく、 計算して列番号を設定することはできますか? シート2 に入っているデータを参照して シート1 に関数をいれて、表示させたいと思っています。 シート2 データは 3行目に、項目(品名、(1)材料名、(2)数量、(2)材料名、(2)数量、...、(10)材料名、(10)数量) A列、 B列、 C列、 D列、 E列、...、 M列、 N列 クッキー、小麦粉、100、卵、1、...、砂糖、20 クラッカー、小麦粉、100、米粉、10、...、りんご、0.2 が入っていて、4行目から100行目くらいまでデータがはいっています。 シート1 の セルA5に品名を入力すると、 シート2の(1)材料名がセルA6に、 (1)数量がセルB6に、 (2)材料名がセルA7に、 (2)数量がセルB7に、 ... (10)材料名がセルA15に、 (10)数量がセルB15に、 入るように作りたいのですが、VLOOKUPの列番号を COLUMNやINDEXなど試してみましたが、エラーばかりで うまくできません...VLOOKUPでは無理なのでしょうか? どなたか詳しい方教えてください。よろしくお願いします・

  • エクセルでVLOOKUPの結果を含むセルの行色を

    エクセルで以下のことをVBAなしに達成できますでしょうか? シート1のあるセルに値を入れると… 1) Vlookupでシート2から必要な値を見つける。 2) 1)で見つけた値をもとに、シート1のセルでその値を含む行全体の色を変更する VLOOKUPで値を引っ張ってきた後、条件付書式をどうすればよいのかわかりません。 よろしくお願い致します。

  • エクセルの同じ名前をカウントする方法

    エクセルの同じ名前をカウントする方法 初歩的な質問ですみません。 山田太郎 田中一郎 鈴木三郎 高橋次郎 鈴木三郎 高橋次郎 鈴木三郎 A1のセルにこういった状態で名前が入力されていた場合に 山田太郎 1 田中一郎 1 鈴木三郎 3 高橋次郎 2 となるように同じ名前がいくつあるかをカウントさせ上記のように表示させたいのですが、 どうしたらいいのでしょうか? (同じシートでも、別のシートでもどちらでも構いません) 至急お答えいただけるとありがたいです。 よろしくお願いします。 

  • EXCELのVLOOKUPを有用に使いたいのですが

    すみません。どなたか教えてください。 たとえばA1のセルに以下の値があったとします。 <abc>1<abc> このうちの1の部分をA2のセルに表示したいときは=MID(A2,6,1)で表示できました。別のシート(仮にsheet2)に例えばA行に1から昇順に番号が振られていてB行にデータが入っていたとします。VLOOKUPを使ってsheet2のB行を表示したいときは=VLOOKUP(A2,Sheet2!A:B,2,FALSE)でできると思ったのですがエラー表示になってしまいました。A2のセルを更にコピーして例えばA3に形式を選択して貼り付けで値を選択して1を表示してから=VLOOKUP(A3,Sheet2!A:B,2,FALSE)をするとB行の値が表示されるのでA2は1とみなされてないということになるかと思うのですが、A2内で1とみなすようにできる関数はないでしょうか?

  • vlookupの結果があるセルの書式を取得したい

    vlookupの結果があるセルの書式を取得したい =VLOOKUP(検索値,範囲,列番号,検索の型)で値を取ってくることは 出来ますが、その値の入っているセルの書式を取得したい。 Sheet1の セルA1に、検索したい値が入っていて、 セルB2にVLOOKUP関数が入り。 範囲はSheet2のA1:D1000となっていて、 列番号に4と入っていて10行目に 検索値と一致する値が入っていた場合に、D10の値は VLOOKUP関数で持ってこれますが、D10のセル書式を セルB2に反映させたいのですが、どのようにすれば良いでしょうか? VBAでプログラムしないとダメでしょうか?

専門家に質問してみよう