Chào mọi người,
Dạo này mình làm báo cáo trên Power BI hay gặp vấn đề với dữ liệu chuỗi chứa các ký tự đặc biệt như dấu nháy đơn, nháy kép, ký tự xuống dòng (
), hoặc các ký tự không hiển thị được. Những ký tự này đôi khi gây lỗi khi mình thực hiện các phép biến đổi dữ liệu hoặc khi hiển thị trên biểu đồ.
Mình đã thử một vài cách và muốn chia sẻ lại để mọi người cùng tham khảo:
- Sử dụng hàm Replace trong Power Query: Đây là cách đơn giản và hiệu quả nhất. Trong Power Query Editor, chọn cột chứa dữ liệu chuỗi, vào tab Transform, chọn Replace Values.
- Để thay thế một ký tự cụ thể, ví dụ dấu nháy đơn (
'), nhập'vào ô Value To Find và để trống ô Replace With để xóa bỏ hoặc nhập một ký tự khác nếu muốn thay thế. - Để xử lý ký tự xuống dòng (
), bạn có thể thử nhập trực tiếpvào ô Value To Find. Nếu không được, bạn có thể cần tìm mã ASCII hoặc Unicode của ký tự đó và dùng hàm Text.From kết hợp với Character.FromNumber nếu cần. Tuy nhiên, cách phổ biến hơn là dùng Replace với Value To Find là(ký tự xuống dòng dạng HTML entity) hoặcCHAR(10)trong Excel (nhưng trong Power BI bạn có thể cần tìm ký tự tương đương). - Sử dụng hàm Text.Replace trong M language: Nếu bạn muốn linh hoạt hơn hoặc xử lý nhiều ký tự cùng lúc, có thể viết công thức M trực tiếp. Ví dụ, để xóa dấu nháy đơn và dấu nháy kép:
= Text.Replace(Text.Replace([TenCotDuLieu], "'", ""), "\"", "")- Sử dụng DAX (ít dùng cho việc làm sạch ban đầu): DAX thường dùng cho tính toán sau khi dữ liệu đã được làm sạch. Tuy nhiên, nếu cần xử lý trong một measure hoặc calculated column, bạn có thể dùng hàm
SUBSTITUTE.
Hoặc: NewColumn = SUBSTITUTE(SUBSTITUTE(Sheet1[TenCotDuLieu], "'", ""), "\"", "")Mình thường ưu tiên xử lý trong Power Query vì nó ảnh hưởng đến toàn bộ quá trình tải và biến đổi dữ liệu. Cách này giúp dữ liệu sạch sẽ ngay từ đầu.
Không biết có anh em nào có cách nào hay hơn hoặc gặp trường hợp phức tạp hơn thì chia sẻ thêm nhé!