TEXTSPLIT
TEXTSPLIT(chuỗi, dấu_ngăn_cột, [dấu_ngăn_dòng], [bỏ_ô_trống], [phân_biệt_hoa_thường], [điền_vào_chỗ_thiếu])Tách một chuỗi ra nhiều ô theo dấu ngăn, ngay bằng công thức. Là bản công thức của Text to Columns, khác ở chỗ dữ liệu nguồn thay đổi thì kết quả tự cập nhật, không phải làm lại từ đầu.
Các đối số
| Đối số | Bắt buộc? | Ý nghĩa |
|---|---|---|
| chuỗi | Bắt buộc | Ô cần tách. |
| dấu_ngăn_cột | Bắt buộc | Tách sang các cột theo dấu này. Đưa vào một mảng kiểu {",";";"} thì nhận nhiều dấu ngăn cùng lúc. |
| dấu_ngăn_dòng | Tuỳ chọn | Tách xuống các dòng theo dấu này, thường là CHAR(10) khi ô có xuống dòng. |
| bỏ_ô_trống | Tuỳ chọn | TRUE thì bỏ qua phần rỗng giữa hai dấu ngăn liền nhau. Mặc định FALSE. |
| điền_vào_chỗ_thiếu | Tuỳ chọn | Điền gì vào ô thiếu khi các dòng tách ra không đều nhau. Bỏ trống thì ra #N/A. |
Trả về gì
Một mảng TRÀN ra các ô bên cạnh. Ô bị chiếm chỗ thì cả công thức ra #SPILL!.
Ví dụ
=TEXTSPLIT(A2, "-")Tách mã HD-2026-0459 ra ba ô liền nhau
Kết quả: HD | 2026 | 0459
=TEXTSPLIT(A2, ",", CHAR(10))Đổi một khối chữ dán vào một ô thành bảng đủ dòng đủ cột
Kết quả: bảng 3 dòng 4 cột
=TEXTSPLIT(A2, " ", , TRUE)Tách họ tên có nhiều dấu cách liền nhau, bỏ qua phần rỗng
Kết quả: Nguyễn | Thị | Hoa
Lưu ý khi dùng
- Chỉ có ở Excel 365 và Excel 2024. Bản cũ thì dùng Data → Text to Columns, làm một lần chứ không tự cập nhật.
- Chừa sẵn chỗ trống bên phải và bên dưới trước khi gõ, không thì gặp #SPILL! ngay.
- Tách một cột dài thì đặt công thức ở dòng đầu rồi kéo xuống, mỗi dòng tràn riêng — nhớ để khoảng cách cột đủ rộng cho dòng có nhiều phần nhất.
Bẫy hay dính
Dữ liệu có dòng thiếu một phần, ví dụ có dòng ghi mã-năm-số nhưng có dòng chỉ ghi mã-số: các cột tách ra LỆCH NHAU giữa các dòng, số thứ tự nhảy vào cột năm. Bảng vẫn đầy dữ liệu nên không ai nghi, chỉ đối chiếu mới lộ. Trước khi tách hàng loạt, thêm cột đếm số dấu ngăn =LEN(A2)-LEN(SUBSTITUTE(A2,"-","")) rồi lọc xem có mấy giá trị khác nhau.