Upptäck unika insikter med LuckyTemplates TOPN-funktion
Den här bloggen innehåller LuckyTemplates TOPN DAX-funktion, som gör att du kan få unika insikter från dina data, vilket hjälper dig att fatta bättre marknadsföringsbeslut.
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.
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 .
Eller, påfliken, välj slå samman kolumner . Och den här dialogrutan kommer att visas, som låter dig välja separatorn.
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.
I formelfältet ser vi M-koden som detta transformationssteg har skapat.
Om formelfältet inte är synligt på skärmen, gå till fliken Visa och aktivera den.
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.
Och slutligen skickar den det nya kolumnnamnet som en text så att vi kan justera det.
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 .
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 .
Klicka på OK i den här popup-rutan.
Sedan, på fliken Lägg till kolumn , väljer jag Format , och sedan Trim .
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.
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 .
Nu behöver vi bara fylla dem med dessa värden. Så jag högerklickar på min rubrik, väljer Fyll och ner .
Så nästa gång data kommer in och antalet kolumner har ändrats kommer den här gruppen automatiskt att ta upp det.
Låt oss byta namn på den här frågan, jag kallar den kolumngrupper.
Låt oss se till att laddningen har inaktiverats eftersom detta bara är en stödjande fråga.
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 .
Så om vi gör det filtret på beskrivningen i kolumn 1 får vi de kolumner som uppfyller de kriterierna.
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 .
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.
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 .
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.
I popup-rutan väljer jag Tab som Separator och jag kallar detta Beskrivning2.
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.
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
Den här bloggen innehåller LuckyTemplates TOPN DAX-funktion, som gör att du kan få unika insikter från dina data, vilket hjälper dig att fatta bättre marknadsföringsbeslut.
Lär dig några fantastiska analytiska tekniker som vi kan göra för datamodellering i LuckyTemplates med hjälp av DAX-stödtabeller.
Här dyker vi in i LuckyTemplates Advanced DAX och implementerar rankningslogik för att få en mycket unik insikt. Jag visar också upp måttförgrening i det här exemplet.
Den här bloggen introducerar den nya funktionen i LuckyTemplates, analysparametern What-If. Du kommer att se hur det gör allt snabbt och enkelt för din scenarioanalys.
Lär dig hur du avgör om din intäktstillväxt är bra genom att kontrollera om dina marginaler ökade med hjälp av LuckyTemplates mäter förgrening.
Lär dig och förstå hur du kan skapa och använda LuckyTemplates-parametrar som är en kraftfull funktion i frågeredigeraren.
Denna handledning kommer att diskutera hur man skapar ett runt stapeldiagram med Charticulator. Du kommer att lära dig hur du designar dem för din LuckyTemplates-rapport.
Lär dig hur du använder PowerApps funktioner och formler för att förbättra funktionaliteten och ändra ett beteende i vår Power Apps canvas-app.
I den här handledningen kommer du att lära dig hur du kopplar ihop funktioner med hjälp av dplyr-röroperatorn i programmeringsspråket R.
RANKX från LuckyTemplates låter dig returnera rankningen av ett specifikt nummer i varje tabellrad som utgör en del av en lista med nummer.