Kolommen dynamisch samenvoegen in een Power Query-tabel

Kolommen dynamisch samenvoegen in een Power Query-tabel

In deze zelfstudie onderzoeken we een interessante vraag die op het is gesteld over het dynamisch samenvoegen van een wisselend aantal kolommen in een Power Query-tabel. Je kunt de volledige video van deze tutorial onderaan deze blog bekijken.

Dit scenario gaat over export van onbewerkte gegevens waardoor de gegevens overlopen naar een onbekend aantal aangrenzende kolommen. Als u naar het voorbeeld kijkt, ziet u dat de beschrijving is overgelopen naar kolom 4 en dat beschrijving 2 is opgesplitst in twee aangrenzende kolommen. Maar dat zal niet altijd het geval zijn. In de volgende cyclus kan dit aantal kolommen veranderen.

Kolommen dynamisch samenvoegen in een Power Query-tabel

Laten we, voordat we ingaan op de oplossing, de M-code bekijken die Power Query genereert wanneer u kolommen samenvoegt.

Inhoudsopgave

Power Query-tabel M-code

Er zijn een aantal manieren om kolommen samen te voegen. Een daarvan is om zowel de beschrijvingskolom te selecteren als de Shift-toets of Control-toets ingedrukt te houden en vervolgens ook kolom 4 te selecteren. Klik vervolgens met de rechtermuisknop en kies Kolommen samenvoegen .

Kolommen dynamisch samenvoegen in een Power Query-tabel

Of selecteer kolommen samenvoegen op het tabblad Transformeren . En dit dialoogvenster verschijnt, waarin u de scheidingsteken kunt selecteren.

Kolommen dynamisch samenvoegen in een Power Query-tabel

Kies Tab in het pop-upvenster en u kunt een nieuwe kolomnaam invoeren. In dit geval noemde ik het Beschrijving.

Kolommen dynamisch samenvoegen in een Power Query-tabel

In de formulebalk zien we de M-code die deze transformatiestap heeft gemaakt.

Kolommen dynamisch samenvoegen in een Power Query-tabel

Als de formulebalk niet zichtbaar is op uw scherm, gaat u naar het tabblad Weergave en schakelt u deze in.

Kolommen dynamisch samenvoegen in een Power Query-tabel

De functie die Power Query gebruikt om kolommen samen te voegen, is dus Table.CombinedColumns . De eerste parameter die nodig is, is een tabel. Die tabel wordt geretourneerd door de vorige stap in onze code, dus in de toegepaste stappen ziet u dat dit Source wordt genoemd .

Vervolgens heeft het de kolomnamen in een lijst hard gecodeerd. Hier zie je lijstinitialisaties, en tussen in-tekstwaarden, de kolomnaambeschrijving en de kolomnaam kolom 4. Vervolgens wordt een andere M-functie aangeroepen om de tekstwaarden in die kolommen te combineren.

Kolommen dynamisch samenvoegen in een Power Query-tabel

En tot slot geeft het de nieuwe kolomnaam door als tekst, zodat we die kunnen aanpassen.

Kolommen dynamisch samenvoegen in een Power Query-tabel

Dus als we willen dat deze functie een veranderend aantal kolommen dynamisch samenvoegt, moeten we die tweede parameterwaarde wijzigen die nu een lijst met hardgecodeerde kolomnamen bevat.

Een veranderend aantal kolommen samenvoegen in een Power Query-tabel

Ik ga terug naar mijn query met onbewerkte gegevens en als we de kolomnamen nader bekijken, zien we dat elk van de overloopkolommen anoniem is. Ze hebben geen eigennaam, maar ze beginnen allemaal met de tekstkolom, gevolgd door een cijfer. Eens kijken of we dat kunnen gebruiken. Eerst maak ik een referentie door hier met de rechtermuisknop te klikken en Referentie te selecteren .

Kolommen dynamisch samenvoegen in een Power Query-tabel

En om de kolomnamen in de formulebalk te krijgen, kan ik Table.ColumnNames toevoegen . Deze functie retourneert een lijst met alle kolomnamen uit die tabel. Laten we er weer een tabel van maken door op Naar tabel te klikken .

Kolommen dynamisch samenvoegen in een Power Query-tabel

Klik in dit pop-upvenster op OK.

Kolommen dynamisch samenvoegen in een Power Query-tabel

Vervolgens selecteer ik op het tabblad Kolom toevoegen Opmaak en vervolgens Bijsnijden .

Kolommen dynamisch samenvoegen in een Power Query-tabel

Dit is geen transformatie die ik wil uitvoeren, maar het genereert wel het grootste deel van de M-code voor mij. Ik hoef alleen die trimfunctie te vervangen door mijn eigen logica .

Kolommen dynamisch samenvoegen in een Power Query-tabel

Dus in de formulebalk, in plaats van Text.Trim , kunnen we zeggen if Text.StartsWith , en dan verwijzen naar onze Kolom 1 , en ik zal dat meteen kopiëren. Het wil die tekst waarnaar we zoeken, dus dat wordt Column. Dus als het begint met een tekstkolom, dan willen we "null" - voor al het andere willen we wat er in Kolom 1 staat. We kunnen die kolom ook een andere naam geven, dus laten we het binnen de formulebalk, in plaats van Trim, GroupColumn noemen .

Kolommen dynamisch samenvoegen in een Power Query-tabel

Nu hoeven we ze alleen maar op deze waarden in te vullen. Dus ik klik met de rechtermuisknop op mijn koptekst, selecteer Vullen en omlaag .

Kolommen dynamisch samenvoegen in een Power Query-tabel

Dus de volgende keer dat er gegevens binnenkomen en dat aantal kolommen is veranderd, pakt deze groep het automatisch op.

Kolommen dynamisch samenvoegen in een Power Query-tabel

Laten we deze query hernoemen, ik noem het kolomgroepen.

Kolommen dynamisch samenvoegen in een Power Query-tabel

Laten we ervoor zorgen dat het laden ervan is uitgeschakeld, omdat dit slechts een ondersteunende vraag is.

Kolommen dynamisch samenvoegen in een Power Query-tabel

Ik kan naar deze ondersteunende vraag verwijzen en ik zal deze later hernoemen. Laten we dat voor nu even laten. Dus als je het je herinnert, zijn we begonnen met het samenvoegen van twee kolommen en dat creëerde een hardgecodeerde lijst met de kolomnamen , maar nu kunnen we filteren op Beschrijving in onze GroupColumn .

Kolommen dynamisch samenvoegen in een Power Query-tabel

Dus als we dat filter doen op de Beschrijving in Kolom 1, krijgen we de kolommen die aan die criteria voldoen.

Kolommen dynamisch samenvoegen in een Power Query-tabel

Dit is echter een tabel en geen lijst. We moeten eruit halen wat er in die eerste kolom overblijft, omdat we die kolommen moeten opnemen in onze samenvoegbewerking. Om dat te doen, kunnen we met de rechtermuisknop op de kop van kolom 1 klikken en Drill Down selecteren .

Kolommen dynamisch samenvoegen in een Power Query-tabel

En nu krijgen we een lijst. Dus laten we deze query een juiste naam geven ( ListDescr ) en laten we controleren of deze is uitgeschakeld voor laden.

Kolommen dynamisch samenvoegen in een Power Query-tabel

Nu kunnen we teruggaan naar onze resultaatquery en dat tweede argument hier vervangen door onze dynamische lijst. Dus hier kunnen we verwijzen naar onze ListDescr .

Kolommen dynamisch samenvoegen in een Power Query-tabel

Laten we dit ook herhalen voor beschrijving 2. Ik ga naar mijn ColumnGroups-query. Ik maak nog een referentie en selecteer de kolommen die ik nodig heb. Vervolgens filter ik Beschrijving 2, waarmee deze drie kolommen worden geretourneerd. Ik klik met de rechtermuisknop op mijn koptekst en selecteer Drill Down en hernoem deze query ook ( ListDescr2 ).

Ik ga dan terug naar mijn resultaatquery, selecteer kolom Beschrijving2 en druk op shift of control om ook de volgende kolom te selecteren (kolom2). Ik klik met de rechtermuisknop op de kop en kies Kolommen samenvoegen .

Kolommen dynamisch samenvoegen in een Power Query-tabel

In het pop-upvenster kies ik Tab als scheidingsteken en noem ik dit Beschrijving2.

Kolommen dynamisch samenvoegen in een Power Query-tabel

Ik verander gewoon de kolomnaam hier op de formulebalk. Ik zal die hardgecodeerde lijst ook wijzigen van de lijst die we zojuist hebben gemaakt. En nu, zoals u kunt zien, heeft dit ook kolom 8 opgepikt die we eerder hadden uitgesloten.

Kolommen dynamisch samenvoegen in een Power Query-tabel


Query's samenvoegen in LuckyTemplates
LuckyTemplates-queryparameters: tabellen optimaliseren
Datumtabelkolommen in LuckyTemplates sorteren

Conclusie

In deze blog heb ik je laten zien hoe je M-codes in Power Query kunt gebruiken om kolommen dynamisch samen te voegen. Het is niet moeilijk zolang u bekend bent met hoe de Power Query werkt en welke M-codes u moet gebruiken.

Ik hoop dat je genoten hebt van deze. Bekijk de onderstaande links voor meer gerelateerde inhoud.

Al het beste!

Melissa


Wat is zelf in Python: voorbeelden uit de echte wereld

Wat is zelf in Python: voorbeelden uit de echte wereld

Wat is zelf in Python: voorbeelden uit de echte wereld

Een RDS-bestand opslaan en laden in R

Een RDS-bestand opslaan en laden in R

Je leert hoe je objecten uit een .rds-bestand in R opslaat en laadt. In deze blog wordt ook besproken hoe je objecten uit R naar LuckyTemplates importeert.

First N Business Days Revisited – Een DAX-coderingstaaloplossing

First N Business Days Revisited – Een DAX-coderingstaaloplossing

In deze tutorial over DAX-coderingstaal leert u hoe u de functie GENERATE gebruikt en hoe u de titel van een maat dynamisch wijzigt.

Breng inzichten onder de aandacht met behulp van de Multi Threaded Dynamic Visuals-techniek in LuckyTemplates

Breng inzichten onder de aandacht met behulp van de Multi Threaded Dynamic Visuals-techniek in LuckyTemplates

Deze zelfstudie behandelt hoe u de Multi Threaded Dynamic Visuals-techniek kunt gebruiken om inzichten te creëren op basis van dynamische gegevensvisualisaties in uw rapporten.

Inleiding tot het filteren van context in LuckyTemplates

Inleiding tot het filteren van context in LuckyTemplates

In dit artikel zal ik de filtercontext doornemen. Filtercontext is een van de belangrijkste onderwerpen waarover elke LuckyTemplates-gebruiker in eerste instantie zou moeten leren.

Beste tips voor het gebruik van de apps in LuckyTemplates Online Service

Beste tips voor het gebruik van de apps in LuckyTemplates Online Service

Ik wil laten zien hoe de online service LuckyTemplates Apps kan helpen bij het beheren van verschillende rapporten en inzichten die uit verschillende bronnen zijn gegenereerd.

Analyseer winstmargeveranderingen in de loop van de tijd - analyse met LuckyTemplates en DAX

Analyseer winstmargeveranderingen in de loop van de tijd - analyse met LuckyTemplates en DAX

Leer hoe u wijzigingen in uw winstmarge kunt berekenen met behulp van technieken zoals vertakking van metingen en het combineren van DAX-formules in LuckyTemplates.

Materialisatie-ideeën voor gegevenscaches in DAX Studio

Materialisatie-ideeën voor gegevenscaches in DAX Studio

Deze tutorial bespreekt de ideeën van materialisatie van datacaches en hoe deze de prestaties van DAX beïnvloeden bij het leveren van resultaten.

Zakelijke rapportage met behulp van LuckyTemplates

Zakelijke rapportage met behulp van LuckyTemplates

Als u tot nu toe nog steeds Excel gebruikt, is dit het beste moment om LuckyTemplates te gaan gebruiken voor uw zakelijke rapportagebehoeften.

Wat is LuckyTemplates Gateway? Alles wat u moet weten

Wat is LuckyTemplates Gateway? Alles wat u moet weten

Wat is LuckyTemplates Gateway? Alles wat u moet weten