Hoe om geneste tabelle korrek uit te brei in Power Query

Contents [show]

Kom ons sê ons het 'n Excel-lêer met verskeie slim tabelle:

Hoe om geneste tabelle korrek uit te brei in Power Query

As jy hierdie tabelle op die standaard manier in Power Query laai met behulp van die opdrag Data – Kry data – Van lêer – Uit boek (Data - Kry Data - Van lêer - Uit Werkboek), dan kry ons iets soos hierdie:

Hoe om geneste tabelle korrek uit te brei in Power Query

Die prentjie, dink ek, is bekend aan baie Power Query-gebruikers. Soortgelyke geneste tabelle kan gesien word na die kombinasie van navrae (a la VLOOKUP), groepering (opdrag Groepeer volgens tab Transformasie), alle lêers vanaf 'n gegewe vouer invoer, ens.

Die volgende logiese stap in hierdie situasie is gewoonlik om alle geneste tabelle gelyktydig uit te brei – deur die knoppie met dubbele pyle in die kolomopskrif te gebruik data:

Hoe om geneste tabelle korrek uit te brei in Power Query

As gevolg hiervan kry ons 'n samestelling van alle rye van alle tabelle in 'n enkele geheel. Alles is goed, eenvoudig en duidelik. 

Stel jou nou voor dat 'n nuwe kolom (Afslag) in die brontabelle bygevoeg is en/of een van die bestaandes (Stad) is uitgevee:

Hoe om geneste tabelle korrek uit te brei in Power Query

Dan sal ons versoek na die opdatering 'n nie so mooi prentjie gee nie - die afslag het nie verskyn nie, en die stadkolom het leeg geword, maar het nie verdwyn nie:

Hoe om geneste tabelle korrek uit te brei in Power Query

En dit is maklik om te sien hoekom – in die formulebalk kan jy duidelik sien dat die name van die uitgebreide kolomme hardkodeer is in die funksie-argumente Table.ExpandTableColumn as lyste tussen krullerige hakies.

Om hierdie probleem te omseil is maklik. Kom ons kry eers die kolomname uit die kopskrif van enige (byvoorbeeld die eerste) tabel deur die funksie te gebruik Tabel.KolomName. Dit sal soos volg lyk:

Hoe om geneste tabelle korrek uit te brei in Power Query

hier:

  • #"Ander kolomme verwyder" – die naam van die vorige stap, waar ons die data vandaan neem
  • 0 {} – die nommer van die tabel waaruit ons die kopskrif onttrek (tel vanaf nul, maw 0 is die eerste tabel)
  • [data] – die naam van die kolom in die vorige stap, waar die uitgebreide tabelle geleë is

Dit bly om die konstruksie verkry in die formulebalk in die funksie te vervang Table.ExpandTableColumn by die stap om tabelle uit te brei in plaas van hardgekodeerde lyste. Dit behoort op die ou end alles so te lyk:

Hoe om geneste tabelle korrek uit te brei in Power Query

Dis al. En daar sal geen probleme meer wees met die uitbreiding van geneste tabelle wanneer die brondata verander nie.

  • Bou multiformattabelle vanaf een vel in Power Query
  • Bou tabelle met verskillende opskrifte uit verskeie Excel-lêers
  • Versamel data van alle velle van die boek in een tabel

 

Lewer Kommentaar