- ベストアンサー
【Excel】VLOOKUP関数について
Excel2003を使用しています。 B列にコードNo.、D列に会社名が入力されている表(1)があります。 表(1)とは別のシートで、B列にコードNo.を入力すると、D列に会社名が表示されるように、VLOOKUP関数で検索範囲を表(1)としてD列に数式を入力しています。 これを逆に、D列に会社名を入力したら、B列にコードNo.が表示されるようにしたいのですが、B列に数式を入力する際、表(1)はこのまま利用できるのでしょうか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
その場合 INDEX関数と MATCH関数を組み合わせます。 =INDEX('表(1)'!A1:A10,MATCH(D1,'表(1)'!D1:D10,)) こんな感じです。
その他の回答 (4)
- Nouble
- ベストアンサー率18% (330/1783)
INDEXだけでなくOFFSETやINDIRECT(ADDRESS(…))などでも MATCHと組み合わせればいけますよ http://oshiete.coneco.net/kotaeru.php3?q=2570100 や http://oshiete.coneco.net/kotaeru.php3?q=2569996 での私の発言に式が掲載されていると思いますので 参照してみてくださいな そうそう そう言えばアドインの中にLOOKUPのウイザードがあって こういう時用の式を自動で作ってくれるみたいです 私も今日見つけて驚きました
お礼
>そう言えばアドインの中にLOOKUPのウイザードがあって こういう時用の式を自動で作ってくれるみたいです 試しに使ってみようかと思ったのですが、操作手順がイマイチわかりませんでした(^_^;) でも、こういう機能もあるということがわかって、大変参考になりました。 アドバイスありがとうございました。
- zap35
- ベストアンサー率44% (1383/3079)
INDEX関数とMATCH関数を組み合わせましょう D列の会社名でSheet2のD列(会社名)を検索して、合致するSheet2のB列の値を求めたいなら、 =IF(ISNA(MATCH(D1,Sheet2!$D$1:$D$300,0)),"",INDEX(Sheet2!$B$1:$B$300,MATCH(D1,Sheet2!$D$1:$D$300,0))) Sheet2のデータ範囲は300行までにしているので変更してください。 またSheet2!$D$1:$D$300、Sheet2!$B$1:$B$300はかならず1行目からにしてください
お礼
補足を投稿しただけで、お礼が遅くなり申し訳ありません。 補足にも書いておりますが、今回はzap35 さんが回答してくださった数式を使わせていただきました。 回答ありがとうございました。
補足
合致するSheet2のB列の値がない場合のエラー表示の回避まで考えてあり、大変役に立ちましたので、今回はこの数式を使わせていただくことにしました。 実際に使用する際は、この前の段階で会社名の一覧がでているので、その部分を値だけD列にコピペすると、B列にコードNo.が表示されるようにしているのですが、この後さらに、コピペした範囲の次の行のD列に会社名を入力したら、その会社名と合致するB列の値とは全然違う値が表示されてしまいました。 今回のINDEX関数とMATCH関数を組み合わせにも、VLOOKUP関数のように『検索列は降順で一番左の列』といった何か決まりごとのようなものがあるのでしょうか?
- mu2011
- ベストアンサー率38% (1910/4994)
表(1)をSheet1、抽出シートのB1セルに次の数式で可能ですが如何でしょうか。 =IF($D1<>"",INDEX(Sheet1!B:B,MATCH(D1,Sheet1!D:D,0)),"")
お礼
教えていただいた数式を参考に、実際に試してみたところ、うまくいきました。 アドバイスありがとうございました。
- nue-nue
- ベストアンサー率56% (25/44)
VLOOKUP関数は、選択範囲の一番左側の列が検索列として使用され、 別の列を検索することはできないようになっています。 また、検索列は必ず降順に並んでいなければなりません。 したがって、別途表を用意する必要があると思われます。
お礼
VLOOKUP関数を使用するならば、表(1)をそのまま利用することはできないということですね。 できれば、表(1)はそのまま使用したいので、今回は他の関数を使うことを考えようと思います。 回答ありがとうございました。
お礼
今回のような場合、INDEX関数とMATCH関数を組み合わせることでできるとは、知りませんでした。大変参考になりました。 アドバイスありがとうございました。