FIND
FIND(chuỗi_con, chuỗi, [từ_vị_trí])Cho biết một chuỗi con nằm ở vị trí thứ mấy trong chuỗi lớn. Ít khi dùng một mình — nó là bàn đạp để LEFT, MID, RIGHT biết cắt ở đâu khi mã mỗi dòng một độ dài.
Các đối số
| Đối số | Bắt buộc? | Ý nghĩa |
|---|---|---|
| chuỗi_con | Bắt buộc | Phần cần tìm. Dấu * và ? ở đây được hiểu là ký tự thật, không phải ký tự đại diện. |
| chuỗi | Bắt buộc | Chuỗi bị đem ra dò. |
| từ_vị_trí | Tuỳ chọn | Bắt đầu dò từ ký tự thứ mấy, mặc định là 1. Dùng để tìm lần xuất hiện thứ hai, thứ ba của cùng một dấu ngăn. |
Trả về gì
Vị trí của ký tự ĐẦU TIÊN khớp, đếm từ 1. Không tìm thấy thì ra #VALUE! chứ không ra 0.
Ví dụ
=FIND("-", A2)Dấu gạch trong mã HD-2026-0459 nằm ở ký tự thứ mấy
Kết quả: 3
=FIND("-", A2, FIND("-", A2) + 1)Vị trí dấu gạch THỨ HAI, để cắt khúc giữa
Kết quả: 8
=IFERROR(LEFT(A2, FIND("-", A2) - 1), A2)Cắt phần đầu mã, dòng nào không có dấu gạch thì giữ nguyên
Kết quả: HD
Lưu ý khi dùng
- Không tìm thấy là ra #VALUE! và lỗi này lan sang mọi công thức ăn theo — bọc IFERROR hoặc kiểm trước bằng ISNUMBER.
- Muốn tìm dấu ngăn CUỐI CÙNG thì cách gọn nhất là TEXTAFTER với số âm, còn bản cũ phải dùng mẹo SUBSTITUTE ký tự cuối thành một ký tự lạ rồi FIND ký tự đó.
Bẫy hay dính
Cắt họ tên bằng =LEFT(A2, FIND(" ", A2)) mà quên trừ 1: kết quả giữ luôn dấu cách ở đuôi. Nhìn trên màn hình không thấy gì khác, nhưng đem cột đó đi dò VLOOKUP hay COUNTIF thì trượt sạch. Phát hiện bằng =LEN() so với số ký tự đếm bằng mắt.
Chọn cái nào
FIND hay SEARCH
FIND phân biệt hoa thường và không nhận ký tự đại diện. SEARCH thì ngược lại. Dữ liệu viết lẫn lộn hoa thường thì gần như luôn dùng SEARCH.
=ISNUMBER(SEARCH("hn", A2))