Hướng dẫn cách lấy dữ liệu không trùng từ nhiều Sheet vào 1 Sheet

Chia sẻ bài viết này:
  •  
  •  
  •  
  •  
  •  
  •  
  •   
  •   

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

Cách lấy dữ liệu không trùng từ nhiều Sheet vào 1 Sheet

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 1: Gộp dữ liệu từ nhiều Sheets vào 1 Sheet
  • Nội dung 2: Phân biệt các dữ liệu trùng lặp trong kết quả và xóa bỏ các dữ liệu trùng

Gộp dữ liệu từ nhiều Sheets vào 1 Sheet

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

Tự động lọc bỏ dữ liệu trùng lặp

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:

  • Bước 1: Record macro cho thao tác Remove Duplicate

Đoạn code thu được là:

ActiveSheet.Range(“A1:C50”).RemoveDuplicates Columns:=Array(1, 2, 3), Header:=xlYes

  • Bước 2: Sửa lại đoạn code thu được:

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.

  • Bước 3: Sử dụng code lọc dữ liệu trùng trong đoạn code gộp dữ liệu

Để 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.


Chia sẻ bài viết này:
  •  
  •  
  •  
  •  
  •  
  •  
  •   
  •