Menu

Xử lý dữ liệu lồng nhau (nested data) với Power Query

Lục Thành Vy 05/06/2026 01:27 269 lượt xem 1 trả lời

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.Accumulate rấ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é!

1
Tuyệt vời, cảm ơn bạn đã chia sẻ kinh nghiệm về xử lý dữ liệu lồng nhau bằng Power Query! Mình cũng hay gặp trường hợp này, đặc biệt là khi làm việc với dữ liệu từ các web API trả về dạng JSON. Việc "Expand" các cột Table/Record đúng là chìa khóa. Bạn có thể chia sẻ thêm về cách bạn xử lý các trường hợp lồng sâu hơn không? Ví dụ, khi một Record lại chứa một Table khác nữa thì làm thế nào để làm phẳng nó ra một cách hiệu quả nhất?

Rất mong nhận được thêm chia sẻ từ bạn!

2

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

Đăng nhập Đăng ký