Menu

Tự động tách chuỗi ký tự phức tạp thành nhiều cột bằng Power Query

Tào Hải Vy 05/06/2026 23:18 505 lượt xem 2 trả lời

Chào mọi người,

Dạo này mình hay phải xử lý các file dữ liệu mà các cột thông tin được gộp chung vào một ô, ngăn cách bởi nhiều loại ký tự khác nhau như dấu phẩy, chấm phẩy, gạch ngang, hoặc thậm chí là ký tự đặc biệt. Việc dùng chức năng 'Text to Columns' trong Excel đôi khi không hiệu quả vì nó chỉ xử lý được một loại ký tự phân tách cố định.

Mình tình cờ khám phá ra Power Query có một cách xử lý cực kỳ mạnh mẽ cho trường hợp này. Thay vì phải ngồi tách thủ công hay dùng công thức phức tạp, mình có thể tự động hóa hoàn toàn quy trình này.

Cách làm như sau:

  • Đầu tiên, đưa dữ liệu vào Power Query (vào tab Data -> Get Data -> From File -> From Workbook/Text/CSV...).
  • Trong cửa sổ Power Query Editor, chọn cột chứa chuỗi ký tự cần tách.
  • Vào tab Add Column, chọn Custom Column.
  • Trong ô công thức, nhập vào hàm Text.SplitAny. Hàm này cho phép bạn chỉ định một tập hợp các ký tự phân tách. Ví dụ, nếu bạn muốn tách bởi dấu phẩy (,) và dấu chấm phẩy (;), bạn sẽ nhập: Text.SplitAny([TênCộtCủaBạn], {",", ";"}). Lưu ý thay [TênCộtCủaBạn] bằng tên cột thực tế của bạn.
  • Hàm này sẽ trả về một List chứa các phần tử đã được tách ra.
  • Tiếp theo, bạn có thể nhấp vào biểu tượng mũi tên đôi ở tiêu đề cột mới tạo để Expand to New Rows (nếu muốn mỗi phần tử là một dòng riêng) hoặc Expand to New Columns (nếu muốn mỗi phần tử là một cột riêng). Nếu chọn Expand to New Columns, Power Query sẽ tự động tạo các cột mới cho từng phần tử.
  • Cuối cùng, bạn có thể làm sạch các cột mới này (ví dụ: xóa khoảng trắng thừa bằng Trim) và Close & Load để đưa kết quả về Excel.

Cách này thực sự tiết kiệm rất nhiều thời gian và công sức, đặc biệt với những file dữ liệu lớn và phức tạp. Hy vọng chia sẻ này hữu ích cho các bạn!

4

Chào bạn,

Hay quá! Đúng là Text to Columns đôi khi bất lực thật, nhất là với dữ liệu "lộn xộn" như bạn mô tả. Mình cũng từng gặp tình huống tương tự và phải "vật lộn" với mấy cái ký tự đặc biệt. Power Query đúng là cứu cánh cho mấy bài toán này.

Bạn có thể chia sẻ kỹ hơn về cách bạn dùng Power Query để xử lý các loại ký tự phân tách khác nhau không? Ví dụ, nếu có cả dấu phẩy, chấm phẩy và gạch ngang trong cùng một ô thì mình làm thế nào để tách chúng ra đúng cột?

Rất mong được học hỏi thêm từ bạn!

3

Hay quá bạn ơi! Mình cũng đang "đau đầu" với mấy bài toán tách chuỗi phức tạp y chang bạn mô tả đây. Text to Columns đúng là chỉ giải quyết được phần nào thôi, nhất là khi ký tự ngăn cách "nhảy múa" đủ kiểu.

Power Query đúng là "vũ khí bí mật" cho mấy vụ này thật. Mình cũng hay dùng chức năng "Split Column by Delimiter" và tùy chỉnh các ký tự ngăn cách trong đó. Bạn có thể chia sẻ thêm cách bạn xử lý trường hợp có nhiều loại ký tự phân tách khác nhau trong cùng một ô không? Có mẹo nào để Power Query nhận diện và tách chúng một cách thông minh không? Rất hóng kinh nghiệm của bạn!

5

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

Đăng nhập Đăng ký