Để lấy ký tự theo điều kiện trong Excel, ta có thể sử dụng các hàm cơ bản như LEFT, RIGHT, MID kết hợp với hàm FIND/SEARCH hoặc kết hợp với hàm IF để lấy ký tự trong các trường hợp có điều kiện phức tạp. Dưới đây là hướng dẫn chi tiết cách lấy ký tự trong các trường hợp từ đơn giản đến phức tạp:
1. Sử dụng hàm LEFT, RIGHT, MID để lấy ký tự
Trong các chuỗi có vị trí cắt cố định (ví dụ như luôn lấy 3 ký tự tiền tố, hoặc 6 ký tự hậu tố) hoặc ta đã biết trước vị trí hoặc độ dài phần cần lấy thì ta có thể sử dụng các hàm LEFT, RIGHT, MID để lấy ký tự với công thức:
=LEFT(text, n)→ Lấy n ký tự bên trái của text.=RIGHT(text, n)→ Lấy n ký tự bên phải của text.=MID(text, start, n)→ Lấy n ký tự, bắt đầu tại vị trí start (ví dụ tính từ 1).
Giả sử như ô A2 chứa chuỗi “INV-2025-000123” thì ta sẽ vận dụng các hàm LEFT/RIGHT/MID để cắt chuỗi ký tự trong từng trường hợp như sau:
- Lấy tiền tố
INV(3 ký tự đầu tiên):- Công thức:
=LEFT(A2,3) - Vì tiền tố luôn dài 3 ký tự, dùng hàm LEFT là tối ưu.
- Công thức:
- Lấy 6 ký tự cuối
000123:- Công thức:
=RIGHT(A2,6) - Khi độ dài phần cuối cố định, sử dụng hàm
RIGHTlà nhanh nhất.
- Công thức:
- Lấy năm
2025(bắt đầu ở vị trí 5, lấy 4 ký tự):- Công thức:
=MID(A2,5,4) - Dấu
-ở vị trí 4 nên năm bắt đầu từ 5 → ta sẽ dùng hàmMID.
- Công thức:
Mẹo: Ta có thể sử dụng hàm LEN(TEXT) để tính tham số n linh hoạt hơn khi sử dụng các hàm LEFT/RIGHT/MID. Ví dụ muốn lấy phần còn lại của ô A2 sau vị trí thứ X thì ta sử dụng công thức: =RIGHT(A2, LEN(A2) - X)
2. Sử dụng hàm TEXTAFTER/TEXTBEFORE để lấy chuỗi sau/trước ký tự
Với phiên bản Excel 365/2021 trở lên, ta có thể sử dụng hàm TEXTAFTER/TEXTBEFORE để lấy phần trước hoặc sau ký tự từ một chuỗi với công thức như sau:
- Hàm TEXTAFTER trả về phần sau một dấu phân cách (delimiter):
=TEXTAFTER(text, delimiter, [instance_num], [match_mode], [match_end], [if_not_found])
- Hàm TEXTBEFORE trả về phần trước một dấu phân cách:
=TEXTBEFORE(text, delimiter, [instance_num], [match_mode], [match_end], [if_not_found])
Trong đó, các tham số gồm:
text: Chuỗi đầu vào.delimiter: Dấu phân cách (có thể là nhiều ký tự, ví dụ ” – “).instance_num(tùy chọn):- Số dương = lần xuất hiện tính từ trái sang phải (1 = lần đầu).
- Số âm = tính từ phải sang trái (−1 = lần cuối).
match_mode(tùy chọn): 0 = phân biệt hoa/thường (mặc định), 1 = không phân biệt.match_end(tùy chọn): 0 = không khớp delimiter ở cuối/đầu chuỗi, 1 = cho phép khớp ở rìa (ít dùng).if_not_found(tùy chọn): Giá trị trả về nếu không tìm thấy delimiter (tránh lỗi).
Lưu ý: luôn bọc TRIM(...) nếu dữ liệu có khoảng trắng thừa.
Giả sử ô A2=HCM-HNI-DN-2025 Dưới đây là cách để sử dụng hàm TEXTAFTER/TEXTBEFORE:
| Mục đích | Công thức | Kết quả |
Lấy phần cuối sau dấu - đầu tiên |
=TEXTAFTER(A2,"-") |
HNI-DN-2025 |
Lấy phần đầu trước dấu - đầu tiên |
=TEXTBEFORE(A2,"-") |
HCM |
Lấy phần cuối sau dấu - cuối cùng |
=TEXTAFTER(A2,"-", -1) |
2025 |
Lấy phần đầu trước dấu - cuối cùng |
=TEXTBEFORE(A2,"-", -1) |
HCM-HNI-DN |
Lấy phần sau dấu - thứ 2 |
=TEXTAFTER(A2,"-", 2) |
DN-2025 |
Lấy phần giữa sau dấu - thứ 1 và thứ 2 |
=TEXTAFTER(TEXTBEFORE(A2,"-",2), "-",1) |
HNI |
3. Sử dụng kết hợp hàm FIND/SEARCH với hàm LEFT/RIGHT/MID
Khi vị trí cắt ký tự không cố định hoặc ta cũng không thể biết trước độ dài cần của phần ký tự cắt thì ta sẽ sử dụng kết hợp giữa hàm FIND/SEARCH với hàm LEFT/RIGHT/MID như sau:
- Tìm vị trí cần cắt (dấu phân cách/ký tự đặc biệt) bằng hàm FIND/SEARCH.
- Sau đó tính độ dài đoạn cần lấy dựa trên vị trí tìm được.
- Cắt chuỗi để lấy ký tự bằng hàm LEFT/RIGHT/MID
Ví dụ ô A2= INV-2025-000123 thì ta sẽ sử dụng kết hợp hàm LEFT/RIGHT/MID với hàm FIND/SEARCH như sau:
| Mục đích | Công thức | Kết quả |
Lấy phần trước dấu - đầu tiên |
=LEFT(A2, FIND("-", A2) - 1) |
INV |
Lấy phần sau dấu - đầu tiên |
=RIGHT(A2, LEN(A2) - FIND("-", A2)) |
2025-000123 |
Lấy phần giữa hai dấu - |
=MID(A2,FIND("-",A2)+1,FIND("-",A2,FIND("-",A2)+1) - FIND("-",A2) - 1) |
2025 |
4. Kết hợp hàm IF với hàm LEFT/RIGHT/MID để xử lý lấy ký tự theo điều kiện phức tạp
Khi cần lấy ký tự với điều kiện thỏa mãn nào đó, thì ta sẽ sử dụng hàm IF kết hợp với các hàm LEFT/RIGHT/MID để:
- Dùng hàm IF để bật/tắt việc cắt chuỗi theo điều kiện.
- Dùng hàm AND/OR để phối hợp nhiều điều kiện.
- Dùng hàm IFERROR/IFNA để chống lỗi khi vị trí không tồn tại.
Với ô dữ liệu A2= INV-2025-000123 ta sẽ tiến hành cắt lấy ký tự theo điều kiện với hàm IF như sau:
| Mục đích | Công thức | Kết quả |
| Nếu chuỗi bắt đầu bằng “INV” tiến hành lấy 6 ký tự cuối, nếu sai thì trả về tệp rỗng. | =IF(LEFT(A2,3)="INV", RIGHT(A2,6), "") |
000123 |
Lấy phấn trước dấu | nếu chuỗi chứa dấu đó. Nếu không trả về nguyên chuỗi. |
=IF(ISNUMBER(SEARCH("|",A2)), LEFT(A2, FIND("|",A2)-1), A2) |
INV-2025-000123 |
| Ví dụ có cột C = Nhóm: – Nếu Nhóm =”A” thì lấy 3 ký tự đầu SKU – Nếu Nhóm khác “A” thì lấy 3 ký tự cuối SKU |
=IF(C2="A", LEFT(A2,3), RIGHT(A2,3)) |
INV |
| Nếu (Nhóm = “A” HOẶC Giá > 100.000) → lấy phần sau dấu “-”, ngược lại để trống. | =IF(OR(C2="A",D2>100000),MID(A2,FIND("-",A2)+1, LEN(A2)-FIND("-",A2)),"") |
2025-000123 |
5. Các trường hợp lấy ký tự theo điều kiện trong thực tế hay gặp
Dưới đây là các trường hợp thực tế hay gặp và công thức hàm để lấy ký tự nhanh chóng để bạn có thể áp dụng trong 24 trường hợp thực tế:
Xem ngay 26 công thức lấy ký tự theo điều kiện mẫu
Trên đây là hướng dẫn cực chi tiết về các hàm lấy ký tự theo điều kiện trong Excel. Tóm lại, về cơ bản để lấy ký tự ta sẽ sử dụng các hàm chính là LEFT/RIGHT/MID kết hợp với các hàm FIND/SEARCH hoặc IF để lấy ký tự theo điều kiện từ cơ bản đến phức tạp. Chúc các bạn áp dụng thành công!



