Cách Tìm Văn Bản Trong Ô Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao

Mục lục bài viết

1. Giới thiệu chung

Trong quá trình làm việc với Microsoft Excel, việc tìm kiếm một đoạn văn bản (text) trong các ô là một nhu cầu thường gặp. Dù bạn đang xử lý danh sách khách hàng, báo cáo tài chính, hay dữ liệu sản phẩm, việc nhanh chóng xác định xem một chuỗi ký tự có xuất hiện trong ô nào sẽ giúp tiết kiệm thời gian và nâng cao hiệu suất công việc. Bài viết này sẽ cung cấp toàn bộ kiến thức cần thiết để bạn có thể:

  • Sử dụng công cụ Find & Replace (Tìm & Thay thế) một cách tối ưu.
  • Áp dụng các hàm Excel như SEARCH, FIND, COUNTIF, SUMIF, FILTER để tìm văn bản trong ô.
  • Kết hợp định dạng có điều kiện (Conditional Formatting) để làm nổi bật các ô chứa từ khóa.
  • Tạo macro VBA để tự động hoá quá trình tìm kiếm khi cần xử lý dữ liệu lớn.
  • Giải quyết các trường hợp phức tạp như tìm kiếm không phân biệt hoa/thường, tìm kiếm toàn bộ từ, hoặc tìm kiếm theo biểu thức chính quy (Regex).

Bài viết sẽ được chia thành nhiều phần chi tiết, mỗi phần kèm theo ví dụ thực tế, công thức, và hướng dẫn từng bước. Bạn không cần phải là chuyên gia để hiểu và áp dụng, chỉ cần theo dõi từng mục và thực hành trên file Excel của mình.

2. Sử dụng công cụ Find & Replace (Tìm & Thay Thế)

2.1. Cách mở cửa sổ Find

  1. Nhấn phím tắt Ctrl + F → mở cửa sổ Find.
  2. Hoặc vào Home → Find & Select → Find….

2.2. Các tùy chọn quan trọng

Tùy chọnMô tảỨng dụng thực tế
Find whatNhập đoạn văn bản cần tìm.Tìm “Hà Nội” trong danh sách địa chỉ.
WithinSheet (trong sheet hiện tại) hoặc Workbook (trong toàn bộ workbook).Khi dữ liệu lan truyền trên nhiều sheet.
SearchBy Rows (theo hàng) hoặc By Columns (theo cột).Tìm nhanh trong cột sản phẩm.
Look inFormulas (công thức), Values (giá trị), Comments (ghi chú).Tìm trong công thức nếu bạn muốn xác định hàm sử dụng.
Match casePhân biệt chữ hoa/thường.Tìm “Apple” vs “apple”.
Match entire cell contentsChỉ tìm ô đúng bằng chuỗi nhập.Tìm ô chứa duy nhất “Pending”.
Search using wildcardsSử dụng ký tự đại diện (bất kỳ chuỗi nào) và ? (một ký tự).Tìm “2026” để lấy tất cả các mã đơn hàng bắt đầu bằng 2026.

2.3. Thực hành: Tìm tất cả các ô chứa từ “khách hàng”

  1. Nhấn Ctrl + F.
  2. Nhập khách hàng vào ô Find what.
  3. Đánh dấu Match case nếu muốn phân biệt.
  4. Nhấn Find All → Excel sẽ liệt kê tất cả các ô chứa từ khóa trong một danh sách dưới cùng cửa sổ.

2.4. Thay thế (Replace)

Nếu bạn muốn thay thế một đoạn văn bản bằng một đoạn khác (ví dụ: đổi “Pending” thành “Đang xử lý”), thực hiện:

  1. Mở Replace bằng Ctrl + H.
  2. Điền Find what và Replace with.
  3. Chọn Replace All để thực hiện trên toàn bộ sheet hoặc workbook.

Lưu ý: Luôn sao lưu file trước khi thực hiện Replace All để tránh thay đổi không mong muốn.

3. Sử dụng hàm Excel để tìm văn bản trong ô

3.1. Hàm SEARCH và FIND

HàmPhân biệtCú pháp
SEARCH(find_text, within_text, start_num)Không phân biệt hoa/thường; hỗ trợ ký tự đại diện và ?.=SEARCH("apple", A2)
FIND(find_text, within_text, start_num)Phân biệt hoa/thường; không hỗ trợ wildcard.=FIND("Apple", A2)

3.1.1. Ví dụ thực tế

Giả sử cột A chứa tên sản phẩm:

A (Tên sản phẩm)
Apple iPhone 12
Samsung Galaxy
Apple MacBook
Dell Laptop
  • Tìm vị trí “Apple” trong mỗi ô: =SEARCH("Apple", A2) → trả về 1 nếu “Apple” là ký tự đầu tiên, 8 nếu xuất hiện sau “Samsung ”, v.v.
  • Kiểm tra có chứa “Apple” không: =IF(ISNUMBER(SEARCH("Apple", A2)), "Có", "Không").

3.1.2. Xử lý lỗi #VALUE!

Khi SEARCH hoặc FIND không tìm thấy chuỗi, chúng sẽ trả về lỗi #VALUE!. Để tránh lỗi này trong công thức, dùng IFERROR:

=IFERROR(SEARCH("Apple", A2), 0) // trả về 0 nếu không tìm thấy

3.2. Hàm COUNTIF và COUNTIFS

COUNTIF cho phép đếm số ô thỏa mãn một tiêu chí, rất hữu ích để thống kê mức độ xuất hiện của một từ.

=COUNTIF(A:A, "Apple") // đếm các ô chứa “Apple” ở bất kỳ vị trí nào
  • Dấu ở đầu và cuối biểu thị wildcard (bất kỳ chuỗi nào).
  • Đối với phân biệt hoa/thường, Excel không hỗ trợ trực tiếp trong COUNTIF. Có thể dùng SUMPRODUCT kết hợp EXACT:
=SUMPRODUCT(--EXACT(A2:A100, "Apple"))

3.3. Hàm SUMIF và SUMIFS (tổng có điều kiện)

Nếu bạn muốn tổng giá trị trong một cột dựa trên việc ô trong cột khác chứa một từ khóa:

=SUMIF(B:B, "Apple", C:C) // Tổng cột C nếu cột B chứa “Apple”

3.4. Hàm FILTER (Excel 365/2026)

FILTER cho phép trích xuất các hàng thỏa mãn điều kiện:

=FILTER(A:C, ISNUMBER(SEARCH("Apple", B:B)), "Không tìm thấy")

Kết quả sẽ là một mảng các hàng mà cột B chứa “Apple”.

3.5. Hàm TEXTJOIN và IF kết hợp

Khi muốn liệt kê tất cả các ô chứa một từ khóa trong một ô duy nhất:

=TEXTJOIN(", ", TRUE, IF(ISNUMBER(SEARCH("Apple", A2:A100)), A2:A100, ""))
  • Nhấn Ctrl + Shift + Enter (đối với Excel 2026 trở về trước) để nhập công thức dạng mảng, hoặc chỉ nhập bình thường trong Excel 365.

4. Định dạng có điều kiện (Conditional Formatting) để làm nổi bật ô chứa văn bản

4.1. Bước thực hiện

  1. Chọn vùng dữ liệu (ví dụ: A2:A100).
  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: =ISNUMBER(SEARCH("Apple", A2)).
  5. Định dạng màu nền (ví dụ: màu vàng) → OK.

Kết quả: Tất cả các ô có chứa “Apple” sẽ được tô màu vàng.

4.2. Sử dụng wildcards trong Conditional Formatting

Bạn có thể dùng COUNTIF trong công thức:

=COUNTIF(A2, "Apple")>0

4.3. Định dạng cho toàn bộ sheet

Nếu muốn áp dụng cho toàn bộ sheet, chọn Select All (Ctrl + A) trước khi tạo quy tắc.

5. Tìm kiếm nâng cao với VBA (Macro)

Excel Find Text In Cell
Excel Find Text In Cell

Khi dữ liệu quá lớn (hàng triệu) hoặc cần thực hiện tự động hoá (ví dụ: chạy hàng ngày), VBA là giải pháp mạnh mẽ.

5.1. Mã VBA tìm và đánh dấu ô chứa từ khóa

Sub HighlightKeyword() Dim ws As Worksheet Dim rng As Range, cell As Range Dim keyword As String Set ws = ThisWorkbook.Sheets("Data") ' Thay tên sheet phù hợp Set rng = ws.UsedRange ' Hoặc ws.Range("A2:A1000") keyword = InputBox("Nhập từ khóa cần tìm:", "Tìm kiếm") Application.ScreenUpdating = False For Each cell In rng If Not IsError(cell.Value) Then If InStr(1, cell.Value, keyword, vbTextCompare) > 0 Then cell.Interior.Color = vbYellow Else cell.Interior.ColorIndex = xlNone End If End If Next cell Application.ScreenUpdating = True MsgBox "Hoàn tất! Các ô chứa '" & keyword & "' đã được tô màu.", vbInformation
End Sub
  • InStr với vbTextCompare → không phân biệt hoa/thường.
  • Đánh dấu bằng màu vàng (vbYellow).

5.2. Tìm và thay thế tự động

Sub FindAndReplaceKeyword() Dim ws As Worksheet Dim rng As Range Dim findText As String, replaceText As String Set ws = ActiveSheet findText = InputBox("Nhập từ cần tìm:") replaceText = InputBox("Nhập từ thay thế:") Set rng = ws.UsedRange rng.Replace What:=findText, Replacement:=replaceText, _ LookAt:=xlPart, MatchCase:=False, _ SearchOrder:=xlByRows, _ SearchDirection:=xlNext, _ MatchByte:=False, _ ReplaceAll:=True MsgBox "Thay thế hoàn tất!", vbInformation
End Sub

5.3. Tạo nút bấm (Button) để chạy macro

  1. Vào Developer → Insert → Button (Form Control).
  2. Kéo nút vào sheet, gán macro HighlightKeyword hoặc FindAndReplaceKeyword.
  3. Đổi tên nút thành “Tìm & Đánh dấu” hoặc “Thay thế nhanh”.

6. Xử lý các trường hợp đặc biệt

6.1. Tìm toàn bộ từ (whole word)

Khi muốn không chỉ tìm chuỗi con mà phải là toàn bộ từ, chúng ta cần kết hợp SEARCH với ký tự phân cách (space, dấu câu) hoặc dùng REGEX trong VBA.

6.1.1. Công thức không VBA

Giả sử muốn tìm “cat” nhưng không muốn “caterpillar” được tính:

=IF(OR(ISNUMBER(SEARCH(" cat ", " " & A2 & " ")), LEFT(A2,4)="cat ", RIGHT(A2,4)=" cat", A2="cat"), "Có", "Không")
  • Thêm khoảng trắng ở đầu và cuối chuỗi để kiểm tra vị trí ở đầu/cuối.

6.1.2. Sử dụng VBA với RegExp

Function ContainsWholeWord(rng As Range, word As String) As Boolean Dim regEx As Object Set regEx = CreateObject("VBScript.RegExp") regEx.Pattern = "\b" & word & "\b" regEx.IgnoreCase = True ContainsWholeWord = regEx.Test(rng.Value)
End Function

Sau đó trong sheet:

=IF(ContainsWholeWord(A2, "cat"), "Có", "Không")

6.2. Tìm không phân biệt dấu tiếng Việt

Excel mặc định phân biệt dấu. Để bỏ qua dấu, ta có thể tạo hàm RemoveAccents trong VBA:

Function RemoveAccents(txt As String) As String Dim i As Long, ch As String, result As String Dim accents As String, plain As String accents = "áàạảãâấầậẩẫăắằặẳẵéèẹẻẽêếềệểễíìịỉĩóòọỏõôốồộổỗơớờợởỡúùụủũưứừựửữýỳỵỷỹđ" plain = "aaaaaaaaaaaaaaaaeeeeeeeeeeeiiiiioooooooooooooooooouuuuuuuuuuyyyyyd" txt = LCase(txt) For i = 1 To Len(txt) ch = Mid(txt, i, 1) If InStr(accents, ch) > 0 Then result = result & Mid(plain, InStr(accents, ch), 1) Else result = result & ch End If Next i RemoveAccents = result
End Function

Sau khi thêm hàm, sử dụng trong sheet:

=IF(ISNUMBER(SEARCH(RemoveAccents("hanoi"), RemoveAccents(A2))), "Có", "Không")

6.3. Tìm bằng biểu thức chính quy (Regex) trong Excel 365 (LAMBDA)

Excel 365 mới hỗ trợ hàm LET và LAMBDA. Ta có thể tạo hàm Regex bằng JavaScript trong Office Scripts (trên web) hoặc dùng Power Query.

Ví dụ trong Power Query:

  1. Data → Get Data → From Table/Range.
  2. Trong Power Query Editor, chọn Add Column → Custom Column.
  3. Nhập công thức:
= if Text.Contains(Column1, "Apple", Comparer.OrdinalIgnoreCase) then "Có" else "Không"

Đối với regex:

= if Text.RegexMatch(Column1, "(?i)\bapple\b") then "Có" else "Không"

Sau khi Close & Load, dữ liệu sẽ được trả về Excel với cột mới có kết quả.

7. Tổng hợp các phương pháp và lựa chọn phù hợp

Nhu cầuCông cụ/Phương phápƯu điểmNhược điểm
Tìm nhanh một từ trong sheetFind (Ctrl+F)Đơn giản, không cần công thứcKhông tự động, không thể dùng trong báo cáo
Đánh dấu ô chứa từConditional FormattingTự động cập nhật khi dữ liệu thay đổiKhông trả về danh sách ô
Đếm số lần xuất hiệnCOUNTIF, COUNTIFSNhanh, dễ hiểuKhông trả về vị trí
Lấy danh sách các hàngFILTER (Excel 365)Trực quan, hỗ trợ mảngYêu cầu phiên bản mới
Kiểm tra trong công thứcSEARCH/FIND + IFERRORLinh hoạt, có thể ghép với các hàm khácCần công thức, có thể gây lỗi nếu không xử lý #VALUE!
Xử lý hàng triệu dòngVBA MacroTự động hoá, tốc độ caoCần kiến thức lập trình, phải bật macro
Tìm toàn bộ từ, không phân biệt dấuVBA + RegExp hoặc Power QueryĐộ chính xác caoPhức tạp hơn, cần viết code

Khi nào nên dùng gì?

  • Công cụ Find: Khi chỉ cần kiểm tra nhanh, không cần lưu lại kết quả.
  • Conditional Formatting: Khi muốn visual nhanh trên sheet, ví dụ báo cáo quản lý.
  • COUNTIF / SUMIF: Khi cần tổng hợp số liệu (đếm, tổng) dựa trên từ khóa.
  • FILTER: Khi muốn trích xuất dữ liệu sang một bảng mới để phân tích sâu.
  • VBA: Khi công việc lặp lại, dữ liệu lớn, hoặc cần tự động hoá (ví dụ chạy mỗi sáng).
  • Power Query: Khi muốn xử lý dữ liệu trước khi nhập vào bảng tính, hoặc cần regex.

8. Thực hành: Xây dựng một bảng báo cáo “Sản phẩm có chứa từ khóa”

8.1. Dữ liệu mẫu

A (Mã SP)B (Tên SP)C (Giá)
P001Apple iPhone 121200
P002Samsung Galaxy S21950
P003Apple MacBook Pro2100
P004Dell XPS 131300
P005Apple Watch Series 6400

8.2. Yêu cầu

  • Liệt kê các sản phẩm có chứa “Apple”.
  • Tính tổng giá của các sản phẩm này.
  • Đánh dấu các ô trong cột B chứa “Apple”.

8.3. Các bước thực hiện

Bước 1: Đánh dấu bằng Conditional Formatting

  • Chọn cột B → Conditional Formatting → New Rule → công thức: =ISNUMBER(SEARCH("Apple", B2)) → Đặt màu nền xanh nhạt.

Bước 2: Lấy danh sách sản phẩm (FILTER)

=FILTER(A2:C6, ISNUMBER(SEARCH("Apple", B2:B6)), "Không có sản phẩm")

Kết quả (ô E2):

Mã SPTên SPGiá
P001Apple iPhone 121200
P003Apple MacBook Pro2100
P005Apple Watch Series 6400

Bước 3: Tính tổng giá

=SUMIF(B2:B6, "Apple", C2:C6) // Hoặc =SUM(FILTER(C2:C6, ISNUMBER(SEARCH("Apple",B2:B6))))

Kết quả: 3700.

Bước 4: Tạo nút “Cập nhật” (Macro)

Nếu dữ liệu thay đổi thường xuyên, bạn có thể gán macro HighlightKeyword vào một button để tự động đánh dấu lại.

9. Những lỗi thường gặp và cách khắc phục

LỗiNguyên nhânCách khắc phục
#VALUE! khi dùng SEARCH/FINDKhông tìm thấy chuỗiBao quanh bằng IFERROR(...,0) hoặc ISNUMBER.
Không tìm thấy khi dùng FindMatch case hoặc Match entire cell contents được bậtTắt các tùy chọn hoặc nhập đúng chữ hoa/thường.
COUNTIF không phân biệt hoa/thườngCOUNTIF luôn không phân biệtDùng SUMPRODUCT(--EXACT(...)) hoặc chuyển sang FILTER + LOWER.
Macro không chạyBảo mật macro bị chặnVào File → Options → Trust Center → Trust Center Settings → Macro Settings và chọn “Enable all macros”.
Conditional Formatting không áp dụngCông thức tham chiếu sai vùngĐảm bảo công thức dùng ô đầu tiên của vùng (ví dụ B2).
Performance chậm khi dùng mảngDữ liệu quá lớn (hàng > 100k)Chuyển sang Power Query hoặc VBA để xử lý.

10. Kết luận

Việc tìm văn bản trong ô Excel không chỉ là một thao tác đơn giản mà còn là nền tảng cho nhiều quy trình phân tích dữ liệu. Từ việc sử dụng công cụ Find nhanh chóng, định dạng có điều kiện để hiển thị trực quan, đến các hàm mạnh mẽ như SEARCH, COUNTIF, FILTER, và macro VBA để tự động hoá, mỗi phương pháp đều có ưu nhược điểm riêng và phù hợp với từng tình huống.

Bạn chỉ cần:

  1. Xác định mục tiêu (đếm, liệt kê, tổng hợp, hay chỉ muốn tô sáng).
  2. Chọn công cụ (Find, hàm, Conditional Formatting, VBA).
  3. Áp dụng công thức hoặc macro đúng cách, đồng thời xử lý lỗi thường gặp.

Hy vọng bài viết này đã cung cấp cho bạn bộ công cụ đầy đủ để giải quyết mọi nhu cầu tìm kiếm văn bản trong Excel, từ cơ bản tới nâng cao. Hãy thực hành ngay trên file của mình, tùy chỉnh công thức và macro sao cho phù hợp, và bạn sẽ thấy hiệu suất làm việc tăng đáng kể.

Tip cuối cùng: Khi làm việc với dữ liệu quan trọng, luôn sao lưu file trước khi thực hiện các thao tác thay thế hoặc chạy macro để tránh mất mát dữ liệu không mong muốn. 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