• ベストアンサー

緊急!!エクセル教えて下さい

昨日同じ質問をしたのですが、 教えていただいたソフトでは無理でしたので どなたか教えて下さい! リストA リストB があります。 (順番はそれぞれ違う) 1.両方のリストに名前があるひと 2.Aにしか名前がないひと 3.Bにしか名前がないひと を調べたいのです。 VBAなどなんでもいいのでご存知の方 ぜひ教えて下さい。 ちなみに、VBAに全然詳しくないので プログラム方法を書いてください。 ぜひぜひ、よろしくお願いいたします!! P.S.↓のやりかた、BVAでのやりかた、 わかるかた教えて下さい☆ >二つのファイルを照らし合わせるのは難しくなるので、 >一つのファイルにまとめます。 >sheet1とsheet2に(多い場合はsheetを増やす) >あとは、BVAで同じものをsheet3に出力 >関数で出来るかはわかりませんがVBAの方が簡単だと思>います。

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

[Book1-Sheet1]      [Book2-Sheet1]    A   B        A   B 1 あああ        1 かかか 2 いいい        2 いいい 3 ううう        3 ききき 4 おおお        4 くくく 5 おおお        5 おおお 上のような表を考えます。 [Book1-Sheet1]のB1に = COUNTIF([Book2]Sheet1!$A$1:$A$5,A1) B2から下はコピー [Book2-Sheet1]のB1に = COUNTIF([Book1]Sheet1!$A$1:$A$5,A1) B2から下はコピー これで、 [Book1-Sheet1]      [Book2-Sheet1]    A   B        A   B 1 あああ  0     1 かかか  0 2 いいい  1     2 いいい  1 3 ううう  0     3 ききき  0 4 おおお  1     4 くくく  0 5 おおお  1     5 おおお  2 おのずと答えはわかると思いますが、 B列が『0』ならそのシートにしかない。 B列が『1以上』なら両方のシートにあることになります。 >P.S.↓のやりかた、BVAでのやりかた、 >わかるかた教えて下さい☆ >>二つのファイルを照らし合わせるのは難しくなるので、 >>一つのファイルにまとめます。 >>sheet1とsheet2に(多い場合はsheetを増やす) >>あとは、BVAで同じものをsheet3に出力 >>関数で出来るかはわかりませんがVBAの方が簡単だと思>います。 上のやり方の妥当性は分かりませんが、この質問に関しては、『VBA』で解決するよりも関数の方がはるかに簡単です。ブック、シートなどの構成も分かりませんし、面倒になるでしょう。

puriboo
質問者

お礼

ご回答ありがとうございました☆ なんとかできました! また質問することもあると思いますが よろしくお願い致します(^o^)/

その他の回答 (5)

  • ngsvx
  • ベストアンサー率49% (157/315)
回答No.6

エクセルの「統合」という機能を使ってはどうでしょうか 1.まず、リストを次のような形にして下さい。 <リスト1> 名前    リスト1   リスト2 あああ   1 いいい   1 えええ   1 かかか   1 <リスト2> 名前    リスト1   リスト2 いいい           1 えええ           1 ううう           1 いいい           1 *「名前」、「リスト1」、「リスト2」も必要です。 2.適当なシートに、統合先を準備します。 名前    リスト1   リスト2 を記入し、この3つのセルを選択状態にします。 3.メニューバーから、「データ」->「統合」を選択します。 4.統合範囲を、リスト1の範囲を選択し、「追加」します。  (「名前」、「リスト1」、「リスト2」も選択) 5.リスト2も選択・追加します。 6.「統合の基準」の「上端行」「左端列」にチェックをします。 7.OKボタンを押します。 結果は、 「名前」、「リスト1」、「リスト2」 あああ   1 ううう          1 いいい   1      2 えええ   1      1 かかか   1 となります。

puriboo
質問者

お礼

ご回答ありがとうございました☆ なんとかできました! また質問することもあると思いますが よろしくお願い致します(^o^)/

  • SKYY
  • ベストアンサー率36% (16/44)
回答No.5

VLOOKUP関数をお使い下さい。 簡単にできます。 詳細はExcelのヘルプを参照してください。

  • shiga_3
  • ベストアンサー率64% (978/1526)
回答No.4

VBAはちょっと勉強中なので、さしあたりVBAを使わない方法を一つ。 Sheet1とSheet2のA列にA1から名前が入力されているとして、 Sheet3のA列に両方のリストにある名前、B列にSheet1のみにある名前、C列にSheet2のみにある名前を、それぞれ1行目から表示させるとして、 Sheet3の A1に=IF(ISERROR(MATCH(Sheet1!A1,Sheet2!$A:$A,0)),"",Sheet1!A1) B1に=IF(AND(Sheet1!A1<>"",ISERROR(MATCH(Sheet1!A1,Sheet2!$A:$A,0))),Sheet1!A1,"") C1に=IF(AND(Sheet2!A1<>"",ISERROR(MATCH(Sheet2!A1,Sheet1!$A:$A,0))),Sheet2!A1,"") と入力して以下コピーでできます。 なお名前の入力されているのが別ブック(例えばC:\My Documentsに保存されているBook1、Book2)のSheet1の場合は、 Sheet1 → 'C:\My Documents\[Book1.xls]Sheet1'! Sheet2 → 'C:\My Documents\[Book2.xls]Sheet1'! と直してください。 ただし上記操作では空白行ができますので、それを除きたければさらに別シートで処理するか、VBAを使った別の方法にされる必要があると思います。

puriboo
質問者

お礼

ご回答ありがとうございました☆ なんとかできました! また質問することもあると思いますが よろしくお願い致します(^o^)/

回答No.2

1.両方のリストに名前があるひと 2.Aにしか名前がないひと 3.Bにしか名前がないひと とありますが、1.両方のリストに名前があるひとがわかわれば、いいのではないかと思います。 A、Bの各リストの中では重複はないものと考えてよいのでしょうか?ここでは重複はないとします。 Aのリストの名前が入っている列を(A1:A10)、Bリストを(D1:D10)とします。各リストの一番右端でも、どこでもいいのですが、重複しているかどうかを表す列をつくります。ここでは(B1:B10)と(E1:E10)とし、「重複」とでるようにします。 B1にIF(COUNTIF($D$1:$D$10,A1)>1,"重複","")という式をいれB10までコピーします。E1にIF(COUNTIF($A$1:$A$10,D1)>1,"重複","")という式をいれE10までコピーします。 こうするとBとEの列に、重複している人は「重複」とでると思います。 間違っていたらすみません。 また、昨日の質問はみてませんので、同じ回答があったなら、すみません。

puriboo
質問者

お礼

ご回答ありがとうございました☆ なんとかできました! また質問することもあると思いますが よろしくお願い致します(^o^)/

noname#9284
noname#9284
回答No.1

ファイルAのシート見出しを右クリックして「移動またはコピー」で移動先ブック名を「(新しいブック)」 で コピーを作成する、にチェック。 次にファイルBのシート見出しを右クリックして、先ほどコピーを入れたブックを指定し、 同じようにコピーします。 これで新しいブックに2つのシートが集まったわけです。 お急ぎなら次のサイトの通りにしてみてはどうでしょうか。 サンプルもダウンロードできます。 エクセル技道場 別シートにある文字列との重複チェック http://www2.odn.ne.jp/excel/waza/cformat.html#SEC21

参考URL:
http://okweb.jp/kotaeru.php3?q=767715
puriboo
質問者

お礼

ご回答ありがとうございました☆ なんとかできました! また質問することもあると思いますが よろしくお願い致します(^o^)/

関連するQ&A