• ベストアンサー

Excel でシート間の重複データ(Sheet1のA=Sheet2のA かつ Sheet1のB=Sheet2のB)

Excel2000です。 Sheet1のA列・B列・C列・・・にデータが入っています。 Sheet2のA列・B列・C列・・・にデータが入っています。 Sheet1のA列とSheet2のA列は、似たようなデータが入っています。 Sheet1のB列とSheet2のB列も、同様です。 C列以降のデータは、シート間で全然関係ありません。 Sheet1の行データ(A列・B列)が、Sheet2(A列・B列)にも存在しているかどうか、 を知るには、どうすればよいですか。 C列以降の列のデータは、比較する際に使いません。 つまり、 Sheet1のA = Sheet2のA かつ Sheet1のB = Sheet2のB であるような行を知りたいのですが、 どうすればよいのでしょうか。

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

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

Sheet1、Sheet2 ともに空いている列に =A1&B1 のような連結データを作り、Matchなどで比較するとか、、、 Sheet1 の E1 =A1&B1 Sheet2 の E1 =A1&B1 Sheet1 の F1 =MATCH(E1,Sheet2!E:E,0)

noname#7738
質問者

お礼

ご回答ありがとうございます。 今回のデータ処理については、Sheet1とSheet2の別の列Eに =A1&B1 でデータを作り、 更にSheet1の別の列に =COUNTIF(Sheet2!E:E,"="&E1) というようにして、一致データを知るようにしたいと思います。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.3

VBAでSheet1のA列の1つに対し、Sheet2のA列を総なめして,一致していれば両シートの両行のB列同士を比較して同じなら重複データとしてSheet3に書き出すとか、Sheet1か2のその行に記しを付ければ良いでしょう。総なめ法は、平均でA行数xB行数x1/2ぐらい読む時間がかかるが、最近のパソコンは処理が早くて直ぐ終わるでしょう。 関数ならSheet1とSheet2の比較キーを正確に桁を反映した合成キーを作る必要があるでしょう。=A1&B1は場合によっては危険。

noname#7738
質問者

お礼

ご回答ありがとうございます。 すみません、VBAはよくわかりません。 >=A1&B1は場合によっては危険。 それは全くおっしゃるとおりだと思います。 "あいうえお" & "かきくけこ" "あいうえ" & "おかきくけこ" この2つは違います。 ただ、今回の私のデータ処理に関しては、このようなことは意識しなくていいデータなので、 便法として、=A1&B1 は使えそうです。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

Sheet3に式設定してはどうでしょう?不一致の行がわかるように。 Sheet1でもSheet2の空いた列でも良いですが。 Sheet3のA1に式[=IF(AND(Sheet1!A1=Sheet2!A1,Sheet1!B1=Sheet2!B1),"","NG")]を設定。 行数分コピーする。 不一致行にはA列に"NG"が表示されます。

noname#7738
質問者

補足

どうも、意図しないような結果になっています。 質問の仕方が悪かったように思います。すみません。 Sheet1の内部では、データの重複はありえます。 Sheet2の内部でも、同様です。 Sheet1のレコードの並び順と、Sheet2のレコードの並び順は、関係ありません。 質問で「行」という言葉を使ったのは、まずかったかもしれません。 Sheet1のA1とSheet2のA200が、一致しているかもしれません。 そして、Sheet1のB1とSheet2のB200が、一致しているかもしれません。 この場合も、 Sheet1のA = Sheet2のA かつ Sheet1のB = Sheet2のB と考えて、重複データとします。 すみませんが、よろしくお願いします。

関連するQ&A