Cách Trích Xuất Văn Bản Sau Một Ký Tự Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao

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

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ợpKý tự phân táchVí dụ dữ liệuKết quả mong muốn
Email“@”nguyen.van@example.comexample.com
Mã sản phẩm“-”SP-2026-0012026-001
Địa chỉ“/”Hà Nội/Quận 1Quận 1
Nhiều ký tự“_” (đầu tiên)2021_12_31_report12_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:

  1. Lấy phần sau ký tự đầu tiên (thường dùng hàm FIND hoặc SEARCH).
  2. Lấy phần sau ký tự cuối cùng (sử dụng hàm LOOKUP hoặc LEN kết hợp SUBSTITUTE).
  3. Lấy phần sau một chuỗi ký tự dài hơn (ví dụ “END”).

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ự “@”.
  • +1 di chuyển con trỏ sang ký tự ngay sau “@”.
  • LEN(A2) - FIND("@", A2) tính độ dài phần còn lại.
  • MID trí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:

  1. SUBSTITUTE(A2, "-", "") loại bỏ tất cả dấu “-”.
  2. LEN(A2) - LEN(...) cho biết số lần xuất hiện của “-”.
  3. SUBSTITUTE(A2, "-", "@", lần) thay ký tự thứ lần (lần cuối) bằng “@”.
  4. FIND("@", ...) tìm vị trí dấu “@” (tức là dấu “-” cuối cùng).
  5. RIGHT lấy phần còn lại sau vị trí đó.

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

  1. Chọn bảng dữ liệu → Data → From Table/Range.
  2. 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.Contains kiểm tra sự tồn tại của “@”.
  • Text.AfterDelimiter trả 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.Last chỉ định lấy sau ký tự cuối cùng.

4.4. Áp Dụng và Đóng

Excel Extract Text After Character
Excel Extract Text After Character

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

  1. Nhấn ALT + F11 → Insert → Module.
  2. 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
  1. Lưu và trở lại Excel.
  2. 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
  • InStrRev tì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

  1. Xử lý khoảng trắng: Dùng TRIM hoặc TEXTAFTER(..., , , Trim:=True) để loại bỏ khoảng trắng thừa.
  2. Phân biệt chữ hoa/thường: FIND là case‑sensitive, SEARCH không. Khi dùng TEXTAFTER, mặc định không phân biệt.
  3. 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.
  4. Kiểm tra lỗi: Luôn bao bọc công thức bằng IFERROR hoặc IFNA để tránh #VALUE! làm hỏng báo cáo.
  5. 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ạpHiệu suấtTính năng nâng caoThích hợp cho
Công thức (FIND, MID)Trung bìnhTốt cho <10k dòngGiới hạnNgười dùng không có Office 365
TEXTAFTER (365/2026)Rất đơn giảnTốtHỗ trợ Occurrence, TrimNgười dùng mới
Power QueryTrung bình (cần học M)Rất tốt cho dữ liệu lớnThêm transform, mergeDữ liệu >100k dòng
VBAPhức tạp (lập trình)Rất tốt nếu tối ưuTự động hoá, tạo hàm tùy chỉnhNhiệ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 Query Text.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ó:

  1. 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.
  2. TEXTAFTER của Office 365/2026 mang lại giải pháp ngắn gọn, dễ đọc.
  3. 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.
  4. 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!

⚠️
LƯU Ý QUAN TRỌNG: Miễn trừ trách nhiệm: Mặc dù chúng tôi luôn nỗ lực để đảm bảo tính chính xác và cập nhật của thông tin, nhưng các quy định về giáo dục và tuyển sinh có thể thay đổi theo thời gian. BigSchool không chịu trách nhiệm về bất kỳ sai sót nào hoặc kết quả phát sinh từ việc sử dụng thông tin trên trang này. Độc giả nên liên hệ trực tiếp với nhà trường hoặc cơ quan chức năng để có thông tin mới nhất. Ngoài ra, BigSchool tuyệt đối không bán sản phẩm, khóa học hay cung cấp dịch vụ được nhắc đến trong bài.

Viết một bình luận