Lực td
Lực td
Thảo luận 0 thảo luận
Vỗ tay 0 vỗ tay
Lượt xem 1920 lượt xem

Cách xoá bớt giá trị trùng lặp trong VBA.

Jan 09 2021

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.

Sử dụng Remove Duplicate để xoá giá trị bị trùng.

Ngay từ tên của ứng dụng đã nói lên chính công dụng của nó: Xoá trùng. Để tìm được Remove Duplicate thì nó ở trong tab Data.

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

Lọc trùng bằng lệnh Remove Duplicate trong VBA.

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

[edit-pre0]

Sử dụng chức năng Conditional Formatting / Duplicate Value để phân biệt giá trị trùng.

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)

EXG01 - Tuyệt đỉnh Excel - Trở thành bậc thầy Excel trong 16 giờ

Cùng tham gia cộng đồng hỏi đáp về chủ đề Tin học văn phòng

Thảo luận 0 câu trả lời
Lượt xem 1920 lượt xem
Vỗ tay vỗ tay

0 Bình luận

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội