• ベストアンサー

VLOOKUPのように、検索をして条件が合ったものを表示したい。

例えば… その月の業務に関する結果が、下記のようにエクセルに表示され、毎月発表されるとします。 A列にフルネームで名前・B列にその人の成績 C列に苗字のみの名前・D列にその人の出勤日数 A列とC列には、同じ人たちの名前が記載されていますが、 その並びは違います。 (A列は田中太郎・佐藤太郎・鈴木太郎…C列は鈴木・田中・佐藤…) 別部署から提示される情報をコピペして作成したエクセルの為、 その並びを毎月固定する・並びを変える事は不可能とします。 ↑これと元シートとします。 その表を元に、別シートに(同一シート内でも良いのですが…) A列に名前・B列に成績・C列に出勤日数と、一つにまとめた表を作りたいのですが、 元シートA列に「田中」という文字がある時、そのセルの1つ隣のセルの内容をB列に、 その2つ隣の内容をC列に…読むようにしたいのですが、 文字自体を直接検索する事はできるのでしょうか。 VLOOKUPでやってみたのですが、#N/Aとエラーが出るセル・設定されたセルではなく、別のセルを読みこんでしまうセルが混合し、 うまくできませんでした。 エクセル初心者のため、質問の書き方もうまく説明ができず申し訳ありません。 分かりにくい箇所は追記をさせて頂きますので、アドバイスをお願い致します

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

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.3

No.1です。 > もし前方一致の苗字がいた場合は、どう変わってくるのでしょうか? あなたがその人達の事を何も知らない場合、「長谷」と言う苗字の人をリストから探している時に「長谷川太郎」と言うフルネームを見つけたら「長谷・川太郎」だと判断してしまっても仕方ないと思いませんか? それと同じです。 本来でしたら、個人を特定できる社員番号のようなデータを使うべきです。 同姓同名が居ないならフルネームでも可ですが。 > 例えば、A列には田中太郎・田中次郎、 > C列に田中(太)・田中(次)という表記だった場合はどうなりますか? 括弧の中の文字が名前の1文字目であると言う条件なら、苗字+括弧の中の1文字の前方一致で検索できます。 B8に =VLOOKUP(SUBSTITUTE(SUBSTITUTE($A8,"(",""),")","")&"*",$A$2:$B$5,2,FALSE)

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.2

>C列に田中(太)・田中(次)という表記だった場合はどうなりますか VLOOKUP関数による検索は、該当した行の始めのほうしか検察できません。だから同姓同名、この質問の場合は同姓で、破綻します。 VBAでも使わないとダメです。使っても、人出の助力が要るが。 姓で検索しようとすることに無理がある。 ーー 例データ A-C 元データ D列は式で表示 田中 一郎 20 田中 重複 鈴木 順     30 鈴木 30 田中 修     40 田中 重複 C列順序はA列と変えてもよい。 D1の式は=IF(COUNTIF($A$1:$A$20,C1&"*")>1,"重複",VLOOKUP(C1&"*",$A$1:$B$20,2,FALSE)) 式を下方向に複写。 そこで重複表示行はC列に1字加えるとか(例 田中 一、田中 修)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

苗字で出席日数を管理していると言うことは、同じ苗字の人は居ないと言うことですよね? 「長谷川」と「長谷」の様に前方一致の苗字の人はいませんか? その前提でなら簡単です。 添付の図を見てください、フルネームがA2:A4、成績がB2:B4、苗字がC2:C4、出席日数がD2:D4に入っている場合 A8には =C2 B8には =VLOOKUP($A8&"*",$A$2:$B$4,2,FALSE) C8には =VLOOKUP($A8,$C$2:$D$4,2,FALSE) A8は苗字を持ってきているだけ B8は、フルネームと成績の表から苗字が前方一致している人の成績を引っ張ってきて居ます。 C8は、苗字と出席日数の表から単純なVlookup

sollow
質問者

補足

なるほど!ありがとうございます。 もし前方一致の苗字がいた場合は、どう変わってくるのでしょうか? 例えば、A列には田中太郎・田中次郎、 C列に田中(太)・田中(次)という表記だった場合はどうなりますか?

関連するQ&A

専門家に質問してみよう