Excel - So sánh hai cột và xóa trùng lặp

Các thao tác toán học hoặc logic không thể được thực hiện thủ công trên các bảng tính Excel có chứa lượng dữ liệu lớn, vì sẽ mất quá nhiều thời gian. Nhưng Excel là một chương trình phần mềm văn phòng hiệu quả cho phép dữ liệu được tự động thao tác, thông qua mã chương trình macro hoặc VBA. Để so sánh hai cột và xóa các bản sao trong Excel, có thể viết một macro để so sánh logic hoặc toán học của các cột và loại bỏ các hàng chứa dữ liệu trùng lặp. Một macro Excel được viết tốt có thể hoàn thành nhiệm vụ nhanh chóng và chính xác. Thật dễ dàng để so sánh hai cột và xóa các bản sao trong Excel.

  • 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.

Bài TrướC TiếP Theo Bài ViếT

Lên Trên LờI Khuyên