Cách mở rộng chính xác các bảng lồng nhau trong Power Query

Nội dung

Giả sử chúng ta có một tệp Excel với một số bảng thông minh:

Cách mở rộng chính xác các bảng lồng nhau trong Power Query

Nếu bạn tải các bảng này vào Power Query theo cách tiêu chuẩn bằng lệnh Dữ liệu - Lấy dữ liệu - Từ tệp - Từ sách (Dữ liệu - Lấy dữ liệu - Từ tệp - Từ Sổ làm việc), sau đó chúng tôi nhận được một cái gì đó như thế này:

Cách mở rộng chính xác các bảng lồng nhau trong Power Query

Hình ảnh, tôi nghĩ, đã quen thuộc với nhiều người dùng Power Query. Các bảng lồng nhau tương tự có thể được nhìn thấy sau khi kết hợp các truy vấn (a la VLOOKUP), nhóm (lệnh Nhóm theo chuyển hướng Chuyển đổi), nhập tất cả các tệp từ một thư mục nhất định, v.v.

Bước hợp lý tiếp theo trong tình huống này thường là mở rộng tất cả các bảng lồng nhau cùng một lúc - sử dụng nút có mũi tên đôi trong tiêu đề cột Ngày:

Cách mở rộng chính xác các bảng lồng nhau trong Power Query

Kết quả là, chúng tôi nhận được một tập hợp tất cả các hàng từ tất cả các bảng thành một tổng thể duy nhất. Mọi thứ đều tốt, đơn giản và rõ ràng. 

Bây giờ, hãy tưởng tượng rằng một cột mới (Giảm giá) đã được thêm vào bảng nguồn và / hoặc một trong những cột hiện có (Thành phố) đã bị xóa:

Cách mở rộng chính xác các bảng lồng nhau trong Power Query

Khi đó, yêu cầu của chúng tôi sau khi cập nhật sẽ trả về một hình ảnh không đẹp - giảm giá không xuất hiện và cột thành phố trở nên trống, nhưng không biến mất:

Cách mở rộng chính xác các bảng lồng nhau trong Power Query

Và thật dễ hiểu tại sao - trong thanh công thức, bạn có thể thấy rõ ràng rằng tên của các cột mở rộng được mã hóa cứng trong các đối số của hàm Table.ExpandTableColumn dưới dạng danh sách trong dấu ngoặc nhọn.

Giải quyết vấn đề này rất dễ dàng. Đầu tiên, hãy lấy tên cột từ tiêu đề của bất kỳ bảng nào (ví dụ: bảng đầu tiên) bằng cách sử dụng hàm Bảng.ColumnNames. Nó sẽ giống như sau:

Cách mở rộng chính xác các bảng lồng nhau trong Power Query

Đây:

  • # ”Các cột khác đã bị xóa” - tên của bước trước, nơi chúng tôi lấy dữ liệu từ
  • 0 {} - số của bảng mà từ đó chúng tôi trích xuất tiêu đề (đếm từ 0, tức là XNUMX là bảng đầu tiên)
  • [Dữ liệu] - tên của cột trong bước trước, nơi đặt các bảng mở rộng

Nó vẫn để thay thế cấu trúc thu được trong thanh công thức thành hàm Table.ExpandTableColumn ở bước mở rộng bảng thay vì danh sách được mã hóa cứng. Cuối cùng thì tất cả sẽ như thế này:

Cách mở rộng chính xác các bảng lồng nhau trong Power Query

Đó là tất cả. Và sẽ không còn vấn đề với việc mở rộng các bảng lồng nhau khi dữ liệu nguồn thay đổi.

  • Tạo bảng nhiều định dạng từ một trang tính trong Power Query
  • Tạo bảng với các tiêu đề khác nhau từ nhiều tệp Excel
  • Thu thập dữ liệu từ tất cả các trang của cuốn sách vào một bảng

 

Bình luận