• ベストアンサー

Excelで2つのシートからの振り分けをしたいのですが

シート1とシート2それぞれに氏名のリストがあります。 これらの氏名は一部重複しています。 Excelで、以下のように分けて名前を抽出したいのですが どうしたらよいでしょうか。 シート3に シート1とシート2の両方に氏名が載っている人のリストを出す。 シート4に シート2に氏名があってシート1にない人のリストを出す。 つまり、シート3とシート4を足すとシート2になる、という意味ですが。 元のリスト(1と2)を変更しても結果が反映されれば嬉しいのですが、可能でしょうか? Excel2000です。

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

  • ベストアンサー
  • nihonjinn
  • ベストアンサー率39% (79/200)
回答No.4

作業列を作ります。 <シート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) といれ好きなところまで下にコピーします。 それぞれ入力箇所によって違ってくるので詳細な入力場所を教えていただければ幸いです。

kalmit
質問者

お礼

ありがとうございます。 おかげさまでなんとかできました。助かりました。

その他の回答 (4)

  • nihonjinn
  • ベストアンサー率39% (79/200)
回答No.5

あとこれだとエラー値が出てきますのでISERROR関数を用いて =IF(ISERROR(SMALL(シート2!B:B,ROW())),"",OFFSET(シート2$A$1,SMALL(シート2!B:B,ROW())-1,0) ) などとしてください。

kalmit
質問者

お礼

重ね重ね、ありがとうございます!!

回答No.3

隙間があいてもよければ、リストがみんなA1からズラッと下に伸びていると仮定して、 Sheet3!A1 : =if(iserror(vlookup(Sheet2!A1, Sheet1!A:A, 1, FALSE)),"", Sheet2!A1) Sheet4!A1 : =if(Sheet3!A1="", Sheet2!A1, "") でできますね。

kalmit
質問者

お礼

ありがとうございます。参考にします

  • Ryokucha
  • ベストアンサー率25% (115/450)
回答No.2

シート3に シート1とシート2の両方に氏名が載っている人のリストを出す。 原始的な方法かも知れませんが、シート1とシート2の内容を全てシート3にコピーして、名前で並び替えをして、さらに名前をキーにして集計をかけて個数を数えます。 集計がされたらオートフィルタで個数が2個以上を選び出せば重複している人はわかります。 シート4に シート2に氏名があってシート1にない人のリストを出す。 シート1を名前で並び替えて、シート2の名前をキーにvlookupでfalseを付けてシート1に対して照会をかけたらどうでしょう?名前が無い人の欄には#N/Aが表示されます。 残念ながら、どちらも基のシートに追加した場合は作業が必要です。

kalmit
質問者

お礼

ありがとうございます。参考にします

  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.1

こんにちは。 できると思いますが、Excelでやるとしんどいですよ。 Accessじゃだめですか?

kalmit
質問者

お礼

ありがとうございます。Accessでやると簡単なんですが、どうしてもExcelで処理しなければいけないので。。。