• 締切済み

エクセルでデータの検索

エクセル2000ですが、 シート1に約4000件のデータ、シート2に約4300件の データがあります。 データの構成は同じで2列目 のコードで同じものかどうか区別できます。 シート1とシート2を比較して、同じでない300件を 探し出したいのですが、どうすれば簡単に出来るで しょうか。 月に1回このような作業が起きます。

みんなの回答

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

VBAでやって見ました。 Sheet1、Sheet2をそれぞれB列で昇順にソートします。 ツール-マクロ-VBEで白紙的画面が出ます。 そのメニューで挿入-標準モジュールをクリックし その出てきた白紙の画面に下記をコピーし貼りつける。 変える所は第4行目から3行のSheet1,2、3を 自分の場合に合わせて変更します。Shhet3が結果の出るシートです。 F5キーを押して実行する。 Sub test01() Dim sh1 As Worksheet Dim sh2 As Worksheet Dim sh3 As Worksheet Set sh1 = Worksheets("sheet1") Set sh2 = Worksheets("sheet2") Set sh3 = Worksheets("sheet3") '---- i = 2: j = 2: k = 2 p01: If sh1.Cells(i, "B") = "" Then sh1.Cells(i, "B") = String(10, Chr(255)) If sh2.Cells(j, "B") = "" Then sh2.Cells(j, "B") = String(10, Chr(255)) '-----比較 If sh1.Cells(i, "B") = sh2.Cells(j, "B") Then GoTo eql If sh1.Cells(i, "B") > sh2.Cells(j, "B") Then GoTo hgh If sh1.Cells(i, "B") < sh2.Cells(j, "B") Then GoTo low '------等しい場合 eql: If sh1.Cells(i, "B") = String(10, Chr(255)) Then GoTo pend '終了 i = i + 1: j = j + 1 'sheet1,sheet2とも1行下へ GoTo p01 '------大の場合 hgh: sh3.Cells(k, "B") = sh2.Cells(j, "B") '小を第3シートへ(AA) j = j + 1 'sheet2の1行下へ k = k + 1 '1行下へ GoTo p01 '-------小の場合 low: sh3.Cells(k, "B") = sh1.Cells(i, "B") '小を第3シートへ(BB) i = i + 1 'Sheet1の1行下へ k = k + 1 '1行下へ GoTo p01 '-----終了 pend: sh1.Cells(i, "B") = "" sh2.Cells(j, "B") = "" End Sub 移したい項目が複数あれば、AA、BBの行の次行に AAの次には sh3.Cells(k, "C") = sh1.Cells(i, "C") BBの次には sh3.Cells(k, "C") = sh2.Cells(i, "C") (C列を移したい、の例)のように、直ぐ次行に追加すると出きる。

回答No.3

単純にどれが違うか、がわかるだけでよいのなら、#1の方の応用で、 シート2のデータのある列に条件付き書式を設定して、背景を赤にするとかすれば、いいんじゃないでしょうか。 具体的には、シート2のデータのある列を範囲指定して、条件付き書式で「数式が」「=(COUNTIF(シート1!B:B,B1)=0)」と入力して、書式を設定すれば、一致しないデータが違う書式で表示され一目瞭然ですが。

回答No.2

ACCESSの不一致クエリを利用すると、便利ではないでしょうか?

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 シート2のどこかの列を使用します。 その列の先頭行(2行目とする)に、 =IF(COUNTIF(シート1!B:B,B2),"","×") これで、"×"が付いた行のデータがシート1に存在しないデータになります。 あとは、オートフィルタなどで。

yaba77
質問者

補足

ありがとうございます。 早速この通りにやってみた つもりですが、「値の更新・シート1」と表示された ダイアログ?が表示されて、この式を入力したセルには 「#VALUE」がひょうじされます。 どかが違っているのでしょうか?

関連するQ&A