Menu

Hàm FIND và SEARCH trong Excel: tìm vị trí văn bản trong ô

=SEARCH("apple",A2) trả về vị trí bắt đầu của apple trong A2, không phân biệt hoa thường. FIND làm điều tương tự nhưng phân biệt chữ hoa chữ thường. Cả hai trả về #VALUE! khi không có văn bản, và ISNUMBER biến điều đó thành phép kiểm tra "ô có chứa".

Mọi bảng tính trên trang này đều trực tiếp: đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

=SEARCH("apple",A2) trả về vị trí bắt đầu của apple trong A2, đếm từ 1, và không phân biệt chữ hoa chữ thường. =FIND("apple",A2) làm điều tương tự nhưng chỉ khớp khi đúng hoa thường. Khi không có văn bản đó, cả hai đều trả về #VALUE!.

FIND phân biệt hoa thường, SEARCH thì không
B2
ABC
1TextFIND("apple")SEARCH("apple")
2Apple pie#VALUE!1
3Green apple77
4Banana bread#VALUE!#VALUE!
#VALUE! Một đối số sai kiểu, chẳng hạn văn bản ở chỗ cần số.

Apple pie bắt đầu bằng chữ A hoa, nên FIND không khớp và trả về #VALUE!, còn SEARCH trả về 1. Trong Green apple, cả hai đều trả về 7: dấu cách cũng được tính là một ký tự. Banana bread hoàn toàn không có apple.

Cú pháp

=FIND(find_text, within_text, [start_num])
=SEARCH(find_text, within_text, [start_num])
  • find_text: thứ cần tìm. Một ký tự hoặc một từ.
  • within_text: ô cần tìm trong đó.
  • start_num: vị trí bắt đầu tìm, mặc định là 1 nếu bỏ trống. Kết quả vẫn được đếm từ ký tự đầu tiên của ô.

Kiểm tra ô có chứa văn bản

Bản thân vị trí hiếm khi là thứ bạn cần. Thường câu hỏi là "ô này có chứa từ đó không?". Vị trí là một số còn không tìm thấy là một lỗi, nên ISNUMBER biến kết quả thành TRUE hoặc FALSE:

Ghi chú có nhắc đến việc trễ không?
B2
ABC
1NoteContains "late"Status
2Arrived lateTRUECheck
3On timeFALSEOK
4LATE by 2 daysTRUECheck
5DeliveredFALSEOK
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

SEARCH khớp với LATE ở A4 vì nó không phân biệt hoa thường. Lưu ý rằng nó cũng sẽ khớp với latest hay chocolate: SEARCH tìm theo ký tự, không theo nguyên từ. Tìm " late" với một dấu cách ở đầu sẽ thu hẹp phạm vi được một chút. Để đếm có bao nhiêu ô chứa một từ, =COUNTIF(A2:A5,"*late*") ngắn hơn; xem đếm ô chứa văn bản.

Đánh dấu yêu cầu khẩn cấp
B2
AB
1SubjectUrgent?
2URGENT: server down
3Monthly report
4Refund request, urgent
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

Đến lượt bạn: Trong B2, trả về TRUE nếu tiêu đề trong A2 chứa từ urgent với kiểu viết hoa bất kỳ, và FALSE nếu không. Công thức được kéo xuống tới B4.

Tìm lần xuất hiện thứ hai

start_num cho phép bạn bắt đầu tìm sau lần khớp đầu tiên. Đặt một hàm FIND bên trong một hàm FIND khác: hàm bên trong tìm dấu gạch ngang đầu tiên, còn hàm bên ngoài bắt đầu từ ký tự ngay sau đó.

Vị trí của dấu gạch ngang thứ nhất và thứ hai
C2
ABC
1CodeFirst dashSecond dash
2NYC-2041-B49
3BOSTON-15-AA710
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

Có hai vị trí đó rồi, MID có thể lấy phần nằm giữa hai dấu gạch ngang: =MID(A2,B2+1,C2-B2-1) trả về 2041.

Dấu @ nằm ở đâu?
B2
AB
1EmailPosition
2ana@coddy.tech
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

Đến lượt bạn: Trong B2, trả về vị trí của @ trong địa chỉ email.

FIND và SEARCH trả về #VALUE!

Ở đây #VALUE! chỉ có nghĩa là "không tìm thấy". Hãy thay nó bằng thứ gì đó hữu ích:

Không tìm thấy mà không báo lỗi
B2
AB
1EmailPosition of @
2ana@coddy.tech4
3not an email0
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

Đừng so sánh kết quả gốc với một số, như =FIND("@",A2)>0: không tìm thấy là một lỗi, và phép so sánh sẽ trả về #VALUE! thay vì FALSE. Hãy kiểm tra bằng ISNUMBER, như ở phần bên trên.

SEARCH nhận các ký tự đại diện ? (một ký tự bất kỳ) và * (một chuỗi ký tự bất kỳ). FIND coi chúng là ký tự bình thường. Trong Excel:

=SEARCH("b?d","a bad day")     returns 3
=SEARCH("2*B","NYC-2041-B")    returns 5
=SEARCH("~?","Why?")           returns 4, the tilde means a real question mark
=FIND("?","Why?")              returns 4, FIND has no wildcards

Xem thêm về *, ? và ~ trong các hàm Excel ở trang ký tự đại diện.

FIND, SEARCH và Ctrl+F

FINDSEARCHCtrl+F
Chữ hoa chữ thườngPhải khớpBỏ quaBỏ qua, trừ khi đánh dấu Match case
Ký tự đại diệnKhông?, *, ~?, *, ~
Không tìm thấy#VALUE!#VALUE!Một thông báo
Kết quảMột vị trí, tự tính lạiMột vị trí, tự tính lạiChọn ô đó

Để tìm một giá trị một lần, Home > Find & Select > Find (Ctrl+F, Cmd+F trên Mac) nhanh hơn dùng công thức. Để đánh dấu hoặc trích xuất trên mọi hàng và luôn được cập nhật, hãy dùng FIND hoặc SEARCH. Chọn FIND khi chữ hoa chữ thường mang ý nghĩa (mã sản phẩm như ab và AB), và SEARCH cho mọi thứ do người dùng gõ.

Câu hỏi thường gặp

FIND và SEARCH trong Excel khác nhau thế nào?

FIND phân biệt chữ hoa chữ thường và không nhận ký tự đại diện. SEARCH không phân biệt hoa thường và nhận ? và *. =FIND("a","Apple") là #VALUE!, còn =SEARCH("a","Apple") là 1.

Làm sao lấy phần văn bản giữa hai dấu gạch ngang trong Excel?

Tìm cả hai dấu gạch ngang rồi lấy phần ở giữa bằng MID: =MID(A2,FIND("-",A2)+1,FIND("-",A2,FIND("-",A2)+1)-FIND("-",A2)-1) trả về 2041 từ NYC-2041-B. Trong Microsoft 365, =TEXTBEFORE(TEXTAFTER(A2,"-"),"-") ngắn hơn.

Vì sao FIND trả về #VALUE!?

Văn bản không có trong ô, hoặc có nhưng khác chữ hoa chữ thường (FIND phân biệt hoa thường). Bọc hàm lại để trả về giá trị khác: =IFERROR(FIND("-",A2),0).

Làm sao tìm lần xuất hiện thứ hai của một ký tự?

Bắt đầu tìm từ ký tự ngay sau lần khớp đầu tiên: =FIND("-",A2,FIND("-",A2)+1). Tham số thứ ba là vị trí bắt đầu tìm.

Hình minh họa các ngôn ngữ lập trình của Coddy

Học lập trình cùng Coddy

Bắt đầu