Hoe geneste tabellen correct uit te vouwen in Power Query

Inhoud

Laten we zeggen dat we een Excel-bestand hebben met verschillende slimme tabellen:

Hoe geneste tabellen correct uit te vouwen in Power Query

Als u deze tabellen op de standaard manier in Power Query laadt met de opdracht Gegevens – Gegevens ophalen – Uit bestand – Uit boek (Gegevens — Gegevens ophalen — Uit bestand — Uit werkmap), dan krijgen we zoiets als dit:

Hoe geneste tabellen correct uit te vouwen in Power Query

De afbeelding is, denk ik, bekend bij veel Power Query-gebruikers. Vergelijkbare geneste tabellen kunnen worden bekeken na het combineren van zoekopdrachten (a la VERT.ZOEKEN), groeperen (commando Groeperen op tab Transformatie), alle bestanden uit een bepaalde map importeren, enz.

De volgende logische stap in deze situatie is meestal om alle geneste tabellen in één keer uit te vouwen - met behulp van de knop met dubbele pijlen in de kolomkop Data:

Hoe geneste tabellen correct uit te vouwen in Power Query

Als resultaat krijgen we een verzameling van alle rijen van alle tabellen tot één geheel. Alles is goed, eenvoudig en duidelijk. 

Stel je nu voor dat er een nieuwe kolom (Korting) is toegevoegd in de brontabellen en/of een van de bestaande (Stad) is verwijderd:

Hoe geneste tabellen correct uit te vouwen in Power Query

Dan zal ons verzoek na de update een niet zo mooie foto retourneren - de korting verscheen niet en de stadskolom werd leeg, maar verdween niet:

Hoe geneste tabellen correct uit te vouwen in Power Query

En het is gemakkelijk te zien waarom - in de formulebalk kun je duidelijk zien dat de namen van de uitgebreide kolommen hard gecodeerd zijn in de functieargumenten Tabel.ExpandTableColumn als lijsten tussen accolades.

Dit probleem omzeilen is eenvoudig. Laten we eerst de kolomnamen uit de kop van een willekeurige (bijvoorbeeld de eerste) tabel halen met behulp van de functie Tabel.Kolomnamen. Het zal er als volgt uitzien:

Hoe geneste tabellen correct uit te vouwen in Power Query

Hier:

  • #"Andere kolommen verwijderd" – de naam van de vorige stap, waar we de gegevens vandaan halen
  • 0 {} – het nummer van de tabel waaruit we de kop halen (geteld vanaf nul, dwz 0 is de eerste tabel)
  • [Gegevens] – de naam van de kolom in de vorige stap, waar de uitgevouwen tabellen zich bevinden

Het blijft om de constructie verkregen in de formulebalk in de functie te vervangen Tabel.ExpandTableColumn bij de stap van het uitbreiden van tabellen in plaats van hardgecodeerde lijsten. Het zou er uiteindelijk allemaal zo uit moeten zien:

Hoe geneste tabellen correct uit te vouwen in Power Query

Dat is alles. En er zullen geen problemen meer zijn met het uitbreiden van geneste tabellen wanneer de brongegevens veranderen.

  • Tabellen met meerdere indelingen maken vanaf één werkblad in Power Query
  • Maak tabellen met verschillende koppen uit meerdere Excel-bestanden
  • Gegevens van alle bladen van het boek in één tabel verzamelen

 

Laat een reactie achter