
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ランキング
-
特定のセルだけ結果がおかしい...
-
エクセルのdatedif関数を使って...
-
エクセルのVBAで集計をしたい
-
【マクロ】【配列】3つのシー...
-
vba テキストボックスとリフト...
-
エクセル ドロップダウンリスト...
-
【関数】同じ関数なのに、エラ...
-
Office2021のエクセルで米国株...
-
【マクロ】列を折りたたみ非表...
-
9月17日でサービス終了らし...
-
【マクロ】アクティブセルの時...
-
ページが変なふうに切れる
-
【条件付き書式】シートの中で...
-
【マクロ】3行に上から下に並...
-
【マクロ】オートフィルターの...
-
【マクロ】EXCELで読込したCSV...
-
【画像あり】オートフィルター...
-
他のシートの検索
-
エクセルの循環参照、?
-
Excelファイルを開くと私だけVA...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル
-
【マクロ】WEBシステムから保存...
-
エクセルの循環参照、?
-
エクセル ドロップダウンリスト...
-
エクセルのdatedif関数を使って...
-
特定のセルだけ結果がおかしい...
-
【マクロ】A列にある、日付(本...
-
【マクロ】EXCELで読込したCSV...
-
【マクロ】アクティブセルの時...
-
【エクセル】期限アラートについて
-
iPhoneのExcelアプリで、別のシ...
-
【関数】同じ関数なのに、エラ...
-
Excelの新しい空白のブックを開...
-
【マクロ】3行に上から下に並...
-
【マクロ】宣言は、何のために...
-
VBA チェックボックスをオーバ...
-
Excelについての質問です 並べ...
-
【マクロ】アクティブセルの2...
-
【関数】不規則な文章から●●-●●...
おすすめ情報