• ベストアンサー

同じ文字列がある場合、その行のB列を自動入力させい

シート1 A列=メールアドレス シート2 A列=メールアドレス B列=名前 を入力しています。 シート1A列にあるメールアドレスがシート2A列にもあった場合、 シート2の同じメールアドレスの行のB列にある名前をシート1のB列に自動で入力させたいのですが そんなことはできないでしょうか? 結果としては シート1のB列にメールアドレスに紐づいた名前を入れたいです。 今、シート1にあるメールアドレスをシート2で検索してあった場合は シート2のB列をコピーしてシート1のB列にペーストしていますが、 件数が5000件くらいあるので気が遠くなりそうです。 よろしくお願いいたします。

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

  • ベストアンサー
回答No.7

>式を当てはめてみましたが 確かめるときは、まずはこのページからExcelに、コピペしてくださいね。入力した式がわずかに異なるだけでうまく行かなかったりすることも、よくあるので…。 >メールアドレスがないわけではなく、  個別に検索するとあるのにエラーになってしまっています。  こういうことってありえますか? あり得るどころか、世の中では(というか初級者の間では)、頻発している現象です。VLOOKUP関数を使っていて「#N/A」というエラー値が出るのは、よく似たデータは存在するものの、厳密には同一ではないというケースが多いです。 例えば「b」と「b」みたいに全角/半角が一致していないとか、不要なスペースが文字列中に混じっているとか、改行の文字列が入っているとか。全部「#N/A」が出ます。そういうときは、置換の機能を使うなどして、元データの内容を統一する作業が先です。 また、数字の入力されているセルの書式が文字列に設定されている場合も、同じエラーが出たりします。質問文ではメールアドレスとのことなので無関係かもしれませんが、そういうセルの書式を一括で修正する方法もいくつかありますので、質問者さんのファイルで該当しそうな場合は、その旨を補足してください。 (詳しく説明しないと、回答も漠然としたことしか言えません)

ROLLY617
質問者

お礼

すみません sheet名を変更していたのですが、このシート名をsheet1とかに戻したら うまくいきました。 シート名に日本語は使っちゃだめなのですね。 勉強になりました。 皆様ありがとうございました!

その他の回答 (6)

回答No.6

全員がペチャ!、は有得んので、やったことをきっちり説明されたし! この間も、問題とは違う列を使って自己解決したみたいな、お返事をされたスカタンがおりました! http://okwave.jp/qa/q7613063.html この質問者は、回答#4へのお礼の中で、とんでもないどんでん返しを行った。 自分が犯したミスを最後まで理解できなかったようだ。さらに悪いことにベストアンサーの選定も間違った。 後からこのQ&Aを見た人には、なんだ!自己解決!?位にしか見えない。これではOKWaveのQ&Aコレクションの信頼度は大きく低下します。 ================================== <回答#4へのお礼>再度追記していただいた関数ですと元のデータの何かがいけないのかやはり空白になってしまいます…検索値と範囲を範囲ではなく行全体にしたら値が出てきましたので一旦はこちらで解決しそうです! =VLOOKUP(J:J,新帳合!D:G,4,0) ================================== これを当初の質問に引き当てると、 =IFERROR(VLOOKUP(J2&"",データ!$C$3:$G$12048,5,FALSE),"") ではなく、 =IFERROR(VLOOKUP(J2&"",データ!$D$3:$G$12048,4,FALSE),"") と書かれてなければ答は絶対に出ない!

回答No.5

No.4です。錯覚により一部、ちょっと別の内容を書いてしまいました。ごめんなさい。 No.4の回答文のうち、「ところで、=if(a2="","",vlookup(a2,シート2!A:B,2,))という具合に……」という箇所の数式を、次のとおり差替えでお願いします。 =if(countif(シート2!A:B,a2),vlookup(a2,シート2!A:B,2,),"")  ……Excel2003以前 =iferror(vlookup(a2,シート2!A:B,2,),"")  ……Excel2007以後

回答No.4

シート1のB2 =vlookup(a2,シート2!A:B,2,)   ※下の説明どおり、IF関数を併用するかどうかは目的次第です。 Excel初級。メールアドレスの一覧は通常、一意のデータになっていると考えられるので、単にVLOOKUP関数で大丈夫。「VLOOKUP関数」をインターネットで検索してください。 手入力でもいいし、上の数式をそのままB2セルにコピペでもいいです。また、「シート2!」という部分は勿論タイプしてもいいのですが、数式を書いているときにシート2のタブをマウスでクリックすると、自動入力されます。「A:B」も、小文字などでタイプしてもいいですが、シート2でA:Bの範囲の列番号(ワークシートの上端の「A」、「B」という部分)をドラッグすると、入力されます。 「A:B」という列全体の指定ではなく「A1:B10」といったセル範囲を指定したいという場合は、「シート2!$A$1:$B$10」というふうに「$」マークを付ける必要があるので、注意。付加するには、式中のセル番地の上にカーソルがあるときに、キーボードのF4キーを何回か押してみてください。「$」については、「絶対参照」、「相対参照」をインターネットで検索してください。 B3セル以下の行に同様に入力するには、「オートフィル」という機能を使います。インターネットで検索してください。B2にカーソルを置いた状態で、カーソルの右下隅の角をダブルクリックすると、この機能が発動し、B3以下も入力されます。 ところで、=if(a2="","",vlookup(a2,シート2!A:B,2,))という具合にIF関数と組み合わせると、エラーの場合(シート1のメールアドレスがシート2で見付からない場合)に、計算結果としてエラーを表示せず空文字列(「""」で指定)を表示させるということも、一応できます。ただ、これは空白ではなく、目に見えない長さゼロの文字列が入力されてしまうのです。除去して空白セルにしたい場合は、IFを使わず、一旦そのままエラーを表示させましょう。そのほうが分かりやすいし、除去の操作も少しラク。 データ(メールアドレス)が見付からない場合に出るエラーは、「#N/A」です。このエラー値を除去するには、次のとおり操作してください。文字で書くと長くて複雑そうですが、実際は簡単な作業です。 1.エラーの出ているB列の列番号を右クリックし、列全体をコピー。 2.同じ列でもいいのですが、まあ隣のC列あたりの列番号を右クリックし、「形式を選択して貼り付け」。ダイアログが現れるので、「値」を指定してOKします。すると、B列には数式が入力されていますが、C列は値(B列での計算結果である文字列)が入力されています。 3.このうち「#N/A」という文字列(セルではなく文字列)をコピー。 4.C列の列番号をクリックして列全体を選択した状態で、リボンあるいはメニューバーの「ホーム>検索と選択>置換」を起動(ショートカットキーCtrl+H)。 5.現れたダイアログで「検索する文字列」ボックスに「#N/A」を貼り付け(Ctrl+Vあるいは右クリック)。「置換後の文字列」には何も記入しないで、「すべて置換」を押す(Alt+A)。

ROLLY617
質問者

お礼

ありがとうございます。 式を当てはめてみましたが #N/Aというエラーが出てしまいました。 メールアドレスがないわけではなく、 個別に検索するとあるのにエラーになってしまっています。 こういうことってありえますか?

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

シート1のB1セルには次の式を入力して下方にドラッグコピーします。 =IF(COUNTIF(Sheet2!A:A,A1)=0,"",VLOOKUP(A1,Sheet2!A:B,2,FALSE))

ROLLY617
質問者

お礼

ありがとうございます。 式を当てはめてみましたが #N/Aというエラーが出てしまいました。 解決策をご存知でしたら教えていただけると助かります。

  • mekuriya
  • ベストアンサー率27% (1118/4052)
回答No.2

できます。簡単にできますよ。そんなのコピー&ペーストしていたらエクセルを使う意味がありません。 VLOOKUP関数を使えばいともたやすいことです。利用頻度が高い関数ですから、この機会にしっかり使い方を覚えてください。 VLOOKUP関数の使い方 [エクセル(Excel)の使い方] All About http://allabout.co.jp/gm/gc/297725/

ROLLY617
質問者

お礼

ありがとうございます。 このページは見ていて、これを見ながらやってみたのですが やっぱり#N/Aというエラーが出てしまいました。

回答No.1

B2に、 =IF($A2="","",VLOOKUP($A2,シート2!$A:$B,2,FALSE)) 以下、コピー VLOOKUP($A2,シート2!$A:$B,2,FALSE)がエラーのときの対処は、「IFERROR」(2007以降)が使えます。

ROLLY617
質問者

お礼

ありがとうございます。 式を当てはめてみましたが #N/Aというエラーが出てしまいました。 ありがとうございました

関連するQ&A