Cách Tìm Kiếm Ô Có Giá Trị Cụ Thể Trong Excel: Hướng Dẫn Toàn Diện Từ Cơ Bản Đến Nâng Cao

Mở Đầu

Trong quá trình làm việc với Microsoft Excel, việc tìm kiếm một ô chứa giá trị nhất định là một trong những thao tác cơ bản nhưng lại vô cùng quan trọng. Dù bạn là người mới bắt đầu hay đã là một chuyên gia Excel, việc nắm vững các phương pháp tìm kiếm sẽ giúp tăng hiệu suất làm việc, giảm thiểu sai sót và tiết kiệm thời gian đáng kể. Bài viết này sẽ cung cấp cho bạn một hướng dẫn chi tiết, đầy đủ và thực tiễn, từ cách sử dụng các công cụ tích hợp sẵn trong Excel cho tới việc viết công thức và macro VBA để thực hiện các nhiệm vụ tìm kiếm phức tạp hơn.

1. Hiểu Rõ Nhu Cầu Tìm Kiếm

Trước khi đi vào các công cụ và kỹ thuật, bạn cần xác định rõ mục tiêu tìm kiếm của mình:

Yếu TốMô Tả
Kiểu dữ liệuSố, văn bản, ngày tháng, công thức hay lỗi?
Phạm vi tìm kiếmToàn bộ sheet, một vùng cụ thể, hay nhiều sheet cùng lúc?
Kết quả mong muốnĐịa chỉ ô (A1), giá trị ô, hay vị trí thứ N trong danh sách?
Tiêu chí tìm kiếmGiá trị chính xác, phần tử chứa chuỗi, lớn hơn/nhỏ hơn, hoặc theo mẫu (wildcard)?
Xử lý khi không tìm thấyHiển thị thông báo, trả về giá trị mặc định, hoặc thực hiện hành động khác?

Việc trả lời những câu hỏi trên sẽ giúp bạn lựa chọn công cụ và phương pháp phù hợp nhất.

2. Sử Dụng Tính Năng “Find & Replace” (Ctrl + F)

2.1. Cách Sử Dụng Cơ Bản

  1. Mở hộp thoại Find: Nhấn Ctrl + F hoặc vào Home → Find & Select → Find....
  2. Nhập giá trị cần tìm: Gõ giá trị vào ô “Find what”.
  3. Lựa chọn phạm vi: Trong “Within”, chọn Sheet (tìm trong sheet hiện tại) hoặc Workbook (tìm trong toàn bộ workbook).
  4. Thiết lập tùy chọn: Nhấn nút “Options” để mở rộng các tùy chọn:
  5. Look in: Formulas, Values, hoặc Comments.
  6. Match case: Phân biệt chữ hoa/chữ thường.
  7. Match entire cell contents: Tìm khớp toàn bộ nội dung ô.
  8. Search: By Rows hay By Columns.
  9. Thực hiện tìm kiếm: Nhấn “Find All” để liệt kê tất cả các ô thỏa mãn, hoặc “Find Next” để di chuyển tới ô tiếp theo.

2.2. Tìm Kiếm Với Wildcard

Excel hỗ trợ các ký tự đại diện (wildcard) trong tìm kiếm:

Ký tựÝ nghĩa
Thay thế bất kỳ chuỗi ký tự nào (có thể không có ký tự).
?Thay thế một ký tự duy nhất.
~Đánh dấu ký tự đặc biệt (như , ?, ~) để tìm kiếm chúng thực sự.

Ví dụ: Để tìm tất cả các ô chứa “Sales” ở bất kỳ vị trí nào, nhập Sales. Để tìm các ô có một ký tự bất kỳ sau “Q”, nhập Q?.

2.3. Giới Hạn và Khi Nào Nên Tránh Dùng

  • Không thể trả về vị trí ô dưới dạng công thức: Find chỉ giúp bạn di chuyển trên giao diện, không cung cấp giá trị trong ô công thức.
  • Không hỗ trợ tìm kiếm nâng cao: Ví dụ, tìm ô có giá trị lớn hơn 1000 và chứa chuỗi “2026” không thể thực hiện trực tiếp bằng Find.
  • Không hoạt động trên các ô ẩn (filtered) nếu không chọn “Search within visible cells only”.

3. Sử Dụng Hàm Tìm Kiếm Cơ Bản

3.1. Hàm VLOOKUP (Vertical Lookup)

=VLOOKUP(lookup_value, table_array, col_index_num, range_lookup)
  • lookup_value: Giá trị cần tìm (có thể là ô hoặc hằng số).
  • table_array: Vùng dữ liệu chứa cột chứa giá trị tìm và cột trả về.
  • col_index_num: Số thứ tự cột trong table_array mà bạn muốn trả về.
  • range_lookup: FALSE cho tìm chính xác, TRUE cho tìm gần đúng (cần dữ liệu sắp xếp).

Ví dụ: Tìm giá trị “A123” trong cột A và trả về giá trị tương ứng ở cột C:

=VLOOKUP("A123", $A$2:$C$500, 3, FALSE)

3.2. Hàm HLOOKUP (Horizontal Lookup)

Tương tự VLOOKUP, nhưng tìm theo hàng.

=HLOOKUP(lookup_value, table_array, row_index_num, range_lookup)

3.3. Hàm INDEX + MATCH

Kết hợp INDEX và MATCH cho phép tìm kiếm linh hoạt hơn, không bị giới hạn vị trí cột tìm kiếm như VLOOKUP.

=INDEX(return_range, MATCH(lookup_value, lookup_range, 0))
  • MATCH trả về vị trí (số hàng) của lookup_value trong lookup_range.
  • INDEX sử dụng vị trí này để trả về giá trị trong return_range.

Ví dụ: Tìm “John” trong cột B và trả về giá trị ở cột D:

=INDEX($D$2:$D$500, MATCH("John", $B$2:$B$500, 0))

3.4. Hàm XLOOKUP (Excel 365/2026 trở lên)

XLOOKUP là hàm hiện đại thay thế VLOOKUP và HLOOKUP, hỗ trợ tìm kiếm cả theo cột và hàng, trả về mặc định khi không tìm thấy, và cho phép tìm kiếm ngược.

=XLOOKUP(lookup_value, lookup_array, return_array, if_not_found, match_mode, search_mode)
  • match_mode: 0 (chính xác), -1 (chính xác hoặc nhỏ hơn), 1 (chính xác hoặc lớn hơn), 2 (wildcard).
  • search_mode: 1 (tìm từ đầu tới cuối), -1 (tìm ngược lại).

Ví dụ: Tìm “ProductX” trong cột A, trả về giá trị tương ứng ở cột F, nếu không tìm thấy trả về “Không có”:

=XLOOKUP("ProductX", $A$2:$A$1000, $F$2:$F$1000, "Không có")

4. Tìm Kiếm Nhiều Điều Kiện Với Hàm FILTER

Excel 365 cung cấp hàm FILTER cho phép lọc dữ liệu dựa trên một hoặc nhiều điều kiện, trả về mảng các ô thỏa mãn.

=FILTER(array, include, if_empty)
  • array: Dải dữ liệu cần lọc.
  • include: Mảng logic (TRUE/FALSE) chỉ ra các hàng cần giữ lại.
  • if_empty: Giá trị trả về nếu không có dữ liệu thỏa mãn.

Ví dụ: Lọc danh sách đơn hàng có khách hàng “ABC Corp” và giá trị > 5000:

=FILTER($A$2:$D$2000, ($B$2:$B$2000="ABC Corp")($C$2:$C$2000>5000), "Không có dữ liệu")

Kết quả sẽ là một mảng gồm các hàng thỏa mãn, và bạn có thể dùng INDEX để trích xuất vị trí ô đầu tiên nếu cần.

5. Tìm Kiếm Với Hàm Mảng (Array Formulas)

Đối với các phiên bản Excel chưa hỗ trợ XLOOKUP hoặc FILTER, bạn có thể sử dụng công thức mảng truyền thống (Ctrl + Shift + Enter) để trả về vị trí ô.

5.1. Hàm SMALL + IF

Excel Find Cell With Value
Excel Find Cell With Value
=SMALL(IF($A$2:$A$1000="Target", ROW($A$2:$A$1000)), n)
  • IF tạo mảng các số hàng nếu điều kiện đúng, ngược lại trả về FALSE.
  • SMALL lấy số hàng thứ n trong mảng (n=1 là ô đầu tiên, n=2 là ô tiếp theo…).

Công thức mảng: Nhấn Ctrl + Shift + Enter để kích hoạt.

5.2. Hàm AGGREGATE

AGGREGATE có thể bỏ qua lỗi và thực hiện các phép tính tương tự SMALL.

=AGGREGATE(15, 6, ROW($A$2:$A$1000)/($A$2:$A$1000="Target"), n)
  • 15: Mã hàm cho SMALL.
  • 6: Bỏ qua lỗi.
  • n là vị trí thứ N cần tìm.

6. Sử Dụng Công Cụ “Conditional Formatting” Để Đánh Dấu Ô

Nếu mục tiêu của bạn là nhanh chóng “nhìn thấy” các ô chứa giá trị cụ thể mà không cần di chuyển con trỏ, Conditional Formatting (Định dạng có điều kiện) là giải pháp tốt.

6.1. Các Bước Thực Hiện

  1. Chọn vùng dữ liệu (hoặc toàn bộ sheet bằng Ctrl + A).
  2. Vào Home → Conditional Formatting → New Rule.
  3. Chọn “Use a formula to determine which cells to format”.
  4. Nhập công thức, ví dụ: =$A1="Target" (đối với cột A) hoặc =SEARCH("Target", A1)>0 để tìm chuỗi con.
  5. Nhấn “Format…”, chọn màu nền hoặc font màu.
  6. Xác nhận “OK”.

6.2. Lưu Ý Khi Dùng

  • Đảm bảo công thức tham chiếu đúng ô đầu tiên của vùng đã chọn.
  • Nếu muốn áp dụng cho toàn bộ sheet, hãy dùng =$A$1="Target" và áp dụng cho $1:$1048576 (tất cả hàng).

7. Tạo Macro VBA Để Tự Động Hóa Việc Tìm Kiếm

Khi công việc lặp lại nhiều lần hoặc cần thực hiện tìm kiếm phức tạp (nhiều sheet, nhiều điều kiện, ghi log), VBA là công cụ mạnh mẽ.

7.1. Macro Cơ Bản: Tìm Ô Có Giá Trị Xác Định và Đánh Dấu

Sub FindAndHighlight() Dim ws As Worksheet Dim rng As Range, cell As Range Dim searchValue As Variant '--- Thiết lập giá trị cần tìm (có thể lấy từ ô B1) searchValue = InputBox("Nhập giá trị cần tìm:", "Tìm Kiếm") If searchValue = "" Then Exit Sub '--- Lặp qua tất cả các sheet trong workbook For Each ws In ThisWorkbook.Worksheets Set rng = ws.UsedRange ' Hoặc ws.Cells nếu muốn toàn bộ For Each cell In rng If cell.Value = searchValue Then cell.Interior.Color = vbYellow ' Đánh dấu màu vàng End If Next cell Next ws MsgBox "Hoàn tất! Các ô chứa '" & searchValue & "' đã được đánh dấu.", vbInformation
End Sub

Giải thích:

  • InputBox cho phép người dùng nhập giá trị cần tìm.
  • UsedRange giới hạn tìm kiếm trong phạm vi đã sử dụng, giảm thời gian thực thi.
  • cell.Interior.Color = vbYellow thay đổi màu nền thành vàng.

7.2. Macro Nâng Cao: Ghi Danh Sách Địa Chỉ Ô Vào Sheet “Kết Quả”

Sub FindAllOccurrences() Dim ws As Worksheet, wsResult As Worksheet Dim rng As Range, cell As Range Dim searchValue As Variant Dim resultRow As Long searchValue = InputBox("Nhập giá trị cần tìm:", "Tìm Kiếm") If searchValue = "" Then Exit Sub '--- Tạo hoặc làm sạch sheet kết quả On Error Resume Next Set wsResult = ThisWorkbook.Worksheets("Kết Quả") If wsResult Is Nothing Then Set wsResult = ThisWorkbook.Worksheets.Add wsResult.Name = "Kết Quả" Else wsResult.Cells.Clear End If On Error GoTo 0 wsResult.Range("A1:D1").Value = Array("Sheet", "Địa chỉ Ô", "Giá Trị", "Ngày Tìm") resultRow = 2 For Each ws In ThisWorkbook.Worksheets If ws.Name <> wsResult.Name Then Set rng = ws.UsedRange For Each cell In rng If cell.Value = searchValue Then wsResult.Cells(resultRow, 1).Value = ws.Name wsResult.Cells(resultRow, 2).Value = cell.Address(False, False) wsResult.Cells(resultRow, 3).Value = cell.Value wsResult.Cells(resultRow, 4).Value = Now resultRow = resultRow + 1 End If Next cell End If Next ws wsResult.Columns.AutoFit MsgBox "Hoàn tất! Đã ghi " & resultRow - 2 & " kết quả vào sheet 'Kết Quả'.", vbInformation
End Sub

Điểm nổi bật:

  • Tạo/đặt lại sheet “Kết Quả” để lưu danh sách.
  • Ghi lại tên sheet, địa chỉ ô, giá trị và thời gian tìm.
  • Tự động điều chỉnh độ rộng cột.

7.3. Khi Nào Nên Dùng VBA

Trường hợpLý do
Tìm kiếm trên nhiều sheetFind & Replace chỉ làm việc trên một sheet hoặc workbook mà không tự động ghi lại kết quả.
Cần lưu log hoặc xuất báo cáoVBA có thể ghi danh sách kết quả vào file, email, hoặc database.
Thực hiện các hành động phức tạpĐánh dấu, xóa, sao chép, hoặc thay đổi định dạng dựa trên nhiều tiêu chí.
Tự động hoá quy trình định kỳGán macro vào nút hoặc chạy theo lịch (Task Scheduler).

8. So Sánh Các Phương Pháp Và Khi Nào Áp Dụng

Phương phápƯu điểmNhược điểmKhi nào nên dùng
Find & ReplaceNhanh, giao diện trực quan, không cần công thứcKhông trả về địa chỉ ô trong công thức, không hỗ trợ nhiều điều kiệnTìm nhanh một giá trị trong sheet hoặc workbook
VLOOKUP / HLOOKUPDễ hiểu, phù hợp với dữ liệu dạng bảngGiới hạn cột tìm (cột đầu), không trả về địa chỉ ôLấy giá trị tương ứng khi cột tìm luôn ở bên trái (VLOOKUP)
INDEX + MATCHLinh hoạt, không giới hạn vị trí cột, tốc độ tốtCần viết công thức phức tạp hơnKhi cần tìm trong bất kỳ cột nào và/hoặc trả về giá trị từ cột bên trái
XLOOKUPĐơn giản, hỗ trợ tìm ngược, mặc định trả về khi không tìm thấyChỉ có trong Excel 365/2026 trở lênDùng cho mọi trường hợp tìm kiếm hiện đại
FILTERTrả về mảng các dòng thỏa mãn, hỗ trợ nhiều điều kiệnYêu cầu Excel 365, không trả về địa chỉ ôKhi muốn lọc danh sách và hiển thị kết quả ngay trong sheet
Conditional FormattingTô sáng các ô ngay trên giao diệnKhông trả về giá trị, chỉ hiển thịKhi muốn “nhìn thấy” nhanh các ô chứa giá trị
VBA MacroTự động hoá, xử lý nhiều sheet, ghi log, thực hiện hành động phức tạpCần kiến thức lập trình, bảo mật macroKhi công việc lặp lại, yêu cầu báo cáo, hay cần thao tác trên nhiều sheet

9. Một Số Mẹo Thực Tiễn Khi Tìm Kiếm

  1. Sử Dụng Định Dạng Số Nhất Quán: Nếu dữ liệu là ngày tháng hoặc số có định dạng khác nhau, Excel có thể không nhận dạng đúng. Hãy chuẩn hoá định dạng trước khi tìm kiếm.
  2. Loại Bỏ Dấu Cách Thừa: Dấu cách ở đầu/cuối chuỗi có thể làm VLOOKUP hoặc XLOOKUP trả về lỗi. Dùng TRIM để loại bỏ.
  3. Kiểm Tra Dữ Liệu Trống: "" (chuỗi rỗng) và NULL (ô trống) khác nhau. Khi dùng công thức, nên dùng IFERROR hoặc IF(ISBLANK(...), ...).
  4. Sử Dụng Ctrl + Shift + L Để Lọc Dữ Liệu: Khi dữ liệu lớn, bật filter rồi nhập giá trị cần tìm vào ô filter sẽ nhanh hơn.
  5. Tối Ưu Hóa UsedRange: Các sheet có nhiều ô không dùng có thể làm tìm kiếm chậm. Xóa các hàng/ cột trống và lưu lại workbook để giảm UsedRange.

10. Xử Lý Khi Không Tìm Thấy Giá Trị

  • Kiểm tra lỗi chính tả và ký tự ẩn: Đôi khi có ký tự không hiển thị (như ký tự Unicode 160 – non‑breaking space). Dùng CLEAN và TRIM để làm sạch.
  • Kiểm tra kiểu dữ liệu: Số được lưu dưới dạng văn bản sẽ không khớp với số thực. Dùng VALUE để chuyển đổi.
  • Kiểm tra phạm vi tìm kiếm: Đảm bảo không vô tình giới hạn phạm vi quá hẹp (ví dụ chỉ A1:A100 trong khi dữ liệu nằm ở A200).

11. Thực Hành: Bài Tập Tìm Kiếm Thực Tế

Bài 1: Tìm Tất Cả Các Đơn Hàng Có Giá Trị > 10.000

  1. Mở sheet “Orders”.
  2. Chọn Home → Conditional Formatting → New Rule.
  3. Nhập công thức: =$C2>10000 (giả sử cột C là giá trị đơn hàng).
  4. Đặt màu nền xanh nhạt và nhấn OK. Các ô thỏa điều kiện sẽ được tô màu.

Bài 2: Lấy Giá Trị Đơn Giá Từ Mã Sản Phẩm

Giả sử cột A là “Mã SP”, cột B là “Tên SP”, cột C là “Đơn Giá”. Bạn muốn lấy đơn giá cho mã “P123”.

=XLOOKUP("P123", $A$2:$A$500, $C$2:$C$500, "Không tồn tại")

Bài 3: Ghi Danh Sách Các Khách Hàng “VIP” Vào Sheet “VIP”

Sub ExportVIPCustomers() Dim wsSrc As Worksheet, wsDest As Worksheet Dim rng As Range, cell As Range Dim destRow As Long Set wsSrc = ThisWorkbook.Worksheets("Customers") Set wsDest = ThisWorkbook.Worksheets("VIP") wsDest.Cells.Clear wsDest.Range("A1:C1").Value = Array("Mã KH", "Tên KH", "Loại KH") destRow = 2 Set rng = wsSrc.Range("A2:A" & wsSrc.Cells(wsSrc.Rows.Count, "A").End(xlUp).Row) For Each cell In rng If LCase(cell.Offset(0, 2).Value) = "vip" Then ' Giả sử cột C là Loại KH wsDest.Cells(destRow, 1).Value = cell.Value wsDest.Cells(destRow, 2).Value = cell.Offset(0, 1).Value wsDest.Cells(destRow, 3).Value = cell.Offset(0, 2).Value destRow = destRow + 1 End If Next cell wsDest.Columns.AutoFit MsgBox "Đã xuất " & destRow - 2 & " khách hàng VIP.", vbInformation
End Sub

12. Kết Luận

Việc tìm kiếm ô có giá trị trong Excel không còn là một thách thức khi bạn nắm vững các công cụ và kỹ thuật sau:

  1. Find & Replace cho tìm nhanh và di chuyển trên giao diện.
  2. Các hàm tìm kiếm (VLOOKUP, HLOOKUP, INDEX+MATCH, XLOOKUP) để trả về giá trị hoặc vị trí trong công thức.
  3. FILTER và công thức mảng để lấy danh sách các ô thỏa mãn nhiều điều kiện.
  4. Conditional Formatting để trực quan hoá dữ liệu.
  5. VBA Macro để tự động hoá, xử lý đa sheet, ghi log và thực hiện hành động phức tạp.

Bạn hãy lựa chọn phương pháp phù hợp với yêu cầu và môi trường làm việc (phiên bản Excel, độ phức tạp, tần suất thực hiện). Khi kết hợp linh hoạt các công cụ trên, bạn sẽ nâng cao đáng kể hiệu suất làm việc, giảm thiểu lỗi và có thể xây dựng các mô hình dữ liệu chuyên nghiệp, tự động hoá hoàn toàn quy trình phân tích và báo cáo.

Hy vọng bài viết này đã cung cấp cho bạn một kho tàng kiến thức toàn diện về “excel find cell with value”. Hãy thực hành, thử nghiệm và tùy biến các giải pháp để phù hợp nhất với công việc thực tế của mình. Chúc bạn thành công!

⚠️
LƯU Ý QUAN TRỌNG: Miễn trừ trách nhiệm: Mặc dù chúng tôi luôn nỗ lực để đảm bảo tính chính xác và cập nhật của thông tin, nhưng các quy định về giáo dục và tuyển sinh có thể thay đổi theo thời gian. BigSchool không chịu trách nhiệm về bất kỳ sai sót nào hoặc kết quả phát sinh từ việc sử dụng thông tin trên trang này. Độc giả nên liên hệ trực tiếp với nhà trường hoặc cơ quan chức năng để có thông tin mới nhất. Ngoài ra, BigSchool tuyệt đối không bán sản phẩm, khóa học hay cung cấp dịch vụ được nhắc đến trong bài.

Viết một bình luận