Sådan udvides indlejrede tabeller korrekt i Power Query

Indhold

Lad os sige, at vi har en Excel-fil med flere smarte tabeller:

Sådan udvides indlejrede tabeller korrekt i Power Query

Hvis du indlæser disse tabeller i Power Query på standardmåden ved hjælp af kommandoen Data – Hent data – Fra fil – Fra bog (Data — Hent data — Fra fil — Fra projektmappe), så får vi noget som dette:

Sådan udvides indlejrede tabeller korrekt i Power Query

Billedet, tror jeg, er velkendt for mange Power Query-brugere. Lignende indlejrede tabeller kan ses efter kombination af forespørgsler (a la VLOOKUP), gruppering (kommando Gruppe af fanen Transformation), importere alle filer fra en given mappe osv.

Det næste logiske trin i denne situation er normalt at udvide alle indlejrede tabeller på én gang – ved hjælp af knappen med dobbeltpile i kolonneoverskriften data:

Sådan udvides indlejrede tabeller korrekt i Power Query

Som et resultat får vi en samling af alle rækker fra alle tabeller til en enkelt helhed. Alt er godt, enkelt og overskueligt. 

Forestil dig nu, at en ny kolonne (Rabat) blev tilføjet i kildetabellerne og/eller en af ​​de eksisterende (By) blev slettet:

Sådan udvides indlejrede tabeller korrekt i Power Query

Så vil vores anmodning efter opdateringen returnere et knap så smukt billede - rabatten dukkede ikke op, og bykolonnen blev tom, men forsvandt ikke:

Sådan udvides indlejrede tabeller korrekt i Power Query

Og det er nemt at se hvorfor – i formellinjen kan du tydeligt se, at navnene på de udvidede kolonner er hårdkodet i funktionsargumenterne Table.ExpandTableColumn som lister i krøllede parenteser.

Det er nemt at komme uden om dette problem. Lad os først få kolonnenavnene fra overskriften på en hvilken som helst (for eksempel den første) tabel ved hjælp af funktionen Tabel.Kolonnenavne. Det vil se sådan ud:

Sådan udvides indlejrede tabeller korrekt i Power Query

Her:

  • #"Andre kolonner fjernet" – navnet på det forrige trin, hvor vi henter dataene fra
  • 0 {} – nummeret på tabellen, hvorfra vi uddrager overskriften (tæller fra nul, dvs. 0 er den første tabel)
  • [data] – navnet på kolonnen i det foregående trin, hvor de udvidede tabeller er placeret

Det er tilbage at erstatte konstruktionen opnået i formellinjen i funktionen Table.ExpandTableColumn på trinnet med at udvide tabeller i stedet for hårdkodede lister. Det hele skulle se sådan ud i sidste ende:

Sådan udvides indlejrede tabeller korrekt i Power Query

Det er alt. Og der vil ikke være flere problemer med at udvide indlejrede tabeller, når kildedataene ændres.

  • Opbygning af multiformattabeller fra ét ark i Power Query
  • Byg tabeller med forskellige overskrifter fra flere Excel-filer
  • Indsamling af data fra alle ark i bogen i én tabel

 

Giv en kommentar