Menu

Biến đổi dữ liệu dạng Text chứa ký tự phân cách tùy chỉnh thành danh sách tách biệt trong Excel

Phùng Quý Phước 01/07/2026 12:20 337 lượt xem 3 trả lời

Chào các anh chị em trong diễn đàn,

Dạo này mình thường xuyên phải làm việc với các file dữ liệu mà các cột thông tin được gom lại thành một ô duy nhất, dùng các ký tự phân cách như dấu chấm phẩy (;), dấu gạch ngang (-), hoặc thậm chí là các ký tự lạ mà đôi khi không phải là dấu phẩy hay chấm phẩy thông thường. Ví dụ: "Sản phẩm A; Sản phẩm B; Sản phẩm C" hoặc "Mã SP1-Mã SP2-Mã SP3".

Việc này gây khó khăn khi muốn phân tích từng mục riêng lẻ. Mình đã thử dùng tính năng Text to Columns nhưng đôi khi ký tự phân cách không cố định hoặc quá phức tạp để thiết lập.

Gần đây, mình có tìm hiểu và phát hiện ra một cách khá hay để xử lý vấn đề này bằng Power Query. Cách này cho phép mình định nghĩa ký tự phân cách, kể cả khi nó không chuẩn và tự động tách thành các dòng riêng biệt. Rất hữu ích cho việc làm sạch và cấu trúc lại dữ liệu.

Đây là các bước cơ bản mình hay làm:

  • Chọn vùng dữ liệu cần xử lý.
  • Vào tab Data >> From Table/Range để mở Power Query Editor.
  • Trong Power Query Editor, chọn cột chứa dữ liệu dạng text.
  • Vào tab Home >> Split Column >> By Delimiter.
  • Trong hộp thoại hiện ra, chọn Custom và nhập ký tự phân cách của bạn vào ô.
  • Nhấn OK.
  • Nếu muốn mỗi mục thành một dòng riêng, bạn chọn lại cột vừa tách, vào Split Column >> Advanced options >> chọn Rows trong mục Split into.
  • Cuối cùng, nhấn Close & Load để đưa dữ liệu đã xử lý về Excel.

Cách này rất linh hoạt, đặc biệt khi dữ liệu nguồn không được chuẩn chỉnh. Có anh chị em nào có kinh nghiệm hay mẹo khác để xử lý dạng dữ liệu này không, chia sẻ thêm cho mọi người cùng học hỏi ạ?

1
Mình cũng hay gặp trường hợp này, đúng là "khó chịu" thật! Ngoài Text to Columns, bạn đã thử dùng hàm Power Query chưa? Công cụ này mạnh mẽ lắm, nó có thể xử lý được cả những ký tự phân cách "lạ" mà bạn nói. Chỉ cần import dữ liệu vào Power Query, chọn cột cần xử lý, rồi dùng chức năng "Split Column" theo ký tự là xong. Rất nhanh và tự động hóa được.
3

Chào bạn,

Mình rất hiểu tình huống của bạn. Đúng là khi gặp ký tự phân cách "lạ" thì Text to Columns đôi khi không phát huy hết tác dụng. Bạn có thể thử kết hợp một chút với các hàm như SUBSTITUTE để chuẩn hóa ký tự phân cách trước, sau đó mới dùng Text to Columns.

Hoặc như bạn kia có gợi ý, Power Query là một lựa chọn tuyệt vời cho trường hợp này, nhất là khi bạn cần xử lý nhiều file hoặc làm tự động hóa. Nó xử lý các ký tự phân cách rất linh hoạt.

Bạn có thể chia sẻ cụ thể hơn về "ký tự lạ" mà bạn gặp không? Biết đâu chúng ta có thể tìm ra giải pháp tối ưu hơn nữa!

3

Chào bạn,

Trường hợp của bạn mình cũng gặp nhiều rồi, đúng là "ám ảnh" với các ký tự phân cách này thật! Ngoài Text to Columns, mình thấy có một cách khác cũng khá hay là dùng hàm FILTERXML.

Bạn có thể thử tạo một cột phụ, dùng hàm SUBSTITUTE để chuẩn hóa các ký tự phân cách "lạ" về một dạng chung (ví dụ: dấu phẩy), sau đó dùng FILTERXML để tách chúng ra.

Ví dụ với dữ liệu "Sản phẩm A; Sản phẩm B; Sản phẩm C": ``excel =FILTERXML(""&SUBSTITUTE(A1,";","")&"","//item") ``

Cách này cũng khá hiệu quả và không cần dùng đến VBA hay Power Query nếu bạn chỉ cần xử lý nhanh một vài lần. Bạn thử xem sao nhé!

3

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

Đăng nhập Đăng ký