Chào các bác, dạo này em đang vật lộn với một mớ dữ liệu mà các thông tin cần tách ra lại nằm lộn xộn với đủ loại dấu phân cách khác nhau. Kiểu như có chỗ thì dấu phẩy, chỗ thì dấu chấm phẩy, có chỗ lại là dấu gạch ngang. Làm thủ công thì đúng là tốn thời gian kinh khủng.
Em có mò mẫm trên mạng và tìm ra một cách khá hay trong Power Query để xử lý vụ này mà không cần phải viết code M phức tạp. Đó là sử dụng kết hợp chức năng Split Column và một chút tùy chỉnh.
Cách làm cơ bản như sau:
- Đầu tiên, chọn cột chứa chuỗi ký tự bạn muốn tách.
- Vào tab Add Column, chọn Custom Column.
- Trong cửa sổ Custom Column, bạn nhập một tên cột mới (ví dụ: 'TachChuoi').
- Ở ô công thức, bạn dùng 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 cách. Ví dụ, nếu bạn muốn tách theo dấu phẩy (,) và dấu chấm phẩy (;), bạn sẽ gõ:Text.SplitAny([TenCotGoc], {",", ";"}). Lưu ý là các ký tự phân cách phải nằm trong một danh sách (list). - Sau khi tạo xong cột mới, bạn sẽ thấy một cột chứa List. Bạn có thể nhấp vào biểu tượng mở rộng ở tiêu đề cột này để tách các phần tử trong List thành các cột riêng biệt.
Cách này rất tiện vì bạn không cần phải nghĩ ra trình tự các dấu phân cách. Power Query sẽ tự động xử lý dựa trên những gì bạn cung cấp.
Có bác nào có cách nào hay hơn hoặc gặp trường hợp phức tạp hơn với vụ tách chuỗi này không, chia sẻ cho anh em học hỏi với ạ!