Menu

Chia sẻ cách xử lý dữ liệu có cấu trúc lặp lại (Recursive Data) trong Power Query

Tiêu Sĩ Uy 24/03/2026 02:06 518 lượt xem 1 trả lời

Chào các anh chị em, hôm nay mình muốn chia sẻ một mẹo nhỏ mình vừa vọc vạch được trong Power Query để xử lý một dạng dữ liệu khá 'khó nhằn': dữ liệu có cấu trúc lặp lại (recursive data).

Tình huống của mình là thế này: Mình có một file Excel mà ở đó, mỗi dòng dữ liệu lại tham chiếu đến một dòng khác bằng một mã ID. Ví dụ, dòng 1 có ID là A, dòng 2 có ID là B, nhưng trong cột 'Tham chiếu' của dòng 1 lại ghi là B. Cứ thế lặp đi lặp lại. Việc này khiến mình không thể load thẳng vào Excel để phân tích được.

Sau một hồi loay hoay, mình đã tìm ra cách xử lý bằng Power Query như sau:

  • Bước 1: Load dữ liệu vào Power Query.
  • Bước 2: Tạo một cột 'Key' duy nhất cho mỗi dòng (thường là cột ID gốc).
  • Bước 3: Sử dụng hàm Table.ExpandRecordColumn hoặc Table.NestedJoin để join bảng với chính nó dựa trên cột 'Tham chiếu' và cột 'Key'.
  • Bước 4: Lặp lại bước 3 cho đến khi nào cấu trúc lặp lại được 'mở' hết ra. Quá trình này có thể cần lặp lại vài lần tùy thuộc vào độ sâu của cấu trúc lặp.
  • Bước 5: Xóa các cột trung gian không cần thiết và load kết quả ra Excel.

Cách này giúp mình 'phẳng hóa' được cấu trúc dữ liệu phức tạp, biến nó thành dạng bảng thông thường. Anh em nào gặp trường hợp tương tự có thể thử áp dụng nhé. Nếu có cách nào tối ưu hơn thì chia sẻ cho mình với!

1

Hay quá bạn ơi! Dữ liệu kiểu này đúng là đau đầu thật. Mình cũng từng gặp tình huống tương tự khi gom dữ liệu từ nhiều nguồn, có những trường hợp lặp lại và cần liên kết ngược như vậy.

Bạn có thể chia sẻ cụ thể hơn cách bạn đã dùng hàm gì hoặc các bước xử lý trong Power Query để xử lý cái "Tham chiếu" đó không? Mình tò mò muốn biết làm thế nào để Power Query hiểu được mối liên hệ và "đi theo" các tham chiếu đó để gom dữ liệu lại thành một bảng phẳng.

Cảm ơn bạn đã chia sẻ kinh nghiệm quý báu này!

3

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

Đăng nhập Đăng ký