Xử lý dữ liệu lặp bằng VBA – xoá dòng trùng, lọc nâng cao
Dữ liệu trong Excel thường bị trùng dòng, nhất là khi bạn: • Gộp dữ liệu từ nhiều nguồn • Copy–paste từ nhiều file • Nhập tay thiếu kiểm soát ⚠ Nếu không xử lý, báo cáo sai số, lọc sai thông tin, hoặc lặp dữ liệu khách hàng. 👉 Bài viết này sẽ hướng dẫn bạn xử lý dữ liệu lặp bằng VBA, giúp xoá dòng trùng, lọc nâng cao, tiết kiệm thời gian hơn nhiều so với thao tác tay.
Nội dung bài viết
1. Khi nào cần xoá dòng trùng?
Một số tình huống thực tế:
Tình huống |
Vấn đề nếu không xử lý |
Danh sách khách hàng |
Trùng email, gửi 2 lần → khó chịu |
Dữ liệu chấm công |
Lặp ngày → cộng công sai |
Danh sách giao dịch |
Trùng ID → báo cáo sai doanh thu |
Lịch sử chăm sóc KH |
Lặp nội dung → spam chăm sóc |
2. Code VBA xoá dòng trùng theo cột bất kỳ
✏️ Ví dụ: xoá dòng trùng theo cột A
Giả sử bạn có dữ liệu từ A1 đến D1000, muốn xóa các dòng có giá trị trùng nhau ở cột A:
Sub XoaDongTrung_CotA()
Dim lastRow As Long
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1") ' Đổi tên sheet nếu cần
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
' Xoá dòng trùng dựa vào cột A
ws.Range("A1:D" & lastRow).RemoveDuplicates Columns:=1, Header:=xlYes
MsgBox "Đã xoá dòng trùng theo cột A!"
End Sub
✅ Bạn có thể thay Columns:=1 thành Columns:=Array(1,2,3) nếu muốn xoá trùng theo nhiều cột.
3. Lọc nâng cao bằng VBA – giữ lại duy nhất
Bạn muốn tạo một danh sách không trùng, ví dụ lấy danh sách tỉnh thành, mã sản phẩm, mã nhân viên, bạn có thể dùng đoạn sau:
Sub Loc_DanhSach_Unique()
Dim ws As Worksheet
Dim sourceRange As Range
Dim targetRange As Range
Set ws = ThisWorkbook.Sheets("Sheet1")
Set sourceRange = ws.Range("A2:A1000") ' Dữ liệu cần lọc
Set targetRange = ws.Range("F2") ' Nơi dán kết quả
sourceRange.AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=targetRange, Unique:=True
MsgBox "Đã lọc danh sách không trùng tại cột F"
End Sub
📌 Ứng dụng tốt cho:
- Danh sách tỉnh thành
- Mã sản phẩm duy nhất
- Các email khách hàng khác nhau
4. Kết hợp với nút bấm trên Excel
Bạn có thể chèn Button → gán macro để chạy trực tiếp:
- Vào tab Developer → Insert → Button
- Gán macro XoaDongTrung_CotA hoặc Loc_DanhSach_Unique
- Click → Excel tự làm việc
- Tổng kết – Ưu điểm của xử lý lặp bằng VBA
So sánh |
Thao tác tay |
Dùng VBA |
Tốc độ |
Thủ công, chậm |
Nhanh, chỉ 1 click |
Tính lặp lại |
Mỗi lần làm lại |
Gắn macro, tái dùng nhiều lần |
Nâng cao |
Bị giới hạn |
Tuỳ chỉnh logic, kết hợp điều kiện |
Tích hợp |
Khó tự động hóa |
Có thể chạy trong quy trình lớn |
Học VBA Excel để làm việc thông minh hơn
Bạn đang làm việc nhiều giờ mỗi tuần với Excel, nhưng:
- Vẫn thao tác lặp lại
- Báo cáo hay bị lỗi do dữ liệu lặp
- Mất thời gian lọc, sửa, chuẩn hóa?
🎓 Đã đến lúc học VBA tại MCI Academy để làm chủ Excel:
- 15+ project thật trong công việc văn phòng
- Hướng dẫn từng dòng, ai cũng làm được
- Có hỗ trợ cá nhân hoá macro cho công ty bạn
- Giảng viên từng làm cho Tập đoàn lớn (VPBank, Vingroup...)
📞 Hotline: 0352.433.233
🌐 Web: mcivietnam.com

Các khóa học
- Mastering AWS : From Basics to Applications Specialized
- Data Engineer Track Specialized
- Combo Data Engineering Professional Hot
- AI & DASHBOARD – CHỈ 990K Hot
- Combo Python Level 1 & Level 2 Bestseller
- Business Intelligence Track Hot
- Data Science Track Bestseller
- Data Analyst Professional (Data Analyst with Python Track) Bestseller
- RPA UiPath Nâng Cao: Chiến Thuật Automation Cho Chuyên Gia Specialized
- RPA UiPath cho Người Mới Bắt Đầu: Thành Thạo Automation Chỉ Trong 1 Ngày Specialized
- Business Analyst Fast Track Bestseller
- Business Analyst Bestseller
Đăng ký tư vấn khóa học
*Vui lòng nhập số điện thoại của bạn
*Vui lòng nhập họ tên của bạn
*Vui lòng chọn giới tính
*Vui lòng chọn 1 trường