Menu

Xử lý dữ liệu dạng Text có dấu phẩy và xuống dòng trong Power Query

Lý Thịnh Hậu 02/04/2026 08:11 180 lượt xem 1 trả lời

Chào mọi người,

Dạo này mình làm việc với một nguồn dữ liệu mà các trường thông tin bị gộp chung vào một ô, lại còn ngăn cách bởi dấu phẩy và ký tự xuống dòng ( ). Nhìn nó cứ rối tung lên, ví dụ như thế này:

"Nguyễn Văn A, 1990, Hà Nội
Trần Thị B, 1985, TP. Hồ Chí Minh"

Mặc dù Excel có chức năng Text to Columns nhưng với Power Query thì lại nhanh và linh hoạt hơn nhiều, đặc biệt khi dữ liệu lớn hoặc cần xử lý định kỳ.

Đây là cách mình xử lý:

  1. Bước 1: Tách theo ký tự xuống dòng
    Đầu tiên, mình chọn cột chứa dữ liệu. Vào tab Add Column -> Custom Column. Đặt tên cột mới là 'Tách_XuongDong'. Công thức là:Text.Split([TênCộtDữLiệu], Character.FromNumber(10)). (Character.FromNumber(10) là mã cho ký tự xuống dòng).
  2. Bước 2: Mở rộng các dòng con
    Sau khi có cột mới dạng List, mình nhấp vào biểu tượng mũi tên đôi ở tiêu đề cột đó để Expand to New Rows.
  3. Bước 3: Tách theo dấu phẩy
    Bây giờ, mỗi dòng đã chứa một phần thông tin. Mình lại chọn cột vừa mở rộng, vào tab Add Column -> Custom Column. Đặt tên cột mới là 'Tách_Phay'. Công thức:Text.Split([TênCộtTáchXuongDong], ", "). (Lưu ý có dấu cách sau dấu phẩy nếu dữ liệu của bạn giống ví dụ).
  4. Bước 4: Mở rộng lần nữa
    Tương tự Bước 2, mình lại nhấp vào biểu tượng mũi tên đôi ở cột 'Tách_Phay' để Expand to New Rows.
  5. Bước 5: Đặt lại tên cột và làm sạch
    Cuối cùng, mình chỉ cần đặt lại tên cho các cột mới (ví dụ: 'Tên', 'Năm Sinh', 'Địa Chỉ') và loại bỏ các cột không cần thiết.

Cách này giúp mình tách được các thông tin rời rạc thành các cột riêng biệt một cách tự động. Rất tiện lợi!

Có ai có cách nào khác hay hơn thì chia sẻ cho mình với nhé!

3

Hay quá bạn ơi! Đúng là Power Query xử lý mấy vụ này ngon lành hơn Excel nhiều. Mình cũng hay gặp kiểu dữ liệu gộp chung thế này, nhìn đúng là nhức đầu.

Cách bạn tách theo ký tự xuống dòng trước rồi mới tách theo dấu phẩy là hợp lý rồi. Mình có thêm một cách nhỏ nữa để làm bước đầu tiên, có thể bạn thấy hữu ích:

Thay vì tách theo ký tự xuống dòng, mình có thể dùng Split Column by Delimiter, chọn dấu phẩy làm ký tự phân tách. Sau đó, ở mỗi cột mới tách ra, mình dùng chức năng Trim để loại bỏ khoảng trắng thừa và ký tự xuống dòng (nếu có) bám theo.

Bạn thấy cách này thế nào? Có vẻ cũng đơn giản phải không?

2

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

Đăng nhập Đăng ký