Hàm TEXTSPLIT trong Excel: tách chuỗi văn bản bằng dấu phân cách

  • Chia Sẻ Cái Này
Michael Brown

Hướng dẫn chỉ ra cách sử dụng hàm TEXTSPLIT hoàn toàn mới để tách các chuỗi trong Excel 365 theo bất kỳ dấu phân cách nào mà bạn chỉ định.

Có thể có nhiều tình huống khác nhau khi bạn cần tách các ô trong Excel. Trong các phiên bản trước, chúng tôi đã được trang bị một số công cụ để hoàn thành tác vụ, chẳng hạn như Chuyển văn bản thành Cột và Điền Flash. Giờ đây, chúng tôi cũng có một hàm đặc biệt cho việc này, TEXTSPLIT, có thể tách một chuỗi thành nhiều ô trên các cột hoặc/và hàng dựa trên các tham số mà bạn chỉ định.

    Hàm TEXTSPLIT của Excel

    Hàm TEXTSPLIT trong Excel phân tách các chuỗi văn bản bằng một dấu phân cách nhất định trên các cột hoặc/và hàng. Kết quả là một mảng động tự động tràn vào nhiều ô.

    Hàm nhận tối đa 6 đối số, chỉ yêu cầu hai đối số đầu tiên.

    TEXTSPLIT(text, col_delimiter, [row_delimiter], [ignore_empty], [match_mode], [pad_with])

    văn bản (bắt buộc) - văn bản cần tách. Có thể được cung cấp dưới dạng tham chiếu ô hoặc chuỗi.

    col_delimiter (bắt buộc) - (các) ký tự cho biết vị trí phân chia văn bản trên các cột. Nếu bị bỏ qua, dấu phân cách hàng phải được xác định.

    dấu phân cách hàng (tùy chọn) - (các) ký tự cho biết vị trí phân chia văn bản trên các hàng.

    ignore_empty (tùy chọn) - chỉ định có bỏ qua các giá trị trống hay không:

    • FALSE (mặc định) -tạo các ô trống cho các dấu phân cách liên tiếp không có giá trị ở giữa.
    • TRUE - bỏ qua các giá trị trống, tức là không tạo các ô trống cho hai hoặc nhiều dấu phân cách liên tiếp.

    match_mode (tùy chọn) - xác định phân biệt chữ hoa chữ thường cho dấu phân cách. Được bật theo mặc định.

    • 0 (mặc định) - phân biệt chữ hoa chữ thường
    • 1 - phân biệt chữ hoa chữ thường

    pad_with (tùy chọn ) - một giá trị để sử dụng thay cho các giá trị bị thiếu trong mảng hai chiều. Giá trị mặc định là lỗi #N/A.

    Ví dụ: để chia một chuỗi văn bản trong A2 thành nhiều ô bằng cách sử dụng dấu phẩy và dấu cách làm dấu phân cách, công thức là:

    =TEXTSPLIT(A2, ", ")

    Tính khả dụng của TEXTSPLIT

    Hàm TEXTSPLIT chỉ khả dụng trong Excel cho Microsoft 365 (Windows và Mac) và Excel cho web.

    Mẹo:

    • Trong các phiên bản Excel không có chức năng TEXTSPLIT (ngoài Excel 365), bạn có thể sử dụng trình hướng dẫn Chuyển văn bản thành cột để tách ô.
    • Để thực hiện tác vụ đảo ngược, tức là nối nội dung của nhiều ô thành một bằng cách sử dụng một dấu phân cách nhất định, TEXTJOIN là chức năng được sử dụng.

    Công thức TEXTSPLIT cơ bản để tách một ô trong Excel

    Để bắt đầu, hãy xem cách sử dụng TEXTSPLIT công thức ở dạng đơn giản nhất để phân tách một chuỗi văn bản bằng một dấu phân cách cụ thể.

    Tách một ô theo chiều ngang giữa các cột

    Để chia nội dung của một ô nhất định thành nhiều cột, hãy cung cấp mộttham chiếu đến ô chứa chuỗi gốc cho đối số ( văn bản ) đầu tiên và dấu phân cách đánh dấu điểm sẽ xảy ra phân tách cho đối số ( col_delimiter ) thứ hai.

    Ví dụ: để phân tách chuỗi trong A2 theo chiều ngang bằng dấu phẩy, công thức là:

    =TEXTSPLIT(A2, ",")

    Đối với dấu phân cách, chúng tôi sử dụng dấu phẩy đặt trong dấu ngoặc kép (",") .

    Kết quả là mỗi mục được phân tách bằng dấu phẩy sẽ đi vào một cột riêng lẻ:

    Tách ô theo chiều dọc trên các hàng

    Để chia văn bản trên nhiều hàng, cột thứ ba đối số ( row_delimiter ) là nơi bạn đặt dấu phân cách. Đối số thứ hai ( col_delimiter ) được bỏ qua trong trường hợp này.

    Ví dụ: để tách các giá trị trong A2 thành các hàng khác nhau, công thức là:

    =TEXTSPLIT(A2, ,",")

    Xin lưu ý rằng, trong cả hai trường hợp, công thức chỉ được nhập vào một ô (C2). Trong các ô lân cận, các giá trị được trả về sẽ tự động tràn ra. Mảng kết quả (được gọi là phạm vi tràn) được đánh dấu bằng đường viền màu xanh cho biết rằng mọi thứ bên trong nó được tính toán theo công thức ở ô phía trên bên trái.

    Tách văn bản theo chuỗi con

    Trong nhiều trường hợp, các giá trị trong chuỗi nguồn được phân tách bằng một dãy ký tự, dấu phẩy và khoảng trắng là một ví dụ điển hình. Để xử lý tình huống này, hãy sử dụng một chuỗi con cho dấu phân cách.

    Ví dụ: để tách văn bản trong A2 thành nhiều cộtbằng dấu phẩy và khoảng trắng, hãy sử dụng chuỗi ", " cho col_delimiter .

    =TEXTSPLIT(A2, ", ")

    Công thức này chuyển đến B2, sau đó bạn sao chép nó xuống qua nhiều các tế bào khi cần thiết.

    Tách chuỗi thành các cột và hàng cùng một lúc

    Để chia một chuỗi văn bản thành các hàng và cột cùng một lúc, hãy xác định cả hai dấu phân cách trong công thức TEXTSPLIT của bạn.

    Ví dụ: để chia chuỗi văn bản trong A2 thành các cột và hàng, chúng tôi cung cấp:

    • Dấu bằng ("=") cho col_delimiter
    • Dấu phẩy và dấu dấu cách (",") cho row_delimiter

    Công thức hoàn chỉnh có dạng sau:

    =TEXTSPLIT(A2, "=", ", ")

    Kết quả là 2-D mảng gồm 2 cột và 3 hàng:

    Phân tách các ô bằng nhiều dấu phân cách

    Để xử lý nhiều dấu phân cách hoặc không nhất quán trong chuỗi nguồn, hãy sử dụng hằng số mảng như {"x","y" ,"z"} cho đối số dấu phân cách.

    Trong ảnh chụp màn hình bên dưới, văn bản trong A2 được phân tách bằng cả dấu phẩy (",") và dấu chấm phẩy (;") có và không có dấu cách. Để chia chuỗi theo chiều dọc thành các hàng theo tất cả 4 biến thể của dấu phân cách, công thức là:

    =TEXTSPLIT(A2, , {",",", ",";","; "})

    Hoặc, bạn chỉ có thể bao gồm dấu phẩy (",") và dấu chấm phẩy ("; ") trong mảng, sau đó loại bỏ các khoảng trắng thừa với sự trợ giúp của hàm TRIM:

    =TRIM(TEXTSPLIT(A2, , {",",";"}))

    Tách văn bản bỏ qua các giá trị trống

    Nếu chuỗi chứa hai hoặc nhiều dấu phân cách liên tiếp không có giá trị giữa chúng, bạn có thể chọn có bỏ qua dấu phân cách trống đó hay khôngcác giá trị hay không. Hành vi này được kiểm soát bởi tham số ignore_empty thứ tư, mặc định là FALSE.

    Theo mặc định, hàm TEXTSPLIT không bỏ qua các giá trị trống. Hành vi mặc định hoạt động độc đáo đối với dữ liệu có cấu trúc như trong ví dụ bên dưới.

    Trong bảng mẫu này, điểm số bị thiếu trong một số chuỗi. Công thức TEXTSPLIT với đối số ignore_empty bị bỏ qua hoặc được đặt thành FALSE sẽ xử lý hoàn hảo trường hợp này, tạo một ô trống cho mỗi giá trị trống.

    =TEXTSPLIT(A2, ", ")

    Hoặc

    =TEXTSPLIT(A2, ", ", FALSE)

    Kết quả là tất cả các giá trị xuất hiện trong các cột thích hợp.

    Trong trường hợp chuỗi của bạn chứa dữ liệu đồng nhất, có thể có lý do để bỏ qua các giá trị trống. Đối với điều này, hãy đặt đối số ignore_empty thành TRUE hoặc 1.

    Ví dụ: để chia t các chuỗi bên dưới, đặt mỗi kỹ năng trong một ô riêng biệt không có khoảng trống, công thức là:

    =TEXTSPLIT(A2, ", ", ,TRUE)

    Trong trường hợp này, các giá trị bị thiếu giữa các dấu phân cách liên tiếp bị bỏ qua hoàn toàn:

    Việc tách ô phân biệt chữ hoa chữ thường hoặc chữ hoa chữ thường

    Để kiểm soát trường hợp- độ nhạy của dấu phân cách, hãy sử dụng đối số thứ năm, match_mode .

    Theo mặc định, match_mode được đặt thành 0, làm cho TEXTSPLIT phân biệt chữ hoa chữ thường .

    Trong ví dụ này, các số được phân tách bằng chữ "x" viết thường và chữ "X" viết hoa.

    Công thức có phân biệt chữ hoa chữ thường mặc định chỉ chấp nhận chữ thường "x "nhưdấu phân cách:

    =TEXTSPLIT(A2, " x ")

    Xin lưu ý rằng dấu phân cách có khoảng trắng ở cả hai bên của chữ " x " để ngăn các khoảng trắng ở đầu và cuối trong kết quả.

    Để tắt phân biệt chữ hoa chữ thường, bạn cung cấp 1 cho match_mode để buộc công thức TEXTSPLIT bỏ qua chữ hoa chữ thường:

    =TEXTSPLIT(A2, " x ", , ,1)

    Bây giờ, tất cả các chuỗi được phân tách chính xác bằng một trong hai dấu phân cách:

    Các giá trị bị thiếu trong mảng 2D

    Đối số cuối cùng của hàm TEXTSPLIT, pad_with , rất hữu ích trong trường hợp một hoặc nhiều giá trị bị thiếu trong chuỗi nguồn. Theo mặc định, khi một chuỗi như vậy được chia thành cả cột và hàng, Excel sẽ trả về lỗi #N/A thay vì các giá trị bị thiếu để không xáo trộn cấu trúc của mảng hai chiều.

    Trong chuỗi bên dưới, không có "=" ( col_delimiter ) sau "Điểm". Để giữ tính toàn vẹn của mảng kết quả, TEXTSPLIT xuất ra #N/A bên cạnh "Điểm".

    Để làm cho kết quả thân thiện hơn với người dùng, bạn có thể thay thế lỗi #N/A bằng bất kỳ giá trị nào bạn muốn. Chỉ cần nhập giá trị mong muốn vào đối số pad_with .

    Trong trường hợp của chúng tôi, đó có thể là dấu gạch nối ("-"):

    =TEXTSPLIT(A2, "=", ", ", , ,"-")

    Hoặc một chuỗi rỗng (""):

    =TEXTSPLIT(A2, "=", ", ", , ,"")

    Bây giờ bạn đã học được cách sử dụng thực tế của từng đối số của hàm TEXTSPLIT, hãy thảo luận về một số ví dụ nâng cao có thể giúp ích cho bạn đương đầu với những thử thách không nhỏ trong bảng tính Excel của bạn.

    Tách ngàythành ngày, tháng và năm

    Để chia ngày thành các đơn vị riêng lẻ, trước tiên, bạn cần chuyển đổi ngày thành văn bản vì hàm TEXTSPLIT xử lý chuỗi văn bản trong khi ngày trong Excel là số.

    Cách dễ nhất cách để chuyển đổi một giá trị số thành văn bản là sử dụng hàm TEXT. Chỉ cần đảm bảo cung cấp mã định dạng phù hợp cho ngày của bạn.

    Trong trường hợp của chúng tôi, công thức là:

    =TEXT(A2, "m/d/yyyy")

    Bước tiếp theo là lồng hàm trên vào đối số thứ nhất của TEXTSPLIT và nhập dấu phân tách tương ứng cho đối số thứ 2 hoặc thứ 3, tùy thuộc vào việc bạn đang phân tách giữa các cột hay hàng. Trong ví dụ này, đơn vị ngày được phân tách bằng dấu gạch chéo, vì vậy chúng tôi sử dụng "/" cho đối số col_delimiter :

    =TEXTSPLIT(TEXT(A2, "m/d/yyyy"), "/")

    Tách ô và xóa một số ký tự nhất định

    Hãy tưởng tượng điều này: bạn đã chia một chuỗi dài thành nhiều phần, nhưng mảng kết quả vẫn chứa một số ký tự không mong muốn, chẳng hạn như dấu ngoặc đơn trong ảnh chụp màn hình bên dưới:

    =TEXTSPLIT(A2, " ", "; ")

    Tách tắt dấu ngoặc đơn mở và đóng cùng một lúc, lồng hai hàm SUBSTITUTE vào nhau (mỗi hàm thay thế một dấu ngoặc đơn bằng một chuỗi trống) và sử dụng công thức TEXTSPLIT cho đối số văn bản của SUBSTITUTE bên trong:

    =SUBSTITUTE(SUBSTITUTE(TEXTSPLIT(A2, " ", "; "), "(", ""), ")", "")

    Mẹo. Nếu mảng cuối cùng chứa quá nhiều ký tự thừa, bạn có thể xóa chúng bằng một trong các phương pháp được mô tả trong bài viết này: Cách loại bỏ các ký tự không mong muốn trong Excel.

    Tách các chuỗi bỏ qua một số giá trị nhất định

    Giả sử bạn muốn tách các chuỗi bên dưới thành 4 cột: First name , Last name , Score Kết quả . Vấn đề là một số chuỗi chứa tiêu đề "Mr." hoặc "Ms.", do đó tất cả các kết quả đều sai:

    Giải pháp không rõ ràng nhưng khá đơn giản :)

    Ngoài các dấu phân cách hiện có, là dấu cách (" ") và dấu phẩy và dấu cách (", "), bạn bao gồm các chuỗi "Mr." và "Ms." trong hằng số mảng col_delimiter , để hàm sử dụng chính các tiêu đề để phân tách các chữ. Để bỏ qua các giá trị trống, bạn đặt đối số ignore_empty thành TRUE.

    =TEXTSPLIT(A2, {" ",", ","Mr. ","Ms. "}, ,TRUE)

    Bây giờ, kết quả hoàn toàn hoàn hảo!

    Các lựa chọn thay thế TEXTSPLIT

    Trong các phiên bản Excel không hỗ trợ chức năng TEXTSPLIT, bạn có thể chia các chuỗi bằng cách sử dụng các kết hợp khác nhau của hàm TÌM KIẾM / TÌM với TRÁI, PHẢI và MID. Cụ thể:

    • TÌM KIẾM không phân biệt chữ hoa chữ thường hoặc chữ TÌM phân biệt chữ hoa chữ thường xác định vị trí của dấu phân cách trong một chuỗi và
    • Các hàm LEFT, RIGHT và MID trích xuất một chuỗi con trước đó , sau hoặc giữa hai phiên bản của dấu phân cách.

    Trong trường hợp của chúng tôi, để phân tách các giá trị được phân tách bằng dấu phẩy và dấu cách , các công thức sẽ như sau.

    Để trích xuất tên:

    =LEFT(A2, SEARCH(",", A2, 1) -1)

    Để lấy điểm:

    =MID(A2, SEARCH(",", A2) + 2, SEARCH(",", A2, SEARCH(",",A2)+1) - SEARCH(",", A2) - 2)

    Để lấyresult:

    =RIGHT(A2, LEN(A2) - SEARCH(",",  A2, SEARCH(",",  A2) + 1)-1)

    Để biết giải thích chi tiết về logic của công thức, hãy xem Cách tách chuỗi theo ký tự hoặc mặt nạ.

    Xin lưu ý rằng không giống như mảng động TEXTSPLIT, các công thức này tuân theo phương pháp truyền thống một công thức một ô. Bạn nhập công thức vào ô đầu tiên rồi kéo xuống cột để sao chép sang các ô bên dưới.

    Ảnh chụp màn hình bên dưới hiển thị kết quả:

    Đó là cách tách ô trong Excel 365 bằng cách sử dụng TEXTSPLIT hoặc các giải pháp thay thế trong các phiên bản cũ hơn. Tôi cảm ơn bạn đã đọc và hy vọng sẽ gặp bạn trên blog của chúng tôi vào tuần tới!

    Sách bài tập thực hành để tải xuống

    Hàm TEXTSPLIT để tách chuỗi – ví dụ về công thức (tệp .xlsx)

    Michael Brown là một người đam mê công nghệ chuyên dụng với niềm đam mê đơn giản hóa các quy trình phức tạp bằng các công cụ phần mềm. Với hơn một thập kỷ kinh nghiệm trong ngành công nghệ, anh ấy đã trau dồi kỹ năng của mình trong Microsoft Excel và Outlook, cũng như Google Trang tính và Tài liệu. Blog của Michael dành để chia sẻ kiến ​​thức và chuyên môn của anh ấy với những người khác, cung cấp các mẹo và hướng dẫn dễ thực hiện để cải thiện năng suất và hiệu quả. Cho dù bạn là một chuyên gia dày dạn kinh nghiệm hay người mới bắt đầu, blog của Michael đều cung cấp những hiểu biết có giá trị và lời khuyên thiết thực để tận dụng tối đa những công cụ phần mềm thiết yếu này.