Chào mọi người trong diễn đàn,
Dạo này mình đang làm việc với một file Excel khá lớn, có nhiều bảng dữ liệu và yêu cầu lọc ra những bản ghi thỏa mãn đồng thời nhiều điều kiện khác nhau, đôi khi còn khá phức tạp. Việc lọc thủ công bằng Filter hoặc Advanced Filter đôi khi tốn thời gian và dễ sai sót, đặc biệt là khi các tiêu chí thay đổi liên tục.
Mình đã thử tìm hiểu và viết một số đoạn code VBA để tự động hóa quá trình này. Hôm nay, mình muốn chia sẻ một phương pháp khá hiệu quả mà mình đã áp dụng để trích xuất dữ liệu dựa trên nhiều tiêu chí, có thể bao gồm cả các phép so sánh như lớn hơn, nhỏ hơn, hoặc chứa ký tự đặc biệt.
Về cơ bản, mình sử dụng vòng lặp để duyệt qua từng dòng dữ liệu và kiểm tra xem dòng đó có thỏa mãn tất cả các điều kiện đặt ra hay không. Nếu thỏa mãn, mình sẽ sao chép dòng đó sang một Sheet khác hoặc vào một mảng tạm để xử lý tiếp.
Ví dụ về một đoạn code kiểm tra điều kiện đơn giản:
If Range("A" & i).Value > 100 And InStr(Range("B" & i).Value, "ABC") > 0 Then
' Xử lý dòng thỏa mãn điều kiện
End IfViệc này giúp mình tiết kiệm rất nhiều thời gian và đảm bảo tính chính xác. Mình cũng đang nghiên cứu cách để làm cho code chạy nhanh hơn với các file có dung lượng lớn hơn nữa.
Có anh em nào có kinh nghiệm hoặc các kỹ thuật VBA khác để xử lý lọc dữ liệu đa tiêu chí hiệu quả hơn không? Rất mong được mọi người chia sẻ thêm để cùng học hỏi.