Hur man dynamiskt slår samman kolumner i en Power Query-tabell

I den här handledningen kommer vi att undersöka en intressant fråga som togs upp påom hur man dynamiskt slår samman ett ändrat antal kolumner i en Power Query-tabell. Du kan se hela videon av denna handledning längst ner på den här bloggen.

Det här scenariot handlar om export av rådata som gör att data spills in i ett okänt antal intilliggande kolumner. När du tittar på exemplet kan du se att beskrivningen har spillt över till kolumn 4 och beskrivning 2 har delats upp på två intilliggande kolumner. Men det kommer inte alltid att vara fallet. I nästa cykel kan detta antal kolumner ändras.

Hur man dynamiskt slår samman kolumner i en Power Query-tabell

Innan vi går in i lösningen, låt oss undersöka M-koden som Power Query genererar när du slår samman kolumner.

Innehållsförteckning

Power Query Tabell M-kod

Det finns ett par sätt att slå samman kolumner. En är att välja både beskrivningskolumnen och trycka ner antingen skift- eller kontrolltangenten och sedan välja kolumn 4 också. Högerklicka sedan och välj Slå samman kolumner .

Hur man dynamiskt slår samman kolumner i en Power Query-tabell

Eller, påfliken, välj slå samman kolumner . Och den här dialogrutan kommer att visas, som låter dig välja separatorn.

Hur man dynamiskt slår samman kolumner i en Power Query-tabell

I popup-rutan väljer du Tab och du kan ange ett nytt kolumnnamn. I det här fallet döpte jag det till Beskrivning.

Hur man dynamiskt slår samman kolumner i en Power Query-tabell

I formelfältet ser vi M-koden som detta transformationssteg har skapat.

Hur man dynamiskt slår samman kolumner i en Power Query-tabell

Om formelfältet inte är synligt på skärmen, gå till fliken Visa och aktivera den.

Hur man dynamiskt slår samman kolumner i en Power Query-tabell

Så funktionen som Power Query använder för att slå samman kolumner är Table.CombinedColumns . Den första parametern som krävs är en tabell. Den tabellen returneras av föregående steg i vår kod, så i de tillämpade stegen ser du att detta kallas Källa .

Sedan hårdkodade den kolumnnamnen i en lista. Här ser du listinitierare, och mellan in-textvärden, kolumnnamnsbeskrivningen och kolumnnamnet kolumn 4. Sedan anropar den en annan M-funktion för att kombinera textvärdena i dessa kolumner.

Hur man dynamiskt slår samman kolumner i en Power Query-tabell

Och slutligen skickar den det nya kolumnnamnet som en text så att vi kan justera det.

Hur man dynamiskt slår samman kolumner i en Power Query-tabell

Så om vi vill att den här funktionen dynamiskt ska slå samman ett ändrande antal kolumner, måste vi ändra det andra parametervärdet som nu innehåller en lista med hårdkodade kolumnnamn.

Slår ihop ett växlande antal kolumner i en Power Query-tabell

Jag går tillbaka till min rådatafråga, och om vi tittar närmare på kolumnnamnen ser vi att var och en av spillkolumnerna är anonyma. De har inga egennamn, men de börjar alla med textkolumnen följt av en siffra. Låt oss se om vi kan använda det. Först skapar jag en referens genom att högerklicka här och välja Referens .

Hur man dynamiskt slår samman kolumner i en Power Query-tabell

Och för att få kolumnnamnen inuti formelfältet kan jag lägga till Table.ColumnNames . Denna funktion returnerar en lista med alla kolumnnamn från den tabellen. Låt oss förvandla detta tillbaka till en tabell genom att klicka på Till tabell .

Hur man dynamiskt slår samman kolumner i en Power Query-tabell

Klicka på OK i den här popup-rutan.

Hur man dynamiskt slår samman kolumner i en Power Query-tabell

Sedan, på fliken Lägg till kolumn , väljer jag Format , och sedan Trim .

Hur man dynamiskt slår samman kolumner i en Power Query-tabell

Nu är det här inte en transformation som jag vill utföra, men det genererar huvuddelen av M-koden för mig. Allt jag behöver göra är.

Hur man dynamiskt slår samman kolumner i en Power Query-tabell

Så inuti formelfältet, istället för Text.Trim , kan vi säga om Text.StartsWith , och sedan peka på vår kolumn 1 , så kopierar jag det direkt. Den vill ha den texten som vi letar efter, så det kommer att bli kolumn. Så om den börjar med en textkolumn så vill vi ha "null" – för allt annat vill vi ha vad som finns i kolumn 1. Vi kan också byta namn på den kolumnen, så inuti formelfältet, istället för Trim, låt oss kalla det GroupColumn .

Hur man dynamiskt slår samman kolumner i en Power Query-tabell

Nu behöver vi bara fylla dem med dessa värden. Så jag högerklickar på min rubrik, väljer Fyll och ner .

Hur man dynamiskt slår samman kolumner i en Power Query-tabell

Så nästa gång data kommer in och antalet kolumner har ändrats kommer den här gruppen automatiskt att ta upp det.

Hur man dynamiskt slår samman kolumner i en Power Query-tabell

Låt oss byta namn på den här frågan, jag kallar den kolumngrupper.

Hur man dynamiskt slår samman kolumner i en Power Query-tabell

Låt oss se till att laddningen har inaktiverats eftersom detta bara är en stödjande fråga.

Hur man dynamiskt slår samman kolumner i en Power Query-tabell

Jag kan referera till den här stödjande frågan och jag byter namn på den senare. Låt oss lämna det för nu. Så om du kommer ihåg började vi med att slå samman två kolumner och det skapade en hårdkodad lista med kolumnnamnen , men nu kan vi filtrera på Beskrivning i vår GroupColumn .

Hur man dynamiskt slår samman kolumner i en Power Query-tabell

Så om vi gör det filtret på beskrivningen i kolumn 1 får vi de kolumner som uppfyller de kriterierna.

Hur man dynamiskt slår samman kolumner i en Power Query-tabell

Detta är dock en tabell och inte en lista.eftersom vi måste inkludera dessa kolumner i vår sammanslagningsoperation. Så för att göra det kan vi högerklicka på vår kolumn 1-rubrik och välja Drill Down .

Hur man dynamiskt slår samman kolumner i en Power Query-tabell

Och nu får vi en lista. Så låt oss ge den här frågan ett rätt namn ( ListDescr ) och låt oss kontrollera om den är inaktiverad från laddning.

Hur man dynamiskt slår samman kolumner i en Power Query-tabell

Nu kan vi gå tillbaka till vår resultatfråga och ersätta det andra argumentet här med vår dynamiska lista. Så här kan vi referera till vår ListDescr .

Hur man dynamiskt slår samman kolumner i en Power Query-tabell

Låt oss upprepa detta för beskrivning 2 också. Jag går till min kolumngrupper-fråga. Jag skapar en annan referens och väljer de kolumner som jag behöver. Sedan filtrerar jag Beskrivning 2, som returnerar dessa tre kolumner. Jag högerklickar på min rubrik och väljer Drill Down och byter namn på den här frågan också ( ListDescr2 ).

Jag går sedan tillbaka till min resultatfråga, väljer kolumn Beskrivning2 och trycker på antingen shift eller kontroll för att också välja nästa kolumn (kolumn2). Jag högerklickar på rubriken och väljer.

Hur man dynamiskt slår samman kolumner i en Power Query-tabell

I popup-rutan väljer jag Tab som Separator och jag kallar detta Beskrivning2.

Hur man dynamiskt slår samman kolumner i en Power Query-tabell

Jag ska bara ändra kolumnnamnet här på formelfältet. Jag kommer att ändra den hårdkodade listan också från listan vi just skapade. Och nu har detta, som ni kan se, även plockat upp kolumn 8 som vi tidigare uteslutit.

Hur man dynamiskt slår samman kolumner i en Power Query-tabell




Slutsats

I den här bloggen har jag visat dig hur du använder M-koder i Power Query för att dynamiskt slå samman kolumner. Det är inte svårt så länge du är bekant med hur Power Query fungerar och vilka M-koder du ska använda.

Jag hoppas att du har njutit av den här. Kolla in länkarna nedan för mer relaterat innehåll.

Med vänliga hälsningar!

Melissa


Skapa en datumtabell i LuckyTemplates

Skapa en datumtabell i LuckyTemplates

Ta reda på varför det är viktigt att ha en dedikerad datumtabell i LuckyTemplates och lär dig det snabbaste och mest effektiva sättet att göra det.

LuckyTemplates mobilrapporteringstips och tekniker

LuckyTemplates mobilrapporteringstips och tekniker

Denna korta handledning belyser LuckyTemplates mobilrapporteringsfunktion. Jag ska visa dig hur du kan utveckla rapporter effektivt för mobila enheter.

Professional Service Analytics-rapporter i LuckyTemplates

Professional Service Analytics-rapporter i LuckyTemplates

I denna LuckyTemplates Showcase går vi igenom rapporter som visar professionell serviceanalys från ett företag som har flera kontrakt och kundengagemang.

Microsoft Power Platform-uppdateringar | Microsoft Ignite 2021

Microsoft Power Platform-uppdateringar | Microsoft Ignite 2021

Gå igenom de viktigaste uppdateringarna för Power Apps och Power Automate och deras fördelar och konsekvenser för Microsoft Power Platform.

Vanliga SQL-funktioner: En översikt

Vanliga SQL-funktioner: En översikt

Upptäck några vanliga SQL-funktioner som vi kan använda som sträng, datum och några avancerade funktioner för att bearbeta eller manipulera data.

LuckyTemplates Skapa mall: Guide och tips

LuckyTemplates Skapa mall: Guide och tips

I den här handledningen kommer du att lära dig hur du skapar din perfekta LuckyTemplates-mall som är konfigurerad efter dina behov och preferenser.

Fältparametrar och små multiplar i LuckyTemplates

Fältparametrar och små multiplar i LuckyTemplates

I den här bloggen kommer vi att visa hur man lager fältparametrar med små multiplar för att skapa otroligt användbara insikter och bilder.

LuckyTemplates Rank och anpassad gruppering

LuckyTemplates Rank och anpassad gruppering

I den här bloggen kommer du att lära dig hur du använder LuckyTemplates ranknings- och anpassade grupperingsfunktioner för att segmentera en exempeldata och rangordna den enligt kriterier.

Visar kumulativ total endast upp till ett visst datum i LuckyTemplates

Visar kumulativ total endast upp till ett visst datum i LuckyTemplates

I den här handledningen kommer jag att täcka en specifik teknik kring hur man visar Kumulativ total endast upp till ett specifikt datum i dina bilder i LuckyTemplates.

Punktdiagram: Avancerade anpassade bilder för LuckyTemplates

Punktdiagram: Avancerade anpassade bilder för LuckyTemplates

Lär dig hur du skapar och anpassar punktdiagram i LuckyTemplates, som huvudsakligen används för att mäta prestanda mot mål eller tidigare år.