Chào các anh chị em trong diễn đàn,
Dạo này mình hay làm việc với các nguồn dữ liệu mà trong đó có chứa các cấu trúc lồng nhau, ví dụ như JSON trả về từ API hoặc các file Excel có bảng lồng bảng. Việc xử lý ban đầu trên các cấu trúc này khá là khó khăn nếu chỉ dùng các hàm Excel thông thường.
Tuy nhiên, từ khi biết đến Power Query, mọi thứ trở nên đơn giản hơn rất nhiều. Mình muốn chia sẻ một chút kinh nghiệm về cách mình xử lý các dữ liệu lồng nhau này:
- Mở rộng (Expand) cột Table/Record: Đây là chức năng cơ bản nhất. Khi bạn có một cột chứa Table hoặc Record, chỉ cần click vào biểu tượng mũi tên đôi ở tiêu đề cột để xem và chọn các cột con muốn đưa ra.
- Chuyển đổi sang dạng Text rồi Parse: Đôi khi, dữ liệu lồng nhau không được Power Query nhận diện đúng dạng (ví dụ nó nhận là Any thay vì Record). Lúc này, mình thường chuyển đổi cột đó sang dạng Text, sau đó dùng các hàm như
Json.Document(nếu là JSON) hoặc các hàm xử lý chuỗi để tách lọc thông tin. - Sử dụng List Functions: Nếu dữ liệu lồng theo dạng danh sách (List), các hàm như
List.Transform,List.Select,List.Accumulaterất hữu ích để xử lý từng phần tử trong danh sách đó. - Tạo cột tùy chỉnh (Custom Column): Kết hợp các hàm trên trong một cột tùy chỉnh để tạo ra logic xử lý phức tạp. Ví dụ, mình có thể viết một hàm để lấy giá trị đầu tiên của một danh sách lồng nhau, hoặc tổng hợp giá trị từ một bảng lồng.
Các bạn đã bao giờ gặp tình huống này chưa? Có cách nào hay hơn để xử lý dữ liệu lồng nhau trong Power Query không? Chia sẻ cùng mình nhé!