Ako správne rozbaliť vnorené tabuľky v Power Query

Obsah

Povedzme, že máme súbor Excel s niekoľkými inteligentnými tabuľkami:

Ako správne rozbaliť vnorené tabuľky v Power Query

Ak tieto tabuľky načítate do Power Query štandardným spôsobom pomocou príkazu Údaje – Získať údaje – Zo súboru – Z knihy (Údaje — Získať údaje — Zo súboru — Zo zošita), potom dostaneme niečo takéto:

Ako správne rozbaliť vnorené tabuľky v Power Query

Myslím, že obrázok je známy mnohým používateľom Power Query. Podobné vnorené tabuľky je možné vidieť po skombinovaní dopytov (a la VLOOKUP), zoskupení (príkaz Skupina podľa pútko Premena), importovanie všetkých súborov z daného priečinka atď.

Ďalším logickým krokom v tejto situácii je zvyčajne rozbalenie všetkých vnorených tabuliek naraz – pomocou tlačidla s dvojitými šípkami v hlavičke stĺpca dátum:

Ako správne rozbaliť vnorené tabuľky v Power Query

V dôsledku toho dostaneme zostavu všetkých riadkov zo všetkých tabuliek do jedného celku. Všetko je dobré, jednoduché a jasné. 

Teraz si predstavte, že do zdrojových tabuliek bol pridaný nový stĺpec (Zľava) a/alebo bol vymazaný jeden z existujúcich stĺpcov (Mesto):

Ako správne rozbaliť vnorené tabuľky v Power Query

Potom naša požiadavka po aktualizácii vráti nie tak krásny obrázok - zľava sa nezobrazila a stĺpec mesta bol prázdny, ale nezmizol:

Ako správne rozbaliť vnorené tabuľky v Power Query

A je ľahké pochopiť prečo – na riadku vzorcov môžete jasne vidieť, že názvy rozšírených stĺpcov sú pevne zakódované v argumentoch funkcie Table.ExpandTableColumn ako zoznamy v zložených zátvorkách.

Obísť tento problém je jednoduché. Najprv získajme pomocou funkcie názvy stĺpcov z hlavičky ľubovoľnej (napríklad prvej) tabuľky Table.ColumnNames. Bude to vyzerať takto:

Ako správne rozbaliť vnorené tabuľky v Power Query

Tu:

  • #”Iné stĺpce boli odstránené” – názov predchádzajúceho kroku, odkiaľ berieme údaje
  • 0 {} – číslo tabuľky, z ktorej extrahujeme hlavičku (počítame od nuly, tj 0 je prvá tabuľka)
  • [Údaje] – názov stĺpca v predchádzajúcom kroku, kde sa nachádzajú rozbalené tabuľky

Zostáva dosadiť konštrukciu získanú v riadku vzorcov do funkcie Table.ExpandTableColumn v kroku rozširovania tabuliek namiesto pevne zakódovaných zoznamov. Všetko by to nakoniec malo vyzerať takto:

Ako správne rozbaliť vnorené tabuľky v Power Query

To je všetko. A pri zmene zdrojových údajov už nebudú žiadne problémy s rozširovaním vnorených tabuliek.

  • Vytváranie multiformátových tabuliek z jedného hárka v Power Query
  • Vytvárajte tabuľky s rôznymi hlavičkami z viacerých súborov programu Excel
  • Zhromažďovanie údajov zo všetkých listov knihy do jednej tabuľky

 

Nechaj odpoveď