Cách tạo ô lọc dữ liệu vừa gõ chữ vừa hiện kết quả lọc

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.

Demo ô lọc dữ liệu vừa gõ vừa lọc
Ô lọc dữ liệu 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.

Cách tạo chức năng lọc dữ liệu sử dụng hàm FILTER trong Excel 365

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ách thiết lập Textbox

Để 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)

Tạo textbox activex control
Tạo 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

Kết nối Textbox và vùng trên bảng tính
Kết nối Textbox và vùng trên bảng tính

Cách thiết lập vùng chứa kết quả lọc

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ách sử dụng hàm Filter để lọc dữ liệu
Cách sử dụng hàm Filter để lọc dữ liệu

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ự.

Cách tạo chức năng lọc dữ liệu sử dụng Table và lập trình VBA

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:

  • Chọn toàn bộ vùng dữ liệu đó (A8:D1008 trong trường hợp này)
  • Bấm phím tắt CTRL + T để tạo bảng dữ liệu, nhớ chọn ở mục My table has headers rồi bấm OK

    Cách tạo bảng dữ liệu trong Excel
    Cách tạo bảng dữ liệu trong Excel

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. 


Tác giả: dtnguyen (Nguyễn Đức Thanh)

@ Học Excel Online | DTNguyen.business
· · ·

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