- ベストアンサー
ExcelでのVLOOKUP参照tableの検索方法を知りたい
- Excelでデリバリー管理を行っている際、VLOOKUP参照tableの検索にCtrl+Fを使わずに一括検索する方法を知りたい。
- デリバリー管理のためにExcelを使用しており、VLOOKUP参照tableの検索が手間だと感じています。一括検索を行うための方法についてアドバイスをお願いします。
- Excelでデリバリー管理をしていますが、Ctrl+Fを使わずにVLOOKUP参照tableの一括検索ができる方法を知りたいです。手順を短縮したいため、助言をお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
自分はここまで試して見ました、というのを書かなきゃ、回答者は一番やさしそうな回答になっちゃいますよ。 下記の件など質問には現れていません。むしろ下記がメイン問題かもしれない。 >常用しない漢字の社員がおおいため、煩雑になるのです。辞書に登録するのも徹底は難しい。。 願わくば、名前の欄に名前の一文字プラスワイルドカードを入れたとき、候補者リストが出てくる形にしたいのです ーー (1)データー入力規則で、多段式のコンボボックスを考えてはいかがですか。 「入力規則 範囲名」などでOKWAVEを検索すれば、過去に何度もそういう質問が出てます。 ーー (候補者リストの出し方) (2)関数でやって見ます。(imogasi方式の応用) データ例 Sheet1のA1:D に(D列は関数の結果で、作業列です) 番号 氏名 住所 該当連番 101 山田 千代田 1 102 大北 目黒 103 恩田 北 2 104 東口 江戸川 106 金 渋谷 107 金山 板橋 108 徳山 港 D2には =IF(ISERROR(SEARCH(Sheet2!$A$1&"*",B2)),"",MAX($D$1:D1)+1) と入れてD8まで式を複写。*はワイルドカードです。 --- Sheet2のA1に漢字1文字入力します。下記では「田」 A2に =IF(MAX(Sheet1!$D$2:$D$100)>=ROW()-1,INDEX(Sheet1!$A$2:$C$100,MATCH(ROW()-1,Sheet1!$D$2:$D$100,0),COLUMN()),"") を入れてC2まで式を複写。 A2:C2を範囲指定し、+ハンドルを出して、適当行数式を複写。 候補として最大見積もり数の行数分複写。 結果は下記。 田 101 山田 千代田 103 恩田 北 これで目視で、人を拾い、社員番号を一瞬、覚えて入力する。
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
入力シートに、名前を入れるセルを作り、VLOOKUP関数で、名前ーー>社員番号を検索するセルを作れば済むことではないですか。 他シートの表(USERシート)を参照して、VLOOKUP関数を使ったことがないのでしょうか。表をUser!$a$1:$c$100のように指定すればよい。 例 Sheet1 A1:D5 社員番号 氏名 社員番号 部署 101 山川 101 営業 102 田口 102 人事 105 赤川 105 工場 106 山田 106 仙台 Sheet2 名前 山田 社員番号 106 -->D1:G1 区分 PC名前 社員番号 名前 部署 106 山田 仙台 -->C3:E3 第1行の社員番号の式(社員番号が判らないときは、社員の名前をE1に入れる) =VLOOKUP(E1,Sheet1!$B$2:$C$4100,2,FALSE) 第3行 C3は社員番号を入れる(帳票またはG1セルを見て)。 D3の式 =VLOOKUP(C3,Sheet1!$A$2:$D$100,2,FALSE) E3の式 =VLOOKUP(C3,Sheet1!$A$2:$D$100,4,FALSE) Sheet1で社員番号が2列あるのは、検索データ列が最左にないとVLOOKUP関数で困るため。列指定をー1のように使えない。 これ以上はVBAを使うになるでしょう。
お礼
ご返答ありがとうございます。 名前から社員番号を抽出する方法も考えましたが、 韓国人が多く、常用しない漢字の社員がおおいため、煩雑になるのです。辞書に登録するのも徹底は難しい。。 願わくば、名前の欄に名前の一文字プラスワイルドカードを入れたとき、候補者リストが出てくる形にしたいのです。 例)朴* でenterすると、朴さんがすべて抽出され、その中から選択 やはりVBAかもしれませんね。
お礼
imogasi先生。ご教授ありがとうございます。 未知の関数が出てきて、戸惑いましたが、書かれているとおりにやると できました。 ただ、関数の中身を理解していないので、ひとつずつ分解して、 自分の物にしようと思います。 =IF(ISERROR(SEARCH(Sheet2!$A$1&"*",B2)),"",MAX($D$1:D1)+1) =IF(MAX(Sheet1!$D$2:$D$100)>=ROW()-1,INDEX(Sheet1!$A$2:$C$100,MATCH(ROW()-1,Sheet1!$D$2:$D$100,0),COLUMN()),"") 複数の関数をネストさせるやりかた自体未経験です。 複合関数(?)習得の第一歩としたいです。 また別件で質問させていただくと思いますが、そのときは、よく整理して、クエスチョンを明確にするよう心がけます。 お手数かけましてすみませんでした。