Loại bỏ những giá trị trùng nhau trong Excel hay trong một danh sách bất kỳ sẽ giúp cho bảng tính của bạn được tinh gọn, trình bày sáng sủa hơn và trên tất cả là làm giảm dữ liệu của file. Bài viết này Gitiho.com sẽ hướng dẫn cho bạn đọc nào chưa biết về 3 cách để lọc hết những giá trị trùng lặp trong VBA.
VBA là một công cụ cực kì hữu ích trong Excel. Nó giúp bạn thiết lập các công thức để thao tác với dữ liệu tự động, nhanh chóng chẳng hạn như xóa công thức chỉ để lại giá trị trong Excel.
Ngoài ra, một ứng dụng phổ biến của VBA là xóa các dữ liệu trùng lặp trong các Sheet với Remove Duplicate. Vậy chúng ta sẽ dùng Remove Duplicate thế nào?
Bước 1: Chọn phần dữ liệu được chọn để loc trùng.
Bước 2: Mở tab Data rồi chọn Remove Duplicate. Ngay tiếp theo là bảng Remove Duplicate hiện ra như sau.
Bước 3: Cửa sổ Remove Duplicate hiện ra và cho chúng ta ba lựa chọn: lọc cả bảng dữ liệu, chỉ lọc cột A và chỉ lọc cột B.
Bước 4: Bấm OK để thực hiện thao tác Remove Duplicate
Để sử dụng lệnh Remove Duplicate, ta đầu tiên phải mở tab Developer và chọn Record Macro để ghi lại toàn bộ thao tác Remove Duplicate vừa thực hiện bên trên.
Ta sẽ thu được dòng lệnh như sau.
ActiveSheet.Range(“A1:B20”).RemoveDuplicates Columns:=1
Ta sẽ cùng phân tích dòng lệnh này dưới đây.
- ActiveSheet :ta mở sheet nào thì đặt tên ngay cho sheet đó. Chúng ta cũng thể dùng Active Sheet cho Sheet đang mở.
- Range(“A1:B20”): vùng bảng tính cần thực hiện. Vùng phạm vi này sẽ thay đổi toạ độ tuỳ theo nội dung của bảng tính.
- Range(“A1:B20”).RemoveDuplicates: sử dụng chức năng Remove Duplicate để lọc giá trị trùng từ A1 đến B20.
- Columns:=1 : Có nghìa là áp dụng ngay từ cột thứ nhất của bảng tính. Còn tuỳ theo bạn muốn lọc ở cột nào thì chỉ cần thay giá trị columns tương ứng.
Ngoài ra chúng ta cũng có một số biến thể của công thức này như sau.
Áp dụng lọc trùng ở cột B, phạm vi bảng A1:B20.
ActiveSheet.Range(“$A$1:$B$20”).RemoveDuplicates Columns:=2
Áp dụng lọc trùng ở cột A, phạm vi từ A1 tới A20.
ActiveSheet.Range(“$A$1:$A$20”).RemoveDuplicates Columns:=1
Bảng tính động (tìm tới dòng cuối chứa dữ liệu).
Sub LocTrung04() 'Xác định dòng cuối trong bảng dữ liệu Dim DongCuoi As Long DongCuoi = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row 'Loại bỏ giá trị trùng trong bảng, gồm 2 cột A và B, từ dòng 1 tới dòng cuối chứa dữ liệu ActiveSheet.Range("A1:B" & DongCuoi).RemoveDuplicates Columns:=1 End Sub
Bước 1: Xác định vùng cần lọc trùng.
Như ví dụ dưới đây ta sẽ lọc trên vùng A2:A20
Bước 2: Trong tab Home ta chọn Conditional Formatting > Highlight Cell Rules > Duplicate Values
Bước 3: Chọn định dạng để để phân biệt những giá trị vùng.
Kết quả.
Quả thật VBA đã đem đến cho người sử dụng Excel cách xử lý dữ liêu nhanh chóng và chính xác. Không chỉ trên Excel mà VBA còn xuất hiện trên nhiều chương trình khác như Outlook, PowerPoint, Word,.. để hỗ trợ ngưởi dùng lập báo cáo tự động.
Nếu bạn còn mới với VBA, chúng ta nên xem qua những bài viết của Gitiho.com về nội dung này.
Hướng dẫn về đối tượng Range trong VBA cơ bản
Tìm hiểu về cách tự tạo hàm Excel trong VBA
Hướng dẫn cách tùy biến comment trong Excel bằng VBA (Phần 1)
Nếu công việc của bạn liên quan nhiều đến quản lý, phân tích dữ liệu và làm báo cáo trên bảng tính thì giỏi Excel thôi chưa đủ. Nếu biết thêm về VBA sẽ giúp bạn tiết kiệm tối đa thời gian làm việc nhờ làm báo cáo tự động, phân tích và xử lý số liệu chính xác tuyệt đối, đặc biệt công cần lọ mọ sửa thủ công,…
Tất tần tật những kiến thức từ cơ bản đến nâng cao về cách sử dụng VBA trong Excel sẽ được đề cập trong khóa học VBAG01: Tuyệt đỉnh VBA - Tự động hóa Excel với lập trình VBA tại Gitiho
Hãy nhấn vào Học thử hoặc Đăng ký ngay!