Chia sẻ
"TEXTSPLIT tách chuỗi thành mảng 2D, TEXTBEFORE/TEXTAFTER trích xuất chính xác. Parse CSV, URL, mã sản phẩm — tất cả bằng 1 công thức Excel 365."
TEXTSPLIT tách chuỗi thành mảng 2D theo delimiter hàng và cột. TEXTBEFORE lấy phần trước ký tự phân cách, TEXTAFTER lấy phần sau. Ba hàm này thay thế hàng chục công thức MID+FIND phức tạp, giúp xử lý văn bản trong Excel 365 trở nên đơn giản và mạnh mẽ.
TEXTSPLIT — Tách Chuỗi Thành Mảng 2D
Cú pháp đầy đủ
=TEXTSPLIT(text, col_delimiter, [row_delimiter], [ignore_empty], [match_mode], [pad_with])
text — Chuỗi cần tách
col_delimiter — Ký tự phân cách cột (hoặc mảng nhiều delimiter)
row_delimiter — Ký tự phân cách hàng (tùy chọn)
ignore_empty — TRUE = bỏ qua kết quả rỗng (mặc định FALSE)
match_mode — 0 = case-sensitive, 1 = case-insensitive
pad_with — Giá trị điền vào ô trống (mặc định #N/A)Ví dụ 1: Tách chuỗi CSV
=TEXTSPLIT("An,Bình,Chi,Dung", ",")
// Kết quả: {"An", "Bình", "Chi", "Dung"}
// Tự spill ngang thành 4 cột
// Thay thế: MID + FIND + SUBSTITUTE (cực kỳ phức tạp)Ví dụ 2: Tách thành 2D (hàng + cột)
=TEXTSPLIT(
"An,85,Giỏi;Bình,72,Khá;Chi,91,Giỏi",
",", // col delimiter
";" // row delimiter
)
// Kết quả mảng 3×3:
// {"An","85","Giỏi"; "Bình","72","Khá"; "Chi","91","Giỏi"}
// 1 chuỗi → bảng dữ liệu hoàn chỉnh!Ví dụ 3: Nhiều delimiter cùng lúc
// Tách bởi dấu phẩy, chấm phẩy, HOẶC pipe:
=TEXTSPLIT(A1, {",", ";", "|"})
// "An,Bình;Chi|Dung" → {"An", "Bình", "Chi", "Dung"}
// Mảng delimiter = OR logic (khớp BẤT KỲ cái nào)Ví dụ 4: Tách địa chỉ email
// Tách "user@company.com" thành username và domain:
=TEXTSPLIT("admin@tradadata.com", "@")
// Kết quả: {"admin", "tradadata.com"}
// Tách domain tiếp:
=TEXTSPLIT("admin@tradadata.com", {"@", "."})
// Kết quả: {"admin", "tradadata", "com"}Ví dụ 5: Parse CSV multiline
// A1 chứa nội dung file CSV (copy-paste vào):
=TEXTSPLIT(A1, ",", CHAR(10), TRUE)
// CHAR(10) = xuống dòng (LF)
// TRUE = ignore_empty (bỏ dòng trống)
// Biến text file thành bảng Excel ngay lập tức!TEXTBEFORE — Lấy Phần Trước Delimiter
Cú pháp
=TEXTBEFORE(text, delimiter, [instance_num], [match_mode], [match_end], [if_not_found])
instance_num — Lấy trước lần xuất hiện thứ n (mặc định 1, âm = đếm từ cuối)
match_end — TRUE = trả full text nếu không tìm thấy delimiter
if_not_found — Giá trị trả về khi không tìm thấyCác ví dụ thực tế
// Lấy họ từ "Nguyễn Văn An":
=TEXTBEFORE("Nguyễn Văn An", " ")
// → "Nguyễn" (trước space đầu tiên)
// Lấy tên (trước space cuối cùng):
=TEXTAFTER("Nguyễn Văn An", " ", -1)
// → "An"
// Lấy tên file (trước dấu chấm cuối):
=TEXTBEFORE("report-2026-Q1.final.xlsx", ".", -1)
// → "report-2026-Q1.final"
// Lấy extension:
=TEXTAFTER("report-2026-Q1.final.xlsx", ".", -1)
// → "xlsx"TEXTAFTER — Lấy Phần Sau Delimiter
Cú pháp
=TEXTAFTER(text, delimiter, [instance_num], [match_mode], [match_end], [if_not_found])
// Tham số giống TEXTBEFORE, nhưng trả phần SAU delimiterVí dụ nâng cao: Parse URL
// URL: "https://www.tradadata.com/blog/excel-tips?ref=nav"
// Lấy protocol:
=TEXTBEFORE(A1, "://")
// → "https"
// Lấy domain:
=TEXTBEFORE(TEXTAFTER(A1, "://"), "/")
// → "www.tradadata.com"
// Lấy path:
=TEXTBEFORE(TEXTAFTER(A1, "://"), "?")
// → "www.tradadata.com/blog/excel-tips"
// Lấy query string:
=TEXTAFTER(A1, "?", 1, 0, 0, "")
// → "ref=nav" (nếu không có ? → trả "")Kết Hợp 3 Hàm — Ứng Dụng Thực Tế
Parse mã sản phẩm có cấu trúc
// Mã: "PRD-2026-VN-001"
// Cấu trúc: TYPE-YEAR-COUNTRY-SEQ
=LET(
code, A2,
parts, TEXTSPLIT(code, "-"),
type, INDEX(parts, 1), // "PRD"
year, INDEX(parts, 2), // "2026"
country, INDEX(parts, 3), // "VN"
seq, INDEX(parts, 4), // "001"
HSTACK(type, year, country, seq)
)
// 1 công thức tách mã thành 4 cộtExtract JSON-like key-value
// Cell chứa: "name=An; age=28; city=HCM"
=LET(
text, A2,
pairs, TEXTSPLIT(text, "; "),
MAP(pairs, LAMBDA(p, TEXTAFTER(p, "=")))
)
// Kết quả: {"An", "28", "HCM"}
// Extract values từ mini key-value formatSo Sánh Với Cách Làm Cũ
Thao tác | Cách cũ (Excel 2019) | Cách mới (Excel 365) |
|---|---|---|
Tách CSV | MID+FIND+SUBSTITUTE nested | TEXTSPLIT(A1, ",") |
Lấy domain email | MID(A1, FIND("@",A1)+1, 999) | TEXTAFTER(A1, "@") |
Lấy extension file | RIGHT(A1, LEN-FIND(".",...)) | TEXTAFTER(A1, ".", -1) |
Tách họ tên | LEFT+FIND + MID+FIND | TEXTBEFORE + TEXTAFTER |
Câu Hỏi Thường Gặp (FAQ)
TEXTSPLIT có thể tách theo regex không?
Không trực tiếp. Tuy nhiên bạn có thể dùng mảng delimiter: TEXTSPLIT(A1, {",", ";", " "}) để tách theo nhiều ký tự cùng lúc. Nếu cần regex thực sự, hãy kết hợp với hàm REGEXREPLACE mới trong Excel 365 Insider.
instance_num âm nghĩa là gì?
instance_num = -1 nghĩa là đếm delimiter từ cuối chuỗi. TEXTBEFORE("a.b.c", ".", -1) → "a.b" (trước dấu chấm CUỐI). Rất hữu ích để lấy file extension hoặc tên cuối trong chuỗi dài.
TEXTSPLIT có trên Google Sheets không?
Google Sheets có hàm SPLIT(text, delimiter) tương tự nhưng đơn giản hơn — không hỗ trợ row_delimiter để tạo mảng 2D, không có ignore_empty, match_mode, pad_with. TEXTSPLIT mạnh hơn nhiều.
Tổng Kết
TEXTSPLIT biến chuỗi phẳng thành mảng 2D, TEXTBEFORE/TEXTAFTER trích xuất chính xác phần cần thiết. Ba hàm này thay thế hàng chục combo MID+FIND+SUBSTITUTE phức tạp. Kết hợp với MAP, LAMBDA, LET — bạn có thể parse bất kỳ cấu trúc văn bản nào: CSV, URL, mã sản phẩm, key-value pairs.
Bình luận
Đăng nhập để tham gia bình luận
Đăng nhậpNhận bài viết mới nhất
Đăng ký để nhận thông báo khi có bài viết mới. Không spam, chỉ kiến thức chất lượng.
Bài viết liên quan
Khám phá thêm các bài viết cùng chủ đề
