- ベストアンサー
Excelで2つのシートからの振り分けをしたいのですが
シート1とシート2それぞれに氏名のリストがあります。 これらの氏名は一部重複しています。 Excelで、以下のように分けて名前を抽出したいのですが どうしたらよいでしょうか。 シート3に シート1とシート2の両方に氏名が載っている人のリストを出す。 シート4に シート2に氏名があってシート1にない人のリストを出す。 つまり、シート3とシート4を足すとシート2になる、という意味ですが。 元のリスト(1と2)を変更しても結果が反映されれば嬉しいのですが、可能でしょうか? Excel2000です。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
作業列を作ります。 <シート3> 各シートのA列にA1から氏名が入っているとすると、シート2のB1に =IF(COUNTIF(シート1!A:A,A1)=1,ROW(),"") といれ好きなところまで下までコピーします。 シート3のA1に =OFFSET(シート2$A$1,SMALL(シート2!B:B,ROW())-1,0) といれ好きなところまで下にコピーします。 <シート4> シート2のC1に =IF(COUNTIF(シート1!A:A,A1)=0,ROW(),"") といれ好きなところまで下までコピーします。 シート4のA1に =OFFSET(シート2$A$1,SMALL(シート2!C:C,ROW())-1,0) といれ好きなところまで下にコピーします。 それぞれ入力箇所によって違ってくるので詳細な入力場所を教えていただければ幸いです。
その他の回答 (4)
- nihonjinn
- ベストアンサー率39% (79/200)
あとこれだとエラー値が出てきますのでISERROR関数を用いて =IF(ISERROR(SMALL(シート2!B:B,ROW())),"",OFFSET(シート2$A$1,SMALL(シート2!B:B,ROW())-1,0) ) などとしてください。
お礼
重ね重ね、ありがとうございます!!
- grumpy_the_dwarf
- ベストアンサー率48% (1628/3337)
隙間があいてもよければ、リストがみんなA1からズラッと下に伸びていると仮定して、 Sheet3!A1 : =if(iserror(vlookup(Sheet2!A1, Sheet1!A:A, 1, FALSE)),"", Sheet2!A1) Sheet4!A1 : =if(Sheet3!A1="", Sheet2!A1, "") でできますね。
お礼
ありがとうございます。参考にします
- Ryokucha
- ベストアンサー率25% (115/450)
シート3に シート1とシート2の両方に氏名が載っている人のリストを出す。 原始的な方法かも知れませんが、シート1とシート2の内容を全てシート3にコピーして、名前で並び替えをして、さらに名前をキーにして集計をかけて個数を数えます。 集計がされたらオートフィルタで個数が2個以上を選び出せば重複している人はわかります。 シート4に シート2に氏名があってシート1にない人のリストを出す。 シート1を名前で並び替えて、シート2の名前をキーにvlookupでfalseを付けてシート1に対して照会をかけたらどうでしょう?名前が無い人の欄には#N/Aが表示されます。 残念ながら、どちらも基のシートに追加した場合は作業が必要です。
お礼
ありがとうございます。参考にします
- happypoint
- ベストアンサー率36% (521/1422)
こんにちは。 できると思いますが、Excelでやるとしんどいですよ。 Accessじゃだめですか?
お礼
ありがとうございます。Accessでやると簡単なんですが、どうしてもExcelで処理しなければいけないので。。。
お礼
ありがとうございます。 おかげさまでなんとかできました。助かりました。