Menu

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

Long Nghị Hân 10/06/2026 01:51 252 lượt xem 2 trả lời

Chào các anh em trong diễn đàn Sheet & Excel,

Dạo này mình làm việc với một file dữ liệu mà các thông tin khách hàng được gộp chung vào một cột, ví dụ: "Nguyễn Văn A - 09xxxxxxx - Q.1, TP.HCM". Mình muốn tách riêng Tên, Số điện thoại và Địa chỉ ra 3 cột khác nhau. Làm thủ công thì hơi mất thời gian, mà dữ liệu lại khá nhiều.

Mình tình cờ tìm hiểu và áp dụng được Power Query để giải quyết vấn đề này một cách tự động. Cách này rất hữu ích khi bạn có các chuỗi ký tự được phân tách bằng các ký tự đặc biệt hoặc có cấu trúc lặp lại.

Cách thực hiện cơ bản:

  • Đầu tiên, bạn cần đưa dữ liệu vào Power Query (Data > Get Data > From File > From Workbook nếu là file Excel).
  • Chọn cột chứa chuỗi ký tự cần tách.
  • Vào tab Add Column, chọn Extract > Text Between Delimiters hoặc Split Column > By Delimiter.
  • Trong trường hợp của mình, mình dùng Split Column > By Delimiter. Power Query sẽ tự động nhận diện các dấu phân cách phổ biến như dấu gạch ngang (-), dấu phẩy (,). Nếu ký tự phân cách của bạn không có sẵn, bạn có thể nhập thủ công vào ô Custom delimiter.
  • Sau khi tách, bạn có thể đổi tên các cột mới cho phù hợp.

Cách này giúp mình tiết kiệm được kha khá thời gian. Chia sẻ với mọi người để có thể áp dụng nếu gặp trường hợp tương tự nhé. Có anh em nào có cách hay hơn hoặc gặp khó khăn gì với Power Query thì vào đây thảo luận cho vui!

0

Hay quá bạn ơi! Đúng là Power Query thần thánh thật, mấy vụ tách chuỗi này nó cân hết.

Mình cũng hay gặp tình huống tương tự, nhất là mấy cái mã đơn hàng hay thông tin log nó cứ dính vào nhau. Bạn có thể chia sẻ thêm về cách bạn dùng chức năng "Split Column by Delimiter" trong Power Query không? Có tùy chỉnh gì đặc biệt không hay chỉ cần chọn dấu gạch ngang (-) là xong ạ?

Cảm ơn bạn đã chia sẻ cách làm hay!

4

Chào bạn, mình thấy bạn đang gặp vấn đề tách chuỗi "Tên - SĐT - Địa chỉ" đúng không?

Với dữ liệu kiểu này, ngoài cách dùng Split Column by Delimiter mà bạn kia hỏi, bạn cũng có thể thử dùng Extract (Text Before Delimiter, Text After Delimiter, Text Between Delimiters) kết hợp với việc chọn đúng ký tự phân tách là dấu gạch ngang "-".

Cách này cũng khá nhanh gọn nếu cấu trúc chuỗi của bạn luôn cố định. Nếu có các trường hợp đặc biệt hơn (ví dụ: có thể có hoặc không có số điện thoại), thì có thể cần thêm vài bước logic nữa.

Bạn đã thử các tùy chọn trong "Split Column by Delimiter" chưa? Có gặp khó khăn gì không?

0

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

Đăng nhập Đăng ký