Có thể bạn quan tâm: Tại Sao Không Lọc Được Hết Dữ Liệu Trong Excel? Những Nguyên Nhân Và Giải Pháp Thực Tế
1. Tại sao cần một ô tìm kiếm nhanh trong Excel?
Khi làm việc với bảng tính lớn, việc tìm kiếm một giá trị cụ thể trong hàng nghìn dòng có thể trở nên mệt mỏi và tốn thời gian. Một ô tìm kiếm nhanh không chỉ giúp người dùng lấy dữ liệu một cách nhanh chóng mà còn giảm thiểu lỗi do người dùng nhập dữ liệu thủ công. Ngoài ra, ô tìm kiếm còn giúp:
- Tăng tính linh hoạt: Người dùng cuối có thể nhanh chóng tìm kiếm bất kỳ thông tin nào mà không cần phải mở rộng bảng tính hay lọc nhiều lần.
- Cải thiện trải nghiệm người dùng: Đối với các báo cáo, dashboard hoặc phần mềm bán hàng, một ô tìm kiếm hiệu quả mang lại sự chuyên nghiệp và tiện lợi.
- Giảm thiểu sai sót: Bằng cách sử dụng công thức chính xác hoặc macro, ta tránh được lỗi nhập liệu-minded.
Vì vậy, chúng ta sẽ khám phá chi tiết cách tạo ô tìm kiếm siêu tốc trong Excel, từ các công thức cơ bản đến giải pháp nâng cao với VBA và Power Query.
Có thể bạn quan tâm: Tại Sao Không Kéo Được Số Thứ Tự Trong Excel Và Cách Khắc Phục
2. Các phương pháp tìm kiếm cơ bản trong Excel
2.1 VLOOKUP
=VLOOKUP(giá_trị_tìm, bảng_dữ_liệu, số_cột, FALSE)
giá_trị_tìm: Giá trị cần tìm.bảng_dữ_liệu: Phạm vi chứa dữ liệu.số_cột: Số thứ tự cột trong bảng dữ liệu cần lấy giá trị.FALSE: Tìm kiếm chính xác.
2.2 HLOOKUP
Tương tự VLOOKUP nhưng tìm kiếm theo hàng ngang.
2.3 INDEX & MATCH
Kết hợp hai hàm để tìm kiếm linh hoạt hơn:
=INDEX(cột_trả_lại, MATCH(giá_trị_tìm, cột_để_tìm, 0))
INDEXtrả وتن giá trị tại vị trí.MATCHtrả vị trí của giá trị trong cột tìm kiếm.
2.4 XLOOKUP
Hàm mới trong Excel 365, có cú pháp gọn gàng và hỗ trợ tìm kiếm từ phải sang trái:
=XLOOKUP(giá_trị_tìm, cột_tìm, cột_trả_lại, "Không tìm thấy")
2.5 FILTER (Excel 365)
Trả về mảng các giá trị thỏa mãn điều kiện:
=FILTER(cột_trả_lại, cột_tìm = giá_trị_tìm, "Không có dữ liệu")
2.6 SEARCH & FIND
Dùng để tìm kiếm chuỗi trong văn bản:
=SEARCH("abc", A1) // Trả vị trí bắt đầu
Có thể bạn quan tâm: Tại Sao Khi Đánh Số 0 Trong Excel Lại Mất?
3. Tạo ô tìm kiếm cơ bản với công thức INDEX/MATCH
Giả sử ta có bảng dữ liệu sản phẩm như sau:
| A | B | C | D |
|---|---|---|---|
| ID | Tên Sản Phẩm | Giá | Danh Mục |
| 001 | Sữa | 45,000 | Thực phẩm |
| 002 | Trà | 20,000 | Thực phẩm |
| 003 | Máy tính | 12,000,000 | Điện tử |
| … | … | … | … |
Bước 1: Tạo ô nhập ID
Chọn ô F1, nhập tiêu đề “Nhập ID:”.
Chọn ô G1 làm ô nhập dữ liệu và đặt tên định danh ID_TimKiem (Data → Define Name).
Bước 2: T Cooper với công thức INDEX/MATCH
Trong ô F2 (hoặc H1) nhập công thức:
=IFERROR(INDEX($B$2:$B$100, MATCH(ID_TimKiem, $A$2:$A$100, 0)), "Không tìm thấy")
- Công thức sẽ trả về tên sản phẩm dựa trên ID nhập vào.
- Nếu không tìm thấy, hiển thị “Không tìm thấy”.
Tương tự, ta có thể lấy giá:
=IFERROR(INDEX($C$2:$C$100, MATCH(ID_TimKiem, $A$2:$A$100, 0)), "Không tìm thấy")
Bước 3: Tạo ô hiển thị kết quả
- Tên sản phẩm: ô
H2 - Giá: ô
I2
Khi nhập ID vào ô G1, các ô H2 ઉત્તર I2 sẽ tự động cập nhật.
4. Tối ưu công thức tìm kiếm
4.1 Sử dụng mảng động (Dynamic Arrays)
Nếu bạn có Excel 365, hãy dùng XLOOKUP hoặc FILTER để tránh phải kéo công thức:
=XLOOKUP(ID_TimKiem, $A$2:$A$100, $B$2:$B$100, "Không tìm thấy")
Khi dữ liệu lớn hơn, XLOOKUP thường nhanh hơn INDEX/MATCH vì nó tối ưu sắp xếp bộ nhớ.
4.2 Tạo bảng Excel (Table)
Chuyển vùng dữ liệu thành Table (urder+T), đặt tên DanhSachSanPham. Khi dùng Table, các tham chiếu tự động mở rộng khi thêm dữ liệu:
=XLOOKUP(ID_TimKiem, DanhSachSanPhamID, DanhSachSanPhamTên Sản Phẩm, "Không tìm thấy")
4.3 Tránh tính toán lại không cần thiết

Có thể bạn quan tâm: Tại Sao Không Mở Được 2 File Excel Cùng Lúc?
- Chuyển chế độ tính toán sang Manual khi làm việc với bảng lớn:
Formulas > Calculation Options > Manual. - Khi cần cập nhật, dùng
Ctrl + Alt + F9để tính lại toàn bộ.
4.4 Sử dụng Named Ranges
Đặt tên cho các cột cần tìm kiếm (ví dụ ID, TenSP, Gia) giúp công thức ngắn gọn và dễ đọc.
5. Tạo ô tìm kiếm nâng cao với Data Validation và danh sách động
5.1 Tạo một danh sách danh mục động
Giả sử bạn muốn người dùng chọn danh mục để lọc sản phẩm:
- Tạo danh sách danh mục duy nhất trong cột
్ఞ:
=UNIQUE($D$2:$D$100)
Giả sử kết quả nằm trong J2:J10.
Tạo ô nhập danh mục: ô
L1với tiêu đề “Chọn Danh Mục:”.Đặt Data Validation:
Chọn ô
M1.- Data → Validation → List → Source:
=J$2:INDEX(J:J, COUNTA(J:J)).
Bây giờ, khi người dùng chọn danh mục, ta có thể lọc dữ liệu.
5.2 Lọc dữ liệu dựa trên danh mục và ID
Sử dụng công thức FILTER:
=FILTER($A$2:$C$100, ($D$2:$D$100 = M1) ($A$2:$A$100 = ID_TimKiem), "Không tìm thấy")
Kết quả sẽ trả về dòng dữ liệu thỏa mãn cả hai điều kiện.
6. Sử dụng VBA để tạo ô tìm kiếm nhanh
VBA cho phép chúng ta tạo giao diện người dùng (UserForm) hoặc macro tự động. Dưới đây là ví dụ đơn giản tạo một macro tìm kiếm theo ID và hiển thị thông tin trong MessageBox.
Sub TimKiemSanPham() Dim ws As Worksheet Dim IDTimKiem As String Dim rng As Range Dim cell As Range Set ws = ThisWorkbook.Sheets("Sheet1") IDTimKiem = InputBox("Nhập ID sản phẩm cần tìm:", "Tìm kiếm") If IDTimKiem = "" Then Exit Sub Set rng = ws.Range("A2:A100") For Each cell In rng If cell.Value = IDTimKiem Then MsgBox "Tên sản phẩm: " & cell.Offset(0, 1).Value & vbCrLf & _ "Giá: " & cell.Offset(0, 2).Value, vbInformation, "Kết quả tìm kiếm" Exit Sub End If Next cell MsgBox "Không tìm thấy ID: " & IDTimKiem, vbExclamation, "Không tìm thấy"
End Sub
6.1 Tạo UserForm
- Vào Developer → Visual Basic → Insert → UserForm.
- Thêm một
TextBox(đặt têntxtID), mộtCommandButton(đặt têncmdSearch). - Dán đoạn mã sau vào code của UserForm:
Private Sub cmdSearch_Click() Dim ws As Worksheet Dim IDTimKiem As String Dim rng As Range Dim cell As Range Set ws = ThisWorkbook.Sheets("Sheet1") IDTimKiem = Me.txtID.Text If IDTimKiem = "" Then MsgBox "Vui lòng nhập ID.", vbExclamation Exit Sub End If Set rng = ws.Range("A2:A100") For Each cell In rng If cell.Value = IDTimKiem Then MsgBox "Tên sản phẩm: " & cell.Offset(0, 1).Value & vbCrLf & _ "Giá: " & cell.Offset(0, 2).Value, vbInformation, "Kết quả tìm kiếm" Exit Sub End If Next cell MsgBox "Không tìm thấy ID: " & IDTimKiem, vbExclamation, "Không tìm thấy"
End Sub
- Thêm nút vào Sheet để mở UserForm:
Sub/as ShowSearchForm() UserForm1.Show
End Sub
Bây giờ, khi nhấn nút, UserForm sẽ hiển thị và cho phép nhập ID nhanh.
7. Tối ưu hiệu suất khi làm việc với dữ liệu lớn
7.1 Sử dụng Power Query
Power Query (Get & Transform) cho phép bạn lấy dữ liệu từ nguồn (Excel, CSV, SQL, Web), thực hiện lọc, biến đổi và tải dữ liệu vào một bảng trong Excel. Khi dữ liệu lớn, Power Query xử lý ở mức backend, giảm tải tính toán trong bảng tính.
- Bước 1: Data → Get Data → From Workbook → Chọn bảng.
- Bước 2: Trong Power Query Editor, thêm cột tính năng tìm kiếm (ví dụ:
Add Column → Custom Column). - Bước 3: Truy xuất kết quả vào bảng hoặc PivotTable.
7.2 Đặt vùng dữ liệu là Table
Quyết định sử dụng Table giúp Excel tự động mở rộng phạm vi khi thêm dòng mới, tránh lỗi khi công thức chỉ trỏ tới phạm vi cũ.
7.3chte tính toán tạm thời
Khi thao tác nhiều dòng dữ liệu, tạm thời tắt tính toán tự động:
Application.Calculation = xlCalculationManual
Sau khi hoàn thành, bật lại:
Application.Calculation = xlCalculationAutomatic
Application.Calculate
7.4 Sử dụng các hàm xác thực dữ liệu
Nếu bạn chỉ cần tìm kiếm một giá trị duy nhất, sử dụng hàm LOOKUP thay vì VLOOKUP với tham số TRUE (tìm kiếm gần nhất). Tuy nhiên, cần đảm bảo dữ liệu được sắp xếp tăng dần.
8. Những mẹo và lưu ý khi thiết kế ô tìm kiếm
| Lưu ý | Mô tả |
|---|---|
| Tránh lỗi #N/A | Dùng IFERROR để hiển thị thông báo thay vì lỗi. |
| Tránh lỗi #REF! | Kiểm tra phạm vi tham chiếu khi di chuyển dữ liệu. |
| Bảo trì casar | Khi thêm/đổi cột, cập nhật công thức hoặc tên bảng. |
| Bảo mật | Đặt sheet bảo vệ, hoặc chỉ cho phép người dùng nhập vào ô tìm kiếm. |
| Định dạng dữ liệu | Đặt kiểu dữ liệu phù hợp (Number, Text) để tránh lỗi so sánh. |
| Tối ưu tốc độ | Đặt Cell chứa công thức tìm kiếm ở vị trí gần dữ liệu để giảm độ trễ. |
| Thêm tính năng tìm kiếm nhiều | Sử dụng FILTER để trả về nhiều dòng thỏa mãn. |
| Sử dụng Conditional Formatting | Nổi bật පො results để người dùng dễ nhận biết. |
9. Kết luận
Tạo một ô tìm kiếm dữ liệu siêu tốc trong Excel không chỉ đơn giản là nhập công thức VLOOKUP hay INDEX/MATCH. Đó là quá trình xây dựng một hệ thống linh hoạt, tối ưu hiệu suất và thân thiện với người dùng. Bằng cách kết hợp các công thức mới như XLOOKUP và FILTER, sử dụng bảng Excel để tự động mở rộng phạm vi, áp dụng Data Validation để giới hạn lựa chọn, và mở rộng bằng VBA hoặc Power Query, bạn có thể xây dựng một giải pháp mạnh mẽ, đáp ứng nhu cầu tìm kiếm trong mọi tình huống. Bắt đầu với những bước cơ bản, dần dần tích hợp các tính năng nâng cao, và luôn nhớ tối ưu hiệu suất khi làm việc với dữ liệu lớn – để Excel trở thành công cụ hỗ trợ tìm kiếm nhanh nhất trong doanh nghiệp hoặc công việc cá nhân của bạn.

Tiến sĩ Lê Thống Nhất sinh năm 1955 tại Nghệ An, là nhà giáo, nhà báo và doanh nhân trong lĩnh vực giáo dục. Ông từng giảng dạy Toán học tại Trường THPT Chuyên Phan Bội Châu và đảm nhiệm nhiều vai trò trong ngành giáo dục, từ viết sách, biên soạn tài liệu đến sáng lập các dự án hỗ trợ học tập trực tuyến.
Ông là người sáng lập BigSchool – nền tảng giáo dục trực tuyến kết nối giáo viên và học sinh cả nước. Ngoài ra, ông còn nổi tiếng với vai trò tác giả, diễn giả truyền cảm hứng và khách mời trên nhiều chương trình truyền hình, trong đó có “Ai là triệu phú” trên truyền hình VTV.
Trong suốt sự nghiệp, Tiến sĩ Lê Thống Nhất đã nhận nhiều giải thưởng giáo dục và được biết đến như một người luôn đổi mới, ứng dụng công nghệ vào dạy và học, góp phần lan tỏa tri thức và niềm say mê học tập cho thế hệ trẻ.
