Có thể bạn quan tâm: Cách Trích Xuất Số Khỏi Ô Trong Excel: Hướng Dẫn Chi Tiết, Thực Hành Và Các Mẹo Nhanh
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.
Có thể bạn quan tâm: Cách Chuyển Đổi Văn Bản Thành Ngày Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
2. Sử dụng công cụ Find & Replace (Tìm & Thay Thế)
2.1. Cách mở cửa sổ Find
- Nhấn phím tắt
Ctrl + F→ mở cửa sổ Find. - Hoặc vào Home → Find & Select → Find….
2.2. Các tùy chọn quan trọng
| Tùy chọn | Mô tả | Ứng dụng thực tế |
|---|---|---|
| Find what | Nhập đoạn văn bản cần tìm. | Tìm “Hà Nội” trong danh sách địa chỉ. |
| Within | Sheet (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. |
| Search | By Rows (theo hàng) hoặc By Columns (theo cột). | Tìm nhanh trong cột sản phẩm. |
| Look in | Formulas (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 case | Phân biệt chữ hoa/thường. | Tìm “Apple” vs “apple”. |
| Match entire cell contents | Chỉ tìm ô đúng bằng chuỗi nhập. | Tìm ô chứa duy nhất “Pending”. |
| Search using wildcards | Sử 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”
- Nhấn
Ctrl + F. - Nhập khách hàng vào ô Find what.
- Đánh dấu Match case nếu muốn phân biệt.
- 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:
- Mở Replace bằng
Ctrl + H. - Điền Find what và Replace with.
- 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.
Có thể bạn quan tâm: Excel Countif Not Empty – Hướng Dẫn Chi Tiết Đếm Ô Không Rỗng Trong Bảng Tính
3. Sử dụng hàm Excel để tìm văn bản trong ô
3.1. Hàm SEARCH và FIND
| Hàm | Phân biệt | Cú 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ùngSUMPRODUCTkết hợpEXACT:
=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
- Chọn vùng dữ liệu (ví dụ:
A2:A100). - Vào Home → Conditional Formatting → New Rule.
- Chọn Use a formula to determine which cells to format.
- Nhập công thức:
=ISNUMBER(SEARCH("Apple", A2)). - Đị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)

Có thể bạn quan tâm: Excel Find Character In String – Hướng Dẫn Chi Tiết Tìm Kiếm Và Xử Lý Ký Tự Trong Chuỗi
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
InStrvớivbTextCompare→ 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
- Vào Developer → Insert → Button (Form Control).
- Kéo nút vào sheet, gán macro
HighlightKeywordhoặcFindAndReplaceKeyword. - Đổ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:
- Data → Get Data → From Table/Range.
- Trong Power Query Editor, chọn Add Column → Custom Column.
- 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ầu | Công cụ/Phương pháp | Ưu điểm | Nhược điểm |
|---|---|---|---|
| Tìm nhanh một từ trong sheet | Find (Ctrl+F) | Đơn giản, không cần công thức | Không tự động, không thể dùng trong báo cáo |
| Đánh dấu ô chứa từ | Conditional Formatting | Tự động cập nhật khi dữ liệu thay đổi | Không trả về danh sách ô |
| Đếm số lần xuất hiện | COUNTIF, COUNTIFS | Nhanh, dễ hiểu | Không trả về vị trí |
| Lấy danh sách các hàng | FILTER (Excel 365) | Trực quan, hỗ trợ mảng | Yêu cầu phiên bản mới |
| Kiểm tra trong công thức | SEARCH/FIND + IFERROR | Linh hoạt, có thể ghép với các hàm khác | Cầ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òng | VBA Macro | Tự động hoá, tốc độ cao | Cầ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ấu | VBA + RegExp hoặc Power Query | Độ chính xác cao | Phứ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á) |
|---|---|---|
| P001 | Apple iPhone 12 | 1200 |
| P002 | Samsung Galaxy S21 | 950 |
| P003 | Apple MacBook Pro | 2100 |
| P004 | Dell XPS 13 | 1300 |
| P005 | Apple Watch Series 6 | 400 |
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ã SP | Tên SP | Giá |
|---|---|---|
| P001 | Apple iPhone 12 | 1200 |
| P003 | Apple MacBook Pro | 2100 |
| P005 | Apple Watch Series 6 | 400 |
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ỗi | Nguyên nhân | Cách khắc phục |
|---|---|---|
#VALUE! khi dùng SEARCH/FIND | Không tìm thấy chuỗi | Bao quanh bằng IFERROR(...,0) hoặc ISNUMBER. |
| Không tìm thấy khi dùng Find | Match case hoặc Match entire cell contents được bật | Tắ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ường | COUNTIF luôn không phân biệt | Dùng SUMPRODUCT(--EXACT(...)) hoặc chuyển sang FILTER + LOWER. |
| Macro không chạy | Bảo mật macro bị chặn | Vào File → Options → Trust Center → Trust Center Settings → Macro Settings và chọn “Enable all macros”. |
| Conditional Formatting không áp dụng | Cô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ảng | Dữ 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:
- Xác định mục tiêu (đếm, liệt kê, tổng hợp, hay chỉ muốn tô sáng).
- Chọn công cụ (Find, hàm, Conditional Formatting, VBA).
- Á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!

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