Sử dụng AutoFilter hiệu quả hơn với VBA

Nếu như bạn thường xuyên phải làm  các báo cáo chi tiết hay làm việc trên dữ liệu lớn đòi hỏi phải thống kê nhanh các chỉ tiêu nào đó thì chắc hẳn không còn xa lạ gì với công cụ AutoFilter của Excel. Sẽ như thế nào nếu chúng ta kết hợp công cụ này với VBA. Học Excel Online xin mời bạn tham khảo bài viết.

Sử dụng AutoFilter hiệu quả hơn với VBA

Khi sử dụng AutoFilter chúng ta có thể có được một cái nhìn chi tiết hơn về dữ liệu tương ứng với tiêu chí mà ta trích lọc. Để áp dụng AutoFilter thì tại nhóm Sort & Filter trong thẻ Data bạn chọn Filter hay nếu như bạn quen dùng phím tắt thì bạn có thể ấn Ctrl + Shift + L

Khi AutoFilter thủ công

Ở đây mình có bảng tổng hợp doanh thu bán hàng theo các khu vực.

khi bạn muốn lọc để xem thông tin về số lượng, doanh thu, chiết khấu của từng khu vực thì bạn phải mở bộ lọc lên, chọn từng khu vực, sau đó ấn OK để lọc.

Khi muốn xem thông tin của các khu vực lại thì bạn lại làm lại thao tác trên, khá là thủ công phải không nào. Thế khi kết hợp với VBA thì nó sẽ tự động hơn như thế nào?

Khi kết hợp với VBA

Mục đích sử dụng VBA ở đây là giúp cho việc sử dụng AutoFilter được hiệu quả hơn, có tính tự động cao hơn hay vì phải lọc thủ công như trên. Có thể bạn sẽ mong muốn là khi chọn 1 khu vực nào đó thì dữ liệu của khu vực đó sẽ  được lấy lên ngay lập tức mà không cần phải qua các bước trên.

Bạn có thể tạo ra 1 danh sách chọn (ở đây là ô E3) gồm các khu vực bằng cách loại bỏ khu vực trùng trong cột khu vực bằng các công cụ hay hàm hỗ trợ trong Excel, nếu như bạn cài bản Office 365 thì hàm UNIQUE  sẽ giúp bạn thực hiện điều này một cách nhanh chóng, bạn có thể tham khảo các sử dụng hàm này tại đây

Khi bạn thay đổi ô E3 trong Sheet1 thì đoạn Code trên sẽ được thực thi, nó sẽ tự động lọc ra dữ liệu tương ứng với điều kiện trích lọc ở trong ô E3, khi bạn thay đổi khu vực thì dữ liệu của bạn sẽ được trích lọc tương ứng với khu vực đó, nếu như ô E3 của bạn là rỗng (không chọn khu vực nào) thì VBA sẽ thực hiện bỏ lọc, trả về dữ liệu ban đầu.

Đoạn Code trên được viết trong Sheet1 với sự kiện Worksheet_Change, đây là cách viết trực tiếp hoặc bạn có thể viết gián tiếp bằng cách tạo ra một Module để thực hiện việc trích lọc đó rồi tại sự kiện Worksheet_Change và gọi Sub đó thì 2 cách này bạn có thể lựa chọn để áp dụng.

Qua bài viết này của Học Excel Online hy vọng bạn đã có thể tự tạo cho mình được một bộ lọc mang tính tự động quá cao hơn. Để có thể ngày càng nâng cao kiến thức về Excel và VBA góp phần tăng hiệu suất trong công việc bạn có thể tham khảo các bài viết, khoá học tại đây.


 

 


Tác giả: daovanluan

· · ·

Khóa học mới xuất bản