Menu

Tự động hóa việc tạo danh sách duy nhất từ cột dữ liệu trùng lặp bằng VBA

Đèo Thêu Lữ 17/03/2026 19:49 247 lượt xem 1 trả lời

Chào các bác, dạo này em đang loay hoay với một mớ dữ liệu mà có nhiều dòng lặp lại. Cụ thể là em có một cột A chứa tên sản phẩm, nhưng có nhiều sản phẩm bị trùng. Em muốn tạo một danh sách chỉ chứa các tên sản phẩm duy nhất ở một cột khác (ví dụ cột C) để làm báo cáo. Làm thủ công thì hơi mất thời gian, đặc biệt khi dữ liệu lên đến vài trăm dòng.

Em có thử dùng chức năng Remove Duplicates của Excel nhưng nó lại ảnh hưởng trực tiếp đến dữ liệu gốc. Em đang muốn tìm một giải pháp dùng VBA để giải quyết việc này, vừa nhanh lại vừa bảo toàn được dữ liệu gốc.

Có cao nhân nào trong diễn đàn đã từng làm qua hoặc có đoạn code VBA nào xử lý trường hợp này không ạ? Em xin nhờ chỉ giáo ạ.

Em nghĩ là mình có thể dùng vòng lặp để duyệt qua từng ô trong cột A, sau đó kiểm tra xem tên sản phẩm đó đã có trong danh sách duy nhất ở cột C chưa. Nếu chưa có thì thêm vào. Tuy nhiên, em vẫn đang loay hoay với cách kiểm tra hiệu quả.

Mong nhận được sự giúp đỡ từ cộng đồng!

0

Chào bạn,

Vấn đề bạn đang gặp phải khá phổ biến. Để giải quyết việc tự động tạo danh sách duy nhất bằng VBA mà không ảnh hưởng đến dữ liệu gốc, bạn có thể tham khảo cách dùng Dictionary Object. Nó sẽ duyệt qua cột A, thêm từng tên sản phẩm vào Dictionary. Vì Dictionary chỉ lưu trữ các key duy nhất, nên nó sẽ tự động loại bỏ trùng lặp.

Sau đó, bạn chỉ cần trích xuất các key từ Dictionary và ghi ra cột C. Cách này vừa nhanh, vừa hiệu quả, lại giữ nguyên được dữ liệu gốc.

Bạn muốn mình chia sẻ đoạn code mẫu không?

5

Bạn cần đăng nhập để trả lời chủ đề này.

Đăng nhập Đăng ký