Chào mọi người,
Dạo này mình hay làm việc với Power Query để xử lý dữ liệu, thấy nó mạnh mẽ thật. Hôm nay mình muốn chia sẻ một mẹo nhỏ mà mình mới phát hiện ra, giúp biến đổi dữ liệu từ dạng bảng sang dạng chuỗi (text) một cách cực kỳ đơn giản.
Tình huống của mình là có một bảng dữ liệu, ví dụ:
| ID | Tên Sản Phẩm |
|-----|--------------|
| 1 | Laptop |
| 2 | Chuột |
| 3 | Bàn phím |Và mình muốn gom nó lại thành một chuỗi duy nhất, ví dụ: "1 - Laptop, 2 - Chuột, 3 - Bàn phím".
Trước đây mình hay nghĩ đến việc phải dùng các hàm phức tạp hoặc lặp đi lặp lại. Nhưng với Power Query, nó chỉ gói gọn trong vài bước:
- Tải dữ liệu vào Power Query Editor.
- Chọn cột ID, sau đó vào tab Add Column -> Custom Column.
- Trong cửa sổ Custom Column, nhập công thức sau:
Text.From([ID]) & " - " & [Tên Sản Phẩm]. Đặt tên cột mới là Gộp. - Bây giờ, chọn cột Gộp vừa tạo. Vào tab Transform -> Group By.
- Trong cửa sổ Group By:
- Chọn Basic.
- Ở ô New column name, đặt là Chuỗi Gộp.
- Ở ô Operation, chọn All Rows.
- Sau khi nhấn OK, bạn sẽ có một cột chứa các bảng con. Tiếp tục thêm một Custom Column nữa với công thức:
Text.Combine(Table.Column([Chuỗi Gộp], "Gộp"), ", "). - Cuối cùng, bạn chỉ cần giữ lại cột Chuỗi Gộp và loại bỏ các cột khác.
Kết quả bạn sẽ nhận được chuỗi mong muốn. Cách này rất hữu ích khi bạn cần gom nhiều dòng dữ liệu thành một ô duy nhất để báo cáo hoặc làm dữ liệu đầu vào cho các công cụ khác.
Có ai có cách nào hay hơn hoặc gặp trường hợp tương tự không, chia sẻ cho anh em học hỏi nhé!