Menu

App script quản lý rủi ro cho cá nhân & doanh nghiệp với báo cáo chuẩn định dạng biểu đồ

Hỗ trợ xử lý dữ liệu lớn: Chia tách văn bản tự động theo ký tự phân tách

Lại Kỳ Diễm 07/04/2026 08:27 374 lượt xem 3 trả lời

Chào các bạn,

Dạo này mình có làm việc với một file Excel có dung lượng khá lớn, chứa rất nhiều dữ liệu dạng văn bản cần được tách ra thành các cột riêng biệt. Ví dụ, mình có một cột chứa địa chỉ email, và mình muốn tách phần tên người dùng (trước ký tự '@') và phần tên miền (sau ký tự '@') ra thành hai cột khác nhau. Hoặc có thể là tách họ và tên trong một ô.

Mình đã thử dùng chức năng 'Text to Columns' nhưng nó hơi thủ công, đặc biệt khi mình cần xử lý nhiều lần hoặc với các bộ dữ liệu khác nhau. Mình tự hỏi liệu có cách nào để làm việc này một cách tự động hơn không?

Liệu có hàm Excel nào hoặc một mẹo nhỏ nào có thể giúp mình thực hiện việc tách chuỗi văn bản dựa trên một ký tự phân tách (delimiter) nhất định một cách nhanh chóng và hiệu quả không? Ví dụ, nếu mình muốn tách chuỗi Nguyễn Văn A - Kế toán thành 3 phần: Nguyễn Văn AKế toán, với ký tự phân tách là -. Hoặc tách chuỗi user@example.com thành userexample.com với ký tự phân tách là @.

Mình tìm hiểu trên mạng thì thấy có các hàm như LEFT, RIGHT, MID, FIND, SEARCH, SUBSTITUTE... nhưng kết hợp chúng lại để xử lý trường hợp tổng quát thì hơi phức tạp. Có cao nhân nào có thể chỉ giáo một công thức hoặc một phương pháp đơn giản, hiệu quả không?

Rất mong nhận được sự giúp đỡ từ cộng đồng!

3

Chào bạn,

Vấn đề tách văn bản theo ký tự phân tách này đúng là khá phổ biến khi làm việc với dữ liệu lớn. Chức năng "Text to Columns" đôi khi hơi bất tiện thật.

Bạn đã thử dùng hàm TEXTSPLIT (có sẵn trong Excel 365 và Excel for the web) chưa? Hàm này cực kỳ mạnh mẽ cho việc tách văn bản theo ký tự hoặc chuỗi ký tự phân tách mà bạn chỉ định. Ví dụ, để tách email ra tên người dùng và tên miền, bạn chỉ cần dùng =TEXTSPLIT(A1, "@"), nó sẽ trả về hai cột tương ứng.

Nếu bạn đang dùng phiên bản Excel cũ hơn, thì việc kết hợp LEFT, RIGHT, FIND (hoặc SEARCH) là một giải pháp khác. Hoặc có thể xem xét VBA nếu cần xử lý tự động và lặp lại nhiều lần.

Bạn có thể chia sẻ thêm về phiên bản Excel bạn đang dùng và một vài ví dụ cụ thể hơn về định dạng dữ liệu không? Như vậy mình có thể tư vấn chính xác hơn.

4

Mình cũng hay gặp tình huống tương tự, xử lý dữ liệu lớn mà cứ phải "Text to Columns" thủ công thì nản thật.

Nếu bạn đang dùng Excel 365, thử ngay hàm TEXTSPLIT xem sao. Nó tách văn bản theo ký tự phân tách siêu nhanh và gọn. Ví dụ tách email ra làm hai cột thì chỉ cần =TEXTSPLIT(Ô_chứa_email, "@").

Còn nếu dùng phiên bản cũ hơn, thì kết hợp LEFT, RIGHT với FIND hoặc SEARCH cũng là cách hay. Bạn dùng phiên bản Excel nào vậy? Có thể chia sẻ thêm ví dụ dữ liệu để mọi người hình dung rõ hơn không?

5

Chào bạn,

Mình hiểu cảm giác khi làm việc với dữ liệu lớn và cần tách văn bản. "Text to Columns" đúng là hơi mất công nếu phải làm đi làm lại.

Ngoài "Text to Columns" và các hàm như LEFT/RIGHT/FIND, bạn đã bao giờ thử dùng Power Query chưa? Với Power Query, bạn có thể thiết lập một quy trình tách văn bản một lần duy nhất, sau đó chỉ cần làm mới dữ liệu là xong. Rất tiện lợi cho việc xử lý nhiều lần hoặc với các bộ dữ liệu khác nhau.

Bạn có thể chia sẻ một vài ví dụ về định dạng dữ liệu bạn đang gặp phải không? Để mọi người cùng xem và có thể gợi ý thêm.

4

Bạn cần đăng nhập để trả lời chủ đề này.

Đăng nhập Đăng ký