
Excelマクロにて、シートの差分抽出に関する質問です。
色々ネットで調べて作成してみたのですが、初心者のため上手くいかず、ご質問させていただきました。 シート1に新データ、シート2に前回データを貼り付けてシート3に差分データを抽出したいです。
実際のデータ例
※1.2行目はヘッダー。
新データ(シート1)
//A000031/20220423/北海道店//鈴木例男...←追加(抽出)
//D000250/20220613/大阪店/太田例時...←名前変更(抽出無)
//F000191/20230122/広島店/佐藤例人...←追加(抽出)
//F000191/20230202/広島店/村上例名...←追加、管理番号重複(抽出)
//A000943/20221215/福岡店/田中例実...←更新無(抽出無)
//A000111/20230607/北海道店/鈴木例男...←追加(抽出)
旧データ(シート2)
//A000073/20230303/東京店/山本例奈...
//D000250/20220613/大阪店/加藤例子...
//A000943/20221215/福岡店/田中例実...
//A000073/20221115/沖縄店/山田例信...
差分データ(シート3)
//A000031/20220423/北海道店/鈴木例男
//F000191/20230122/広島店/佐藤例人
//F000191/20230202/広島店/村上例名
//A000111/20230607/北海道店/鈴木例男
...
となっており、A列だけに入力されてます。
上記の通り、重複している管理番号もあり、すべて抽出したい。
※3つ、4つ重複するデータもあります。
行ではなく、商品番号を軸にして比較し、新データで新しく追加された商品番号がある行をシート3に抽出。(一致した商品番号行は省いてシート3に抽出)
すみません、ワガママを言うとシート3に抽出したデータをcsvファイルで書き出しするコードも教えていただけると幸いです。
上記のことが出来るコードを教えていただけないでしょうか。
宜しくお願いいたします。
No.1ベストアンサー
- 回答日時:
Sub GetDiff()
Dim ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet
Dim lastRow1 As Long, lastRow2 As Long, i As Long, j As Long
Dim match As Boolean
Set ws1 = Sheets("シート1")
Set ws2 = Sheets("シート2")
Set ws3 = Sheets("シート3")
lastRow1 = ws1.Cells(Rows.Count, 1).End(xlUp).Row
lastRow2 = ws2.Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To lastRow1 ' i=2は、ヘッダー行を除くため
match = False
For j = 2 To lastRow2
If ws1.Cells(i, 1).Value = ws2.Cells(j, 1).Value Then
match = True
Exit For
End If
Next j
If Not match Then
ws3.Cells(ws3.Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).Value = ws1.Cells(i, 1).Value
End If
Next i
End Sub
No.2
- 回答日時:
シート1とシート2のA列にある値の差分を取得して、シート3に出力するマクロの例です。
このマクロでは、シート1とシート2のA列にある値を比較して、シート1にあってシート2にない値をシート3に出力しています。お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelマクロの差分抽出のコードを教えていただきたいです。 2 2023/03/14 11:40
- Excel(エクセル) 複数セルデータを別シートの単一セルにコピーしたい。(詳細をご参照ください) 1 2022/12/14 15:08
- Excel(エクセル) Excelの関数でこんな処理ができますか 1 2023/02/08 13:46
- Visual Basic(VBA) エクセルについて教えてください。 3 2023/06/28 09:11
- Excel(エクセル) Excelでのデータ管理 6 2022/12/24 09:33
- Excel(エクセル) マクロか関数で処理したいのですが、教えて頂けませんか。 8 2022/10/31 15:18
- Excel(エクセル) (教えて下さい)ExcelのSUMIF又はSUMIFSを使って合計値の算出 4 2023/07/24 11:23
- Visual Basic(VBA) 複数シートの複数列に入力されているデータを重複なしで抽出するVBAを作りたいです。 9 2022/06/17 10:33
- Excel(エクセル) EXCEL 関数を教えてください。(A列の同じ値が複数ある場合vlookupで出来ますか) 4 2022/12/07 20:54
- Excel(エクセル) VBAで同フォルダ内の別ブックを開かず参照して条件の一致する行の指定セルを抽出するには? 1 2022/07/21 19:29
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excelの不要な行の削除ができな...
-
エクセルファイルのシート毎の容量
-
複数シートからデータを拾って...
-
Excelでシートの違うデータでグ...
-
シート削除して同名シート追加...
-
VBAで CTRL+HOMEの位置へ移動...
-
Excelのセル横にリスト表示をす...
-
エクセルVBAで、特定文字から始...
-
時間帯の重複を除いた集計について
-
EXCEL 複数行のデータを1行にま...
-
エクセルで名簿を50音で切り分ける
-
EXCELで2つのファイルから重複...
-
Excelで複数のファイルを一つの...
-
エクセルのカメラ機能について
-
EXCEL VBA 担当者毎にファイル作成
-
トランジスタの選び方
-
エクセルで、各シートにある品...
-
エクセル マクロ "特定の日付...
-
Excelのデータをデータベースで...
-
オートフィルタで抽出したデー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
excelの不要な行の削除ができな...
-
エクセルファイルのシート毎の容量
-
複数シートからデータを拾って...
-
Excelでシートの違うデータでグ...
-
シート削除して同名シート追加...
-
Excelで日付変更ごとに、自動的...
-
エクセル 縦に長い表の印刷時...
-
VBAで CTRL+HOMEの位置へ移動...
-
EXCELで2つのファイルから重複...
-
トランジスタの選び方
-
他のシートの一番下の行データ...
-
Googleスプレッドシートフィル...
-
Excel 売上管理シートに入力し...
-
EXCEL の表を一行ずつシートに...
-
エクセルで名簿を50音で切り分ける
-
excelマクロで複数シート間のデ...
-
エクセルVBAで、特定文字から始...
-
【エクセル」 特定のセルで条件...
-
時間帯の重複を除いた集計について
-
エクセルのカメラ機能について
おすすめ情報