Bài viết này sẽ hướng dẫn các bạn cách tạo ô lọc dữ liệu giúp chúng ta vừa gõ chữ, vừa có thể hiện kết quả lọc theo thời gian thực.
Chúng ta sẽ có nhiều hơn 1 cách để đạt được kết quả như demo trên:
Với cách sử dụng hàm FILTER, bạn cần phải có phiên bản Excel 365. Với cách sử dụng bảng table kết hợp với code VBA, thì bạn không cần có phiên bản Excel 365.
Xem nhanh
Trong phần này, chúng ta sẽ lần lượt đi làm những việc sau đây: thiết lập Textbox để gõ nội dung cần lọc, thiết lập vùng chứa kết quả dữ liệu lọc, thiết lập hàm FILTER cho việc lọc dữ liệu
Để có thể thiết lập được Textbox trong Excel, chúng ta cần phải mở thẻ Developer lên. Để mở thẻ developer, bạn có thể tham khảo bài viết cách mở thẻ Developer
Sau khi đã mở được thẻ Developer, cách thiết lập Textbox như sau: bấm vào thẻ Developer > trong nhóm lệnh Controls > bấm nút Insert > trong khu vực ActiveX Controls > bấm Textbox (ActiveX Control)
Bước tiếp theo, chúng ta sẽ đi kết nối Texbox này với 1 ô trên bảng tính Excel, giả sử chúng ta sẽ kết nối tới ô F1 thì thao tác sẽ như sau
Chọn Textbox khi Design Mode vẫn đang được chọn, bấm chuột phải và chọn Properties, trong cửa sổ Properties, chọn thuộc tính LinkedCell và gõ vào ô muốn kết nối tới là ô F1. Bấm chuột ra ngoài Textbox, sau đó bỏ kích hoạt Design Mode, kích chọn vào bên trong của Textbox 1 lần nữa và thử nhập dữ liệu để kiểm tra kết nối giữa Textbox và ô cần kết nối (F1). Nếu chưa rõ, bạn có thể theo dõi ảnh động sau đây
Sau khi thiết lập và kết nối xong với Textbox, chúng ta sẽ đi chuẩn bị vùng chứa kết quả lọc và soạn công thức cho vùng này như sau:
Công thức FILTER trong phiên bản Excel 365 như sau:
=FILTER(A9:D1008,ISNUMBER(SEARCH(F1,D9:D1008)),"Not found")
Khi chúng ta thiết lập công thức FILTER như trên, cột được FILTER sẽ là cột D chứa email.
Trong trường hợp bạn muốn lọc và tìm kiếm email bắt đầu bằng chuỗi chúng ta gõ vào Textbox, thì chúng ta cần sửa lại công thức như sau
=FILTER(A9:D1008,LEFT(D9:D1008,LEN(F1))=F1,"Not found")
Như vậy, chúng ta đã có thể lọc dữ liệu ngay lập tức khi gõ vào Textbox. Cách này chỉ áp dụng cho những bạn nào có sử dụng phiên bản Excel 365 của Microsoft. Trong trường hợp bạn không sử dụng Office 365 thì cách sau đây sử dụng VBA kết hợp với chức năng Table trong Excel cũng sẽ giúp bạn đạt được kết quả tương tự.
Với cách sử dụng Table và code VBA để tạo chức năng lọc dữ liệu siêu tốc, bạn sẽ vẫn thiết lập Textbox và kết nối với ô F1 như bình thường. Sau đó, bạn cần định dạng vùng dữ liệu cần lọc dưới dạng bảng bằng cách:
Sau đó, trong thẻ Table Design (Thẻ này chỉ xuất hiện khi bạn đang chọn bảng), mục Table name, chúng ta sẽ đặt tên lại cho bảng là database (tên các bạn có thể tự chọn)
Bước tiếp theo, chúng ta vào lại thẻ Developer rồi bấm vào Design Mode, rồi nháy đúp chuột vào Textbox đã tạo, trong cửa sổ soạn thảo VBA, bạn nhập đúng đoạn code sau đây vào
Private Sub TextBox1_Change()
Application.ScreenUpdating = False
ActiveSheet.ListObjects("database").Range.AutoFilter Field:=4, Criteria1:="*" & ActiveSheet.Range("F1").Value & "*"
Application.ScreenUpdating = True
End Sub
Chữ “database” trong phần ListObjects(“database”) là tên của bảng bạn đặt ở bước trước.
Bạn có thể theo dõi phiên bản video của bài hướng dẫn này ở đây:
Link video: Xem video
Bạn có thể theo dõi thêm những bài viết về cách sử dụng hàm Filter tại trang chủ của Học Excel Online.