
Thêm chút đá lạnh...

Thêm chút đá lạnh...

Thêm chút đá lạnh...
"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(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)=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)=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!// 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)// 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"}// 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(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ấy// 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(text, delimiter, [instance_num], [match_mode], [match_end], [if_not_found])
// Tham số giống TEXTBEFORE, nhưng trả phần SAU delimiter// 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ả "")// 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ột// 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 formatThao 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 |
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 = -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.
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.
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.
Đăng nhập để tham gia bình luận
Đăng nhậpĐă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.
Khám phá thêm các bài viết cùng chủ đề
BYROW áp dụng LAMBDA cho từng hàng, BYCOL cho từng cột. Tính MAX, SUM, COUNT, TEXTJOIN mỗi hàng/cột chỉ với 1 công thức spill.
CELL trả về thông tin ô — format, vị trí, đường dẫn file. INFO trả về thông tin hệ thống — OS, Excel version, calc mode. Hai hàm metadata ít ai biết nhưng cực kỳ hữu ích.
WRAPCOLS gập theo cột, WRAPROWS gập theo hàng. Biến mảng 1D thành bảng 2D — tạo lịch tháng, chia nhóm, reshape dữ liệu chỉ với 1 công thức.
Tham gia khóa học E-Learning của Trà Đá Data để được hướng dẫn chi tiết từ A-Z với Case Study thực tế.
Tìm hiểu ngay