Khi tìm hiểu về bộ lọc nâng cao trong VBA, chúng ta sẽ thấy nó phức tạp hơn và ít gặp hơn so với chức năng lọc tự động (AutoFilter).
Thế nhưng bộ lọc nâng cao sẽ giúp chúng ta có thể lọc theo các tiêu chí phức tạp hơn cách lọc tự động, với nhiều tiêu chí lọc trên nhiều cột cùng một lúc. Bộ lọc nâng cao cho phép sao chép dữ liệu lọc được sang vị trí khác, giúp chúng ta rút ngắn được các bước cần thực hiện trong câu lệnh VBA.
Xem nhanh
TenSheet.Range(VungCanLoc).AdvancedFilter CachThucLoc, VungDieuKienLoc, ViTriTraKQ, GiaTriKhongTrung
TenSheet = Tên sheet chứa dữ liệu cần lọc (dữ liệu gốc = VungCanLoc)
VungCanLoc = Vùng cần lọc dữ liệu (có bao gồm tiêu đề các cột)
CachThucLoc (action) = Cách thức lọc dữ liệu: copy ra vị trí khác (số 2) hay lọc tại chính bảng dữ liệu (số 1)
VungDieuKienLoc (criteriaRange) = Vùng chứa điều kiện lọc. Vùng này phải bao gồm Tên tiêu đề của cột và Điều kiện lọc ở từng cột tương ứng
ViTriTraKQ (copyToRange) = Vị trí trả về kết quả dữ liệu sau khi lọc
GiaTriKhongTrung (unique) = Trả về kết quả là các giá trị không trùng, chỉ xuất hiện 1 lần hay không
Sau đây chúng ta cùng tìm hiểu ví dụ về việc đưa nhiều tiêu chí vào bộ lọc nâng cao và trả lại kết quả lọc vào một trang tính riêng.
Cho bảng dữ liệu gốn các chỉ tiêu: Họ Tên / Ngày bán / Số lượng / Tên sản phẩm theo hình sau:
Sử dụng AdvancedFilter VBA để lọc các nội dung theo điều kiện sau
Chúng ta xây dựng vùng điều kiện và vị trí kết quả cần lấy tại Sheet Vidu2 như sau:
(nút lệnh RUN dùng để Assign Macro lọc dữ liệu bằng Advance Filter)
Lưu ý khi lập vùng điều kiện:
Ngày bán ở đây có 2 mốc ngày: Từ ngày và đến ngày, do đó phải tách ra thành 2 điều kiện tại ô B2 và ô C2
Trong cửa sổ VBA chúng ta viết lệnh như sau:
Kết quả sau khi chạy lệnh này như sau:
Như vậy chúng ta có thể thấy chỉ với 1 dòng lệnh lọc nâng cao đã có thể trích xuất được dữ liệu theo nhiều điều kiện phức tạp đúng như yêu cầu.
Cách này rất hữu ích cho chúng ta trong việc xây dựng các báo cáo chi tiết theo nhiều đối tượng, nhiều yêu cầu chi tiết, lập các báo cáo chi tiết tự động một cách dễ dàng.
Link tải về file mẫu tại đây: http://bit.ly/2qYKmLZ
Để hiểu rõ hơn về cách sử dụng VBA trong Excel bạn nên tham gia khóa học “Tự động hóa Excel với lập trình VBA” của Học Excel Online. Khóa học sẽ giúp bạn nắm được cách sử dụng ngôn ngữ VBA, cách viết lệnh lập trình trong VBA để tự động hóa chương trình Excel, cách viết các hàm tự tạo theo ý muốn của bạn. Ngoài ra còn nhiều nội dung hấp dẫn hơn nữa. Xem chi tiết tại: