Trong môi trường làm việc hiện đại, Excel không chỉ là một công cụ tính toán đơn thuần mà còn là một nền tảng mạnh mẽ để xử lý và biến đổi dữ liệu. Một trong những nhu cầu phổ biến mà người dùng thường gặp là trích xuất văn bản sau một ký tự nhất định – ví dụ như lấy phần tên người dùng sau dấu “@” trong địa chỉ email, hoặc lấy phần số điện thoại sau dấu “-”. Bài viết này sẽ cung cấp cho bạn một hướng dẫn chi tiết, từ các công thức cơ bản đến các giải pháp nâng cao bằng Power Query và VBA, giúp bạn tự tin xử lý mọi tình huống “excel extract text after character”.
Có thể bạn quan tâm: Không Xuống Dòng Được Trong Excel: Nguyên Nhân, Giải Pháp Và Cách Tối Ưu Hóa Công Việc
1. Hiểu Rõ Yêu Cầu và Các Trường Hợp Thông Thường
Trước khi bắt tay vào viết công thức, chúng ta cần xác định rõ:
| Trường hợp | Ký tự phân tách | Ví dụ dữ liệu | Kết quả mong muốn |
|---|---|---|---|
| “@” | nguyen.van@example.com | example.com | |
| Mã sản phẩm | “-” | SP-2026-001 | 2026-001 |
| Địa chỉ | “/” | Hà Nội/Quận 1 | Quận 1 |
| Nhiều ký tự | “_” (đầu tiên) | 2021_12_31_report | 12_31_report |
Các trường hợp trên có chung một điểm: cần lấy phần văn bản nằm sau vị trí đầu tiên (hoặc cuối cùng) của ký tự phân tách. Tùy vào yêu cầu, chúng ta có thể muốn:
- Lấy phần sau ký tự đầu tiên (thường dùng hàm
FINDhoặcSEARCH). - Lấy phần sau ký tự cuối cùng (sử dụng hàm
LOOKUPhoặcLENkết hợpSUBSTITUTE). - Lấy phần sau một chuỗi ký tự dài hơn (ví dụ “END”).
Có thể bạn quan tâm: Excel Encountered Errors During Save: Nguyên Nhân, Giải Pháp Và Cách Phòng Ngừa Khi Làm Việc Với Microsoft Excel
2. Công Thức Cơ Bản Với Hàm TEXT và FIND
2.1. Lấy Văn Bản Sau Ký Tự Đầu Tiên
Giả sử dữ liệu nằm ở ô A2, ký tự cần tách là “@”. Công thức:
=MID(A2, FIND("@", A2) + 1, LEN(A2) - FIND("@", A2))
Giải thích:
FIND("@", A2)trả về vị trí của ký tự “@”.+1di chuyển con trỏ sang ký tự ngay sau “@”.LEN(A2) - FIND("@", A2)tính độ dài phần còn lại.MIDtrích xuất chuỗi bắt đầu từ vị trí đã tính và với độ dài xác định.
2.2. Xử Lý Khi Ký Tự Không Tồn Tại
Nếu ký tự không xuất hiện, FIND sẽ trả lỗi #VALUE!. Để tránh lỗi, dùng IFERROR:
=IFERROR(MID(A2, FIND("@", A2) + 1, LEN(A2) - FIND("@", A2)), "")
Kết quả sẽ trả về chuỗi rỗng nếu không có “@”.
2.3. Lấy Văn Bản Sau Ký Tự Cuối Cùng
Khi có nhiều dấu “-” và muốn lấy phần sau dấu cuối cùng (ví dụ SP-2026-001 → 001), ta dùng:
=RIGHT(A2, LEN(A2) - FIND("@", SUBSTITUTE(A2, "-", "@", LEN(A2) - LEN(SUBSTITUTE(A2, "-", "")))))
Công thức trên thực hiện:
SUBSTITUTE(A2, "-", "")loại bỏ tất cả dấu “-”.LEN(A2) - LEN(...)cho biết số lần xuất hiện của “-”.SUBSTITUTE(A2, "-", "@", lần)thay ký tự thứlần(lần cuối) bằng “@”.FIND("@", ...)tìm vị trí dấu “@” (tức là dấu “-” cuối cùng).RIGHTlấy phần còn lại sau vị trí đó.
Có thể bạn quan tâm: Hướng Dẫn Tải Và Cài Đặt Microsoft Excel Cho Windows 10: Tất Cả Những Điều Bạn Cần Biết
3. Sử Dụng Hàm TEXTAFTER (Excel 365/2026)
Excel 365 và Excel 2026 đã giới thiệu hàm TEXTAFTER, giúp công việc trở nên đơn giản hơn rất nhiều.
3.1. Cú Pháp Cơ Bản
=TEXTAFTER(A2, "@")
- Tham số 1: ô chứa chuỗi.
- Tham số 2: ký tự hoặc chuỗi phân tách.
- Kết quả: phần sau ký tự đầu tiên.
3.2. Lấy Sau Ký Tự Cuối Cùng
=TEXTAFTER(A2, "-", -1)
Tham số thứ ba -1 chỉ định “lấy sau ký tự cuối cùng”.
3.3. Xử Lý Khi Không Tìm Thấy Ký Tự
=IFERROR(TEXTAFTER(A2, "@"), "")
4. Power Query: Xử Lý Dữ Liệu Lớn Và Tự Động Hóa
Khi dữ liệu có hàng nghìn, hàng triệu dòng, việc dùng công thức trong ô sẽ làm chậm workbook. Power Query (Get & Transform) cho phép thực hiện thao tác trích xuất trong giai đoạn nhập dữ liệu, chỉ cần một lần thiết lập.
4.1. Bước Nhập Dữ Liệu
- Chọn bảng dữ liệu →
Data→From Table/Range. - Power Query Editor sẽ mở ra.
4.2. Thêm Cột Tùy Chỉnh
Trong Power Query Editor:
- Chọn
Add Column→Custom Column. - Đặt tên cột, ví dụ: Domain.
- Nhập công thức M:
= if Text.Contains(Email, "@") then Text.AfterDelimiter(Email, "@") else null
- Giải thích:
Text.Containskiểm tra sự tồn tại của “@”.Text.AfterDelimitertrả về phần sau ký tự.
4.3. Lấy Sau Ký Tự Cuối Cùng
Nếu cần phần sau dấu “-” cuối cùng:
= if Text.Contains(Mã, "-") then Text.AfterDelimiter(Mã, "-", {Occurrence.Last}) else null
Occurrence.Lastchỉ định lấy sau ký tự cuối cùng.
4.4. Áp Dụng và Đóng

Có thể bạn quan tâm: Excel Error “not Enough Memory”: Nguyên Nhân, Hậu Quả Và Cách Khắc Phục Chi Tiết
Sau khi tạo cột, nhấn Close & Load để đưa dữ liệu trở lại Excel. Các thay đổi sẽ được lưu trong truy vấn, giúp bạn cập nhật dữ liệu nguồn mà không cần viết lại công thức.
5. VBA: Tự Động Hóa Nhiều Bước Và Tạo Hàm Người Dùng
Khi công việc yêu cầu tự động hóa trên nhiều sheet, hoặc cần một hàm tùy chỉnh có thể dùng trực tiếp trong công thức, VBA là giải pháp mạnh mẽ.
5.1. Hàm VBA Lấy Sau Ký Tự Đầu Tiên
- Nhấn
ALT + F11→Insert→Module. - Dán mã:
Function TextAfterChar(ByVal txt As String, ByVal delimiter As String) As String Dim pos As Long pos = InStr(1, txt, delimiter, vbBinaryCompare) If pos > 0 Then TextAfterChar = Mid(txt, pos + Len(delimiter)) Else TextAfterChar = "" End If
End Function
- Lưu và trở lại Excel.
- Sử dụng trong ô:
=TextAfterChar(A2, "@").
5.2. Hàm VBA Lấy Sau Ký Tự Cuối Cùng
Function TextAfterLastChar(ByVal txt As String, ByVal delimiter As String) As String Dim pos As Long pos = InStrRev(txt, delimiter, -1, vbBinaryCompare) If pos > 0 Then TextAfterLastChar = Mid(txt, pos + Len(delimiter)) Else TextAfterLastChar = "" End If
End Function
InStrRevtìm vị trí cuối cùng của ký tự.- Gọi công thức:
=TextAfterLastChar(A2, "-").
5.3. Macro Tự Động Điền Cột
Nếu muốn áp dụng cho một cột toàn bộ:
Sub FillAfterDelimiter() Dim rng As Range, cell As Range Dim delim As String delim = InputBox("Nhập ký tự phân tách:", "Delimiter") Set rng = Selection ' Người dùng chọn cột dữ liệu For Each cell In rng If cell.Value <> "" Then cell.Offset(0, 1).Value = TextAfterChar(cell.Value, delim) End If Next cell
End Sub
- Chọn cột dữ liệu, chạy macro → kết quả sẽ được ghi vào cột bên phải.
6. Các Mẹo Thực Tiễn Khi Làm Việc Với Văn Bản
- Xử lý khoảng trắng: Dùng
TRIMhoặcTEXTAFTER(..., , , Trim:=True)để loại bỏ khoảng trắng thừa. - Phân biệt chữ hoa/thường:
FINDlà case‑sensitive,SEARCHkhông. Khi dùngTEXTAFTER, mặc định không phân biệt. - Xử lý ký tự đặc biệt: Nếu ký tự là “” hoặc “?” (wildcards), dùng
SUBSTITUTEđể thay bằng ký tự tạm thời trước khi tìm. - Kiểm tra lỗi: Luôn bao bọc công thức bằng
IFERRORhoặcIFNAđể tránh #VALUE! làm hỏng báo cáo. - Hiệu suất: Tránh lồng quá nhiều hàm trong một công thức trên hàng triệu dòng; ưu tiên Power Query hoặc VBA.
7. So Sánh Các Phương Pháp
| Phương pháp | Độ phức tạp | Hiệu suất | Tính năng nâng cao | Thích hợp cho |
|---|---|---|---|---|
| Công thức (FIND, MID) | Trung bình | Tốt cho <10k dòng | Giới hạn | Người dùng không có Office 365 |
| TEXTAFTER (365/2026) | Rất đơn giản | Tốt | Hỗ trợ Occurrence, Trim | Người dùng mới |
| Power Query | Trung bình (cần học M) | Rất tốt cho dữ liệu lớn | Thêm transform, merge | Dữ liệu >100k dòng |
| VBA | Phức tạp (lập trình) | Rất tốt nếu tối ưu | Tự động hoá, tạo hàm tùy chỉnh | Nhiệm vụ lặp lại, macro |
8. Ví Dụ Thực Tế Trong Doanh Nghiệp
8.1. Phân Tách Email Để Lấy Domain
- Mục tiêu: Tạo báo cáo số lượng người dùng theo domain.
- Giải pháp: Dùng
TEXTAFTER(A2, "@")hoặc Power QueryText.AfterDelimiter. - Kết quả: Dữ liệu domain được nhóm, dùng PivotTable để thống kê.
8.2. Lấy Mã Khu Vực Từ Mã Sản Phẩm
- Mã sản phẩm:
VN-HN-2026-001 - Yêu cầu: Lấy phần “HN”.
- Công thức:
=MID(A2, FIND("-", A2) + 1, FIND("-", A2, FIND("-", A2) + 1) - FIND("-", A2) - 1) - Hoặc: Power Query
Text.BetweenDelimiters(Mã, "-", "-").
8.3. Tách Số Điện Thoại Sau Dấu Gạch Nối
- Dữ liệu:
+84-912-345-678 - Công thức:
=TEXTAFTER(A2, "-")→912-345-678 - Nếu cần lấy phần cuối cùng:
=TEXTAFTER(A2, "-", -1)→678.
9. Kết Luận
Việc trích xuất văn bản sau một ký tự trong Excel không còn là một thách thức khi bạn nắm vững các công cụ sẵn có:
- Công thức truyền thống (
FIND,MID,RIGHT) phù hợp cho các tác vụ nhanh, dữ liệu vừa phải. - TEXTAFTER của Office 365/2026 mang lại giải pháp ngắn gọn, dễ đọc.
- Power Query là “cây bút” mạnh mẽ cho dữ liệu lớn, cho phép bạn lưu lại quy trình và tái sử dụng.
- VBA mở ra khả năng tự động hoá toàn diện, tạo hàm tùy chỉnh và macro.
Hãy lựa chọn công cụ phù hợp với khối lượng công việc và môi trường làm việc của bạn. Khi đã thành thạo, bạn sẽ giảm đáng kể thời gian xử lý dữ liệu, tăng độ chính xác và tạo ra các báo cáo chuyên nghiệp hơn. Chúc bạn thành công trong mọi dự án Excel!

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