Giả sử bạn có dữ liệu của nhiều chi nhánh. Trong đó mỗi Sheet là một chi nhánh và có thể có dữ liệu trùng nhau trong các Sheet. Vậy làm thế nào để có thể tự động lấy các dữ liệu không trùng từ các chi nhánh vào 1 Sheet tổng hợp duy nhất? Hãy cùng tìm hiểu cách làm trong bài viết này nhé.
Xem nhanh
Trong yêu cầu này, chúng ta có thể dễ thấy 2 nội dung chính cần thực hiện:
Nội dung này các bạn có thể tham khảo tại bài viết:
Macro gộp dữ liệu nhiều sheets Excel vào 1 Sheet
Trong trường hợp dữ liệu ở các Sheet có sự trùng lặp, và tại Sheet tổng hợp kết quả chúng ta muốn kết quả thu được chỉ gồm các nội dung không trùng lặp, cách làm như sau:
Đoạn code thu được là:
ActiveSheet.Range(“A1:C50”).RemoveDuplicates Columns:=Array(1, 2, 3), Header:=xlYes
Thay ActiveSheet bằng tên Sheet: Tong hop
Thay dòng 50 bằng giá trị dòng cuối có dữ liệu
Kết quả là:
Sheets(“Tong hop”).Range(“A1:C” & lr).RemoveDuplicates Columns:=Array(1, 2, 3), Header:=xlYes
Chú ý: Vùng dữ liệu gồm 3 cột là A, B, C nên Array sẽ là 1, 2, 3. Nếu vùng lọc trùng có nhiều cột hơn thì Array sẽ thay đổi tương ứng.
Để copy đoạn code trên, bạn bấm vào mục View raw ở góc phải bên dưới cửa sổ Code.
Như vậy chỉ cần kết hợp với 1 thao tác nhỏ là xóa bỏ dữ liệu trùng bằng Record Macro, bạn đã có thể làm được nhiều việc hơn trong cùng 1 câu lệnh VBA rồi.