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も見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
Excelマクロの差分抽出のコードを教えていただきたいです。
Excel(エクセル)
-
更新前と更新後の差分をVBAを使って抜き出したい
Excel(エクセル)
-
EXCELで2つのシートから一致しない情報だけ抽出
Excel(エクセル)
-
-
4
Excel VBA:セルを新旧1つずつ比較して同分を上書き、差分を蓄積追加
Excel(エクセル)
-
5
VBAでのリスト不一致抽出について
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excelの不要な行の削除ができな...
-
複数シートからデータを拾って...
-
エクセルファイルのシート毎の容量
-
Excelでシートの違うデータでグ...
-
シート削除して同名シート追加...
-
EXCELで2つのファイルから重複...
-
Excelで日付変更ごとに、自動的...
-
【エクセルマクロ】複数シート...
-
トランジスタの選び方
-
エクセル 縦に長い表の印刷時...
-
Excelマクロ 差分抽出の方法が...
-
Excelでのデータ管理
-
ExcelマクロのSendkeysで処理途...
-
VBAで CTRL+HOMEの位置へ移動...
-
エクセルで入力シートとデータ...
-
他のシートの一番下の行データ...
-
Excel 売上管理シートに入力し...
-
EXCEL 複数行のデータを1行にま...
-
異なるブック間の検索・コピー...
-
エクセルで複数行のデータを1列...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数シートからデータを拾って...
-
エクセルファイルのシート毎の容量
-
Excelでシートの違うデータでグ...
-
excelの不要な行の削除ができな...
-
シート削除して同名シート追加...
-
Excelで日付変更ごとに、自動的...
-
EXCELで2つのファイルから重複...
-
VBAで CTRL+HOMEの位置へ移動...
-
オートフィルタで抽出したデー...
-
トランジスタの選び方
-
ファンモータが作動しない。
-
EXCEL 複数行のデータを1行にま...
-
別々のシートの表をピボットテ...
-
エクセルのカメラ機能について
-
エクセル マクロ "特定の日付...
-
他のシートの一番下の行データ...
-
(VBAにて)日付でデータを抽出す...
-
エクセルVBAで、特定文字から始...
-
【エクセル」 特定のセルで条件...
-
EXCEL の表を一行ずつシートに...
おすすめ情報