Hur man korrekt expanderar kapslade tabeller i Power Query

Innehåll

Låt oss säga att vi har en Excel-fil med flera smarta tabeller:

Hur man korrekt expanderar kapslade tabeller i Power Query

Om du laddar dessa tabeller i Power Query på standard sätt med kommandot Data – Hämta data – Från fil – Från bok (Data — Hämta data — Från fil — Från arbetsbok), då får vi något sånt här:

Hur man korrekt expanderar kapslade tabeller i Power Query

Bilden tror jag är bekant för många Power Query-användare. Liknande kapslade tabeller kan ses efter att ha kombinerat frågor (a la VLOOKUP), gruppering (kommando Grupp av fliken Transformation), importera alla filer från en given mapp, etc.

Nästa logiska steg i den här situationen är vanligtvis att expandera alla kapslade tabeller på en gång – med knappen med dubbla pilar i kolumnrubriken Data:

Hur man korrekt expanderar kapslade tabeller i Power Query

Som ett resultat får vi en sammansättning av alla rader från alla tabeller till en enda helhet. Allt är bra, enkelt och tydligt. 

Föreställ dig nu att en ny kolumn (Rabatt) lades till i källtabellerna och/eller en av de befintliga (Stad) togs bort:

Hur man korrekt expanderar kapslade tabeller i Power Query

Då kommer vår begäran efter uppdateringen att returnera en inte så vacker bild - rabatten dök inte upp och stadskolumnen blev tom, men försvann inte:

Hur man korrekt expanderar kapslade tabeller i Power Query

Och det är lätt att se varför – i formelfältet kan du tydligt se att namnen på de utökade kolumnerna är hårdkodade i funktionsargumenten Table.ExpandTableColumn som listor inom parentes.

Det är lätt att komma runt detta problem. Låt oss först hämta kolumnnamnen från rubriken i valfri (till exempel den första) tabell som använder funktionen Tabell. Kolumnnamn. Det kommer att se ut så här:

Hur man korrekt expanderar kapslade tabeller i Power Query

Här:

  • #"Andra kolumner har tagits bort" – namnet på föregående steg, varifrån vi hämtar data
  • 0 {} – numret på tabellen som vi extraherar rubriken från (räknat från noll, dvs 0 är den första tabellen)
  • [Data] – namnet på kolumnen i föregående steg, där de utökade tabellerna finns

Det återstår att ersätta konstruktionen som erhålls i formelfältet i funktionen Table.ExpandTableColumn vid steget att expandera tabeller istället för hårdkodade listor. Allt ska se ut så här i slutändan:

Hur man korrekt expanderar kapslade tabeller i Power Query

Det är allt. Och det blir inga fler problem med att expandera kapslade tabeller när källdata ändras.

  • Bygg multiformattabeller från ett ark i Power Query
  • Bygg tabeller med olika rubriker från flera Excel-filer
  • Samla data från alla ark i boken i en tabell

 

Kommentera uppropet