『VLOOKUPで行の情報を全て参照したい』(MONY) 以前はお世話になり、ありがとうございました。 VLOOKUPをご教授頂きましたが、それでできるのか別の関数になるのか、以下の場合を教えて下さい。 A      B   C   D   E   F 住所コード 住所名 総数 世帯数 地名 件数 このようなデータが入ってるシートが2つあります。 シート1にはAからDの情報が入っています。 シート2にはEとFしか入っていません。 Eの情報はBの住所のうち区市郡を除いた地名しか記載がありません。 シート2にシート1の情報を行ごと参照したいのですが、どうしたら良いでしょう。 昨日自力で試してみたのは、シート1の住所名を全てシート2の地名と同じ表示に直してA列のみVLOOKUPで参照してみたのですが、このように1つずつではない方法があれば教えて下さい。 宜しくお願い致します。 (MONY) ---- 基本的に VLOOKUP を使用するためにはキーになる一意なデータがリストの先頭列にあるのが 望ましい形です。 住所コードがそれに相当すると思いますが、地名は複数同じものがあるかどうかわかりま せんが、件数はキーにはなりそうもないですね。 シート1、2の地名にそれぞれ重複がなければ、検索できると思いますが、どうなのでしょうか。 (Mook) ---- Mookさん ありがとうございます。 シート1、2の地名にそれぞれ重複はないです。 件数表示があるシート2はデータを表示させるシートなので、件数は考えなくて良いと思っています。 シート2の地名と、シート1の住所名しか参照できる物がないので、残りのデータはシートを見比べながら手入力するしかないのでしょうか? (MONY) ---- 地名に重複がなければ、シート1の地名を先頭列に移動(or挿入コピー)して、 VLOOKUP で普通に参照できると思いますが。 全部作業が終わったら、シート2の式をコピーして、値として上書き保存すれば シート1は元の状態に戻してかまいません。 VLOOKUP の制約は、キーが先頭列にあることです。 (Mook) ---- Mookさん ありがとうございます。 シート1には地名の表示がないので、とりあえずシート1は住所名を、シート2は地名を先頭列に移動して以下のようにしました。 =VLOOKUP(A2,'Sheet1'!A2:D860,2) そうしたら、所々返ってきた答えは全て同じで、エラーは全て#N/Aとなってしまいました・・・ (MONY) ---- まずは VLOOKUP の使い方をきちんと理解してください。 http://www.eurus.dti.ne.jp/yoneyama/Excel/kansu/vlookup2.htm http://www.yoshikawa.co.jp/ybs/skilup/ybs0308.htm http://allabout.co.jp/gm/gc/297725/ 完全一致で検索したい場合(特に文字列の場合)は、そういった引き方はできません。 とりあえずの方法は不可なので、シート1の先頭列に地名を作成して参照範囲を A:E列 とすれば、シート2で A1=IFERROR(VLOOKUP($E1,Sheet1!$A$2:$E$860,COLUMN(B1),FALSE),"") をA:D にコピーして、該当する地名のデータが引けると思います(IFERRORは2007以降)。 それから、シート2は地名は先頭列の必要はありません。 VLOOKUP 以外でシート2の地名(E列)をシート1の住所(B列)に含むものを 引くといった処理は、他の関数エキスパートの方の回答をお待ちください。 (Mook) ---- 地名、住所名の実データのサンプルでもあれば取り組みやすいのですが、 以下、推測交じりで、 「地名」はいわゆる「都道府県名」と仮定します。 「住所名」は「都道府県名&市区町村名」であると仮定します。   VLOOKUP関数では「検索文字列を含む」という検索は出来ません。 探すデータの質を同じにする必要があります。 シート1側でA列を挿入、A2に =LEFT(B2,2) という関数を入力して、「都道府県名&市区町村名」の先頭二文字を抜き出します。 シート2側のA2に次の式。 =VLOOKUP(LEFT($E2,2),Sheet1!$A$2:$E$860,COLUMN(B2),FALSE)   これを抽出範囲にコピー貼り付け。 (みやほりん) ---- Mookさん ありがとうございました。 参考になるURLをありがとうございました。 VLOOKUPをよく勉強します。すみません。 >完全一致で検索したい場合(特に文字列の場合)は、そういった引き方はできません。 ということは、多分私がしたいことはVLOOKUPではできないのだと分かりました。 > とりあえずの方法は不可なので、シート1の先〜〜 こちらもやってみましたが、できませんでした。IFERRORはありますが、使ったことがありませんので、徐々に勉強していきます。 教えて下さり、ありがとうございました。 (MONY) ---- みやほりん様 いつもお世話になっております。 回答を、ありがとうございます。 >VLOOKUP関数では「検索文字列を含む」という検索は出来ません。 とのことなので、やはりVLOOKUPではできないのですね。 推測してくださったのですが、「住所名」には○○県○○市○○区××というデータが入っており、「地名」には××というデータが入っています。 >シート1側でA列を挿入、A2に =LEFT(B2,2) こちらをやってみたのですが、結果は住所コードの頭2文字が表示されてしまいました。 >シート2側のA2に次の式。 こちらもやりましたが、#N/Aのエラーでした。 宜しくお願い致します。 (MONY) ---- 基本に戻りVLOOKUPの例題と同じ表を作って、同じように操作をしました。 自分のシートに戻って、シート1に住所名を加工した「地名」列を作り、何度かやり直したところ、住所コードを参照することができました。 その後は同じように1列ずつVLOOKUPで参照したらできました! 難しく考えすぎていたようです。 Mook様、みやほりん様、お手数をお掛けしました。 大変勉強になりました、ありがとうございます。 (MONY)