Excel - So sánh hai cột và xóa trùng lặp
- Vấn đề
- Dung dịch
- chú thích
Vấn đề
Tôi cần một macro cho bảng tính Excel sẽ so sánh các dòng dựa trên hai ô và tìm bất kỳ bản sao nào.
Trong ví dụ này, hai cột đầu tiên - A và B - là những cột phải là duy nhất. Macro chỉ nên gắn cờ các hàng khớp hoàn hảo trong cả hai cột. Vì vậy, trong ví dụ này, chỉ có hàng thứ năm được gắn cờ, vì nó là một kết hợp chính xác cho hàng trên.
Thí dụ:
Col A Col B Col C Col D 00001 AAAA1 xxxx yyyy 00001 BBBB1 xxxx xxxx 00001 BBBB2 yyyy yyyy 00002 AAAA1 yyyy xxxx 00002 AAAA1 yyyy xxxx 00003 AAAA1 xxxx yyyy
Dung dịch
Giải pháp này sẽ thay đổi dữ liệu trong bảng tính của bạn, vì vậy hãy đảm bảo bạn lưu một bản sao lưu.
Đầu tiên, bạn cần kết hợp dữ liệu trong cột A và B để có thể so sánh chúng với nhau. Để thực hiện việc này, hãy nhập vào một ô trống ở cuối hàng dữ liệu đầu tiên (trong ví dụ này chúng tôi đang sử dụng hàng 2 - thay đổi khi cần thiết):
= A2 & B2
Sao chép công thức này xuống cho toàn bộ bảng tính.
Bây giờ chạy macro bên dưới. Trong mã mẫu này, giả sử bạn đã viết công thức trên trong cột E. Sửa đổi mã khi cần thiết.
Cảnh báo: Macro này sẽ xóa các hàng, vì vậy điều quan trọng là đảm bảo bạn đã tạo bản sao dự phòng sao chép trước khi kiểm tra nó.
Văn bản phụ () Dim j As Integer, k As Integer, r As Range j = Range ("E2"). End (xlDown) .Row For k = j To 2 Step -1 MsgBox k Đặt r = Range (Cells (k, "E"), Các ô (k, "E"). Kết thúc (xlUp)) Nếu WorksheetFunction.Count If (r, Cells (k, "E"))> 1 Sau đó, các ô (k, "E"). EntireRow. Xóa kết thúc nếu tiếp theo k Kết thúc phụ
chú thích
Cảm ơn venkat1926 cho mẹo này trên diễn đàn.