25/05/2018, 23:32

Hướng dẫn cách lọc bỏ giá trị trùng trong VBA

Làm thế nào để phân biệt các giá trị trùng trong Excel? Làm thế nào để loại bỏ các giá trị trùng nhau trong một danh sách? Hai câu hỏi trên hầu hết ai từng làm việc trên Excel đều gặp phải, nhưng không phải ai cũng biết cách làm hiệu quả. Sau đây Học Excel Online sẽ hướng dẫn bạn những kỹ thuật ...

Làm thế nào để phân biệt các giá trị trùng trong Excel?

Làm thế nào để loại bỏ các giá trị trùng nhau trong một danh sách?

Hai câu hỏi trên hầu hết ai từng làm việc trên Excel đều gặp phải, nhưng không phải ai cũng biết cách làm hiệu quả. Sau đây Học Excel Online sẽ hướng dẫn bạn những kỹ thuật đơn giản và hiệu quả để trả lời 2 câu hỏi trên, đặc biệt chúng ta không cần phải dùng hàm, công thức và làm hoàn toàn tự động.

Phân biệt giá trị trùng với chức năng Conditional Formatting / Duplicate Value

Bước 1: Xác định cột cần phân biệt giá trị trùng nhau

Trong hình sau, chúng ta áp dụng trên cột A => Bôi đen vùng A2:A20

Bước 2: Trong tab Home, chọn Conditional Formatting > Highlight Cell Rules > Duplicate Values

Bước 3: Sau khi chọn chức năng Duplicate Values => Chọn định dạng để phân biệt những giá trị trùng

Như vậy chúng ta có thể tự động phân biệt những giá trị trùng nhau trong 1 danh sách rồi.

Kết quả:

Loại bỏ giá trị trùng với chức năng Remove Duplicate

Trong Excel có một công cụ rất hữu ích trong việc loại bỏ các giá trị trùng: đó là chức năng Remove Duplicate trong tab Data

Chúng ta thực hiện như sau:

  • Chọn vùng dữ liệu cần thực hiện việc loại bỏ giá trị trùng
  • Mở tab Data, chọn Remove Duplicate. Bảng Remove Duplicates hiện ra như sau:

  • Trong bảng Remove Duplicates, chỉ chọn cột chứa giá trị trùng cần loại bỏ. Trong ví dụ trên chúng ta muốn loại bỏ giá trị trùng ở cột A, do đó chỉ chọn mục Country.
  • Bấm OK => Kết quả sau khi thực hiện Remove Duplicates như sau:

Sử dụng lệnh Remove Duplicates trong VBA

Mở tab Developer, chọn Record Macro để ghi lại toàn bộ thao tác sử dụng chức năng Remove Duplicates vừa thực hiện ở trên, chúng ta sẽ thu được dòng lệnh cho chức năng này như sau:

ActiveSheet.Range(“A1:B20”).RemoveDuplicates Columns:=1

Trong dòng lệnh trên chúng ta hiểu các nội dung như sau:

  • ActiveSheet: sử dụng ở sheet nào thì chúng ta đặt tên sheet đó. Nếu không thì sử dụng ActiveSheet để áp dụng với Sheet đang mở
  • Range(“A1:B20”) vùng bảng tính cần thực hiện. Nếu phạm vi bảng tính thay đổi thì chúng ta thay đổi tọa độ trong nội dung này
  • Range(“A1:B20”).RemoveDuplicates thực hiện chức năng RemoveDuplicates: lọc bỏ giá trị trùng trong bảng tính từ A1:B20
  • Columns:=1 là áp dụng tại cột thứ 1 trong bảng tính. Nếu sử dụng tại cột nào thì chúng ta đặt giá trị column tương ứng

Như vậy với 1 dòng lệnh VBA chúng ta đã có thể thực hiện thao tác lọc bỏ các giá trị trùng ở trong Excel rồi.

Dưới đây là một số ví dụ về cách tùy biến dòng lệnh trên:

Áp dụng trong cột A, vùng từ A1 tới A20

ActiveSheet.Range(“$A$1:$A$20”).RemoveDuplicates Columns:=1

Áp dụng trong bảng A1:B20, lọc trùng ở cột B

ActiveSheet.Range(“$A$1:$B$20”).RemoveDuplicates Columns:=2

Bảng tính động (tìm tới dòng cuối có chứa dữ liệu)

View the code on Gist.

Tải về file mẫu: http://bit.ly/2EwezYz

Chúc các bạn học tốt cùng Học Excel Online!

0