- ベストアンサー
緊急!!エクセル教えて下さい
昨日同じ質問をしたのですが、 教えていただいたソフトでは無理でしたので どなたか教えて下さい! リストA リストB があります。 (順番はそれぞれ違う) 1.両方のリストに名前があるひと 2.Aにしか名前がないひと 3.Bにしか名前がないひと を調べたいのです。 VBAなどなんでもいいのでご存知の方 ぜひ教えて下さい。 ちなみに、VBAに全然詳しくないので プログラム方法を書いてください。 ぜひぜひ、よろしくお願いいたします!! P.S.↓のやりかた、BVAでのやりかた、 わかるかた教えて下さい☆ >二つのファイルを照らし合わせるのは難しくなるので、 >一つのファイルにまとめます。 >sheet1とsheet2に(多い場合はsheetを増やす) >あとは、BVAで同じものをsheet3に出力 >関数で出来るかはわかりませんがVBAの方が簡単だと思>います。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
[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』で解決するよりも関数の方がはるかに簡単です。ブック、シートなどの構成も分かりませんし、面倒になるでしょう。
その他の回答 (5)
- ngsvx
- ベストアンサー率49% (157/315)
エクセルの「統合」という機能を使ってはどうでしょうか 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 となります。
お礼
ご回答ありがとうございました☆ なんとかできました! また質問することもあると思いますが よろしくお願い致します(^o^)/
- SKYY
- ベストアンサー率36% (16/44)
VLOOKUP関数をお使い下さい。 簡単にできます。 詳細はExcelのヘルプを参照してください。
- shiga_3
- ベストアンサー率64% (978/1526)
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を使った別の方法にされる必要があると思います。
お礼
ご回答ありがとうございました☆ なんとかできました! また質問することもあると思いますが よろしくお願い致します(^o^)/
- candy-candy
- ベストアンサー率13% (2/15)
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の列に、重複している人は「重複」とでると思います。 間違っていたらすみません。 また、昨日の質問はみてませんので、同じ回答があったなら、すみません。
お礼
ご回答ありがとうございました☆ なんとかできました! また質問することもあると思いますが よろしくお願い致します(^o^)/
ファイルAのシート見出しを右クリックして「移動またはコピー」で移動先ブック名を「(新しいブック)」 で コピーを作成する、にチェック。 次にファイルBのシート見出しを右クリックして、先ほどコピーを入れたブックを指定し、 同じようにコピーします。 これで新しいブックに2つのシートが集まったわけです。 お急ぎなら次のサイトの通りにしてみてはどうでしょうか。 サンプルもダウンロードできます。 エクセル技道場 別シートにある文字列との重複チェック http://www2.odn.ne.jp/excel/waza/cformat.html#SEC21
お礼
ご回答ありがとうございました☆ なんとかできました! また質問することもあると思いますが よろしくお願い致します(^o^)/
お礼
ご回答ありがとうございました☆ なんとかできました! また質問することもあると思いますが よろしくお願い致します(^o^)/