Ophæv pivot flere kolonner dynamisk i Lucky Templates

I dette selvstudium vil vi gense et emne, som jeg dækkede tidligere, om hvordan man kan fjerne pivot af flere kolonner i Power Query ved hjælp af List.Zip. Et LuckyTemplates-medlem spurgte omom, hvordan man gør den metode dynamisk. Du kan se den fulde video af denne tutorial nederst på denne blog.

Jeg har mærket dette avanceret, fordi vi vil skrive en række M-funktioner, og nogle af dem kan endda være nye for dig.

Med det sagt, lad os gå over til Power Query.

Indholdsfortegnelse

Data i tabelformat

Som du kan se, er disse data allerede blevet transformeret til et ordentligt tabletformat, der er egnet til analyse. Denne proces, selvom den er meget vigtig, vil ikke blive dækket her, men vi vil kort gennemgå hvert trin.

Ophæv pivot flere kolonner dynamisk i Lucky Templates

I kildetrinnet ser vi en konstant gentagelse af værdiparrene, som er timerne og kontakterne for hver af de ovennævnte attributter.

Ophæv pivot flere kolonner dynamisk i Lucky Templates

I de anvendte trin kan du se resten af ​​trinene. Vi fjernede nogle øverste rækker, fjernede de tomme kolonner, ryddede op i vores tekstværdier og udfyldte dem. Derefter transponerede vi vores data, fjernede den tomme post, slog kolonne et og to sammen, rensede vores tekstværdier igen og transponerede vores data tilbage.

Vi oprettede et brugerdefineret trin, som vi vil undersøge mere detaljeret senere, udtrak værdier fra vores liste og ændrede til sidst typen.

Ophæv pivot flere kolonner dynamisk i Lucky Templates

Lad os se på hele koden. Det, vi er interesseret i her, er List.Zip -funktionen. Kort opsummering, det tager en enkelt liste som en og returnerer derefter en liste. Som et resultat ser vi, at denne enkelte liste i dette tilfælde indeholder tre separate lister.

Hvis vi undersøger den første liste, indeholder den hårdkodede attributnavne, blot tekstværdier, der blev indtastet. Den anden liste indeholder hårdkodede kolonnereferencer for timeværdierne. Den endelige liste indeholder hårdkodede kolonnereferencer for kontaktværdierne.

List.Zip tager derefter et element fra hver af disse tre lister og kombinerer dem baseret på deres placering i en ny liste. For eksempel bliver hvert første element fra disse lister kombineret til en ny liste. Det samme sker for alle værdier, der er anført som nummer to på listen, og så videre.

Hardkodede værdier kan være bekymrede, hvis attributterne sandsynligvis ikke ændrer sig over tid. Så hvis næste gang ikke alle varer er til stede eller nye varer findes, kan du få problemer.

Ændring af kode for at fjerne pivotering af flere kolonner dynamisk

Så hvordan gør vi denne dynamisk?

Den første ting, jeg gør, er at gå gennem koden for at se, om der er et sted, hvor vi kan hente disse attributværdier uden at skulle designe et separat trin for at opnå det. Så vi går tilbage gennem koden, og dette RemoveNull- trin er perfekt.

Ophæv pivot flere kolonner dynamisk i Lucky Templates

Du kan se, at den viser alle attributværdierne her i kolonne et. Vi kan bruge brugergrænsefladen til at udtrække dem.

Ophæv pivot flere kolonner dynamisk i Lucky Templates

Så højreklik på den overskrift, og vælg Tilføj som ny forespørgsel nede under .

Ophæv pivot flere kolonner dynamisk i Lucky Templates

Vi får denne liste, og det er gode nyheder, fordi vi ønsker at erstatte den hårdkodede liste, vi så tidligere, med den dynamiske. Det eneste, vi skal gøre, er at rydde op i værdierne.

Ophæv pivot flere kolonner dynamisk i Lucky Templates

Lad os starte med at fjerne disse nuller. Så inde i formellinjen tilføjer vi en List.RemoveNulls . Som du kan se nu, gentages alle elementer, og det er på grund af værdiparrene. Det er opført én gang for timerne.

Ophæv pivot flere kolonner dynamisk i Lucky Templates

Og så igen, for kontakterne, for at fjerne disse dubletter, kan vi tilføje en List.Distinct . Nu har vi skabt denne logik, og alt vi skal gøre er at kopiere den og indsætte den tilbage til vores eksempelforespørgsel.

Ophæv pivot flere kolonner dynamisk i Lucky Templates

I prøveforespørgslen skal du åbne Advanced Editor og oprette et nyt variabelnavn. Lad os kalde det, AttributeList . Så indsætter vi koden og sætter et komma.

Ophæv pivot flere kolonner dynamisk i Lucky Templates

Lad os nu gå tilbage til vores brugerdefinerede trin. Inde i List.Zip kan vi erstatte den første liste med vores variabelnavn (AttributeList).

Ophæv pivot flere kolonner dynamisk i Lucky Templates

Lad os nu se nærmere på den anden liste. Vi ved, at det refererer til kolonnenavne, og hver af disse kolonnenavne starter med den samme attribut, som vi allerede har på listen efterfulgt af et mellemrum og en tekst "timer".

Vi skal blot tilføje et suffiks til hver vare. Så lad os gå et trin tilbage og tilføje en brugerdefineret kolonne for at skabe noget logik.

Ophæv pivotering af flere kolonner dynamisk: Tilføjelse af brugerdefineret kolonnelogik

Det er kun en midlertidig spalte, så vi behøver ikke give den et rigtigt navn. Vi fjerner det, når vi er færdige.

Ophæv pivot flere kolonner dynamisk i Lucky Templates

For at ændre værdierne i en liste kan vi bruge List.Transform- funktionen. Vi er nødt til at transformere værdierne i vores AttributeList , så jeg vil indsætte det.

Her i overskrifterne ser vi, at tekstværdierne starter med stort bogstav, og så er resten med små bogstaver. Vores attribut indeholder kun et stort ord, så vi skal også transformere denne tekstværdi. Og vi kan bruge understregningen til at få adgang til hvert punkt på listen, og vi tilføjer det suffiks.

Med det får vi en listeværdi i vores kolonne. Det er lige meget, hvilken du vælger, men klik blot ud til siden i det hvide rum i en af ​​dem her.

Ophæv pivot flere kolonner dynamisk i Lucky Templates

Under siden ser vi en forhåndsvisning af den liste, vi har oprettet. Så du kan se, at vi har disse kolonneoverskrifter, der nu er korrekt indkapslede, så de matcher de kolonneoverskrifter, vi ser her med denne liste.

Vi har nu midlerne til at identificere de felter fra vores registrering, som vi ønsker at få adgang til. Så lad os åbne vores brugerdefinerede kolonnedialogboks igen og tilføje Record.SelectFields . Den vil have en post som en post, så vi kan bruge den understregning til at få adgang til den aktuelle post, som vi er på. Og så har vi givet den en liste med alle de feltnavne, så tilføj en afsluttende parentes og tryk OK .

Ophæv pivot flere kolonner dynamisk i Lucky Templates

Så vi har ikke længere en liste, men vi får nu en rekord. Lad os klikke ud til siden i det hvide rum igen for at se indholdet af den post. Her ser vi, at den viser postfeltnavnene og postfeltværdierne.

Ophæv pivot flere kolonner dynamisk i Lucky Templates

Men vi er kun interesserede i rekordfeltværdierne, så det skal vi udtrække. Lad os gå tilbage til vores brugerdefinerede kolonnedialogboks og tilføje Record.FieldsValues ​​.

Ophæv pivot flere kolonner dynamisk i Lucky Templates

Vi får nu en liste igen og ikke længere en rekord. Vi klikker ud til siden i det hvide rum igen, og du ser, at vi nu har en liste med netop disse værdier. Så det ser godt ud.

Ophæv pivot flere kolonner dynamisk i Lucky Templates

Lad os kopiere den fulde logik, som vi har oprettet, bortset fra de sidste afsluttende parenteser. Og nu kan vi fjerne vores midlertidige kolonne, fordi vi ikke længere har brug for den.

Ophæv pivot flere kolonner dynamisk i Lucky Templates

På vores formellinje vælger vi vores anden liste og erstatter den med vores logik.

Ophæv pivot flere kolonner dynamisk i Lucky Templates

For at oprette en liste med postfelternes værdier for kontakterne skal vi kun ændre suffikset. Så vi kan også vælge den sidste liste og indsætte vores logik.

Ophæv pivot flere kolonner dynamisk i Lucky Templates

Så lad os i stedet for timer ændre dette til kontakter .

Ophæv pivot flere kolonner dynamisk i Lucky Templates

Ingen fejl og det ser godt ud. Dette er nu en dynamisk løsning til at frigøre flere kolonner.

Ophæv pivot flere kolonner dynamisk i Lucky Templates




Konklusion

Det er sådan, du deaktiverer flere kolonner dynamisk indved hjælp af List.Zip.

Hvis en ny attribut kommer ind, vil den automatisk blive hentet af AttributeList. Og når en vare ikke længere eksisterer, vil den ikke være til stede på listen.

Jeg håber, du har nydt denne. Se hele videoen nedenfor for flere detaljer om denne tutorial og tjek nedenstående links for mere indhold omkring unpivot flere kolonner i LuckyTemplates.

Alt det bedste

Melissa

Leave a Comment

Oplev unik indsigt ved hjælp af LuckyTemplates TOPN-funktion

Oplev unik indsigt ved hjælp af LuckyTemplates TOPN-funktion

Denne blog indeholder LuckyTemplates TOPN DAX-funktionen, som giver dig mulighed for at få unik indsigt fra dine data, hvilket hjælper dig med at træffe bedre markedsføringsbeslutninger.

Oprettelse af en datotabel i LuckyTemplates

Oprettelse af en datotabel i LuckyTemplates

Find ud af, hvorfor det er vigtigt at have en dedikeret datotabel i LuckyTemplates, og lær den hurtigste og mest effektive måde at gøre det på.

LuckyTemplates Mobile Reporting Tips og teknikker

LuckyTemplates Mobile Reporting Tips og teknikker

Denne korte vejledning fremhæver LuckyTemplates mobilrapporteringsfunktion. Jeg vil vise dig, hvordan du kan udvikle rapporter effektivt til mobilenheder.

Professionelle serviceanalyserapporter i LuckyTemplates

Professionelle serviceanalyserapporter i LuckyTemplates

I denne LuckyTemplates Showcase gennemgår vi rapporter, der viser professionel serviceanalyse fra et firma, der har flere kontrakter og kundeengagementer.

Microsoft Power Platform-opdateringer | Microsoft Ignite 2021

Microsoft Power Platform-opdateringer | Microsoft Ignite 2021

Gå gennem de vigtigste opdateringer til Power Apps og Power Automate og deres fordele og implikationer for Microsoft Power Platform.

Almindelige SQL-funktioner: En oversigt

Almindelige SQL-funktioner: En oversigt

Opdag nogle almindelige SQL-funktioner, som vi kan bruge, såsom streng, dato og nogle avancerede funktioner til at behandle eller manipulere data.

LuckyTemplates skabelonoprettelse: Guide og tips

LuckyTemplates skabelonoprettelse: Guide og tips

I denne tutorial lærer du, hvordan du opretter din perfekte LuckyTemplates-skabelon, der er konfigureret til dine behov og præferencer.

Feltparametre og små multipler i LuckyTemplates

Feltparametre og små multipler i LuckyTemplates

I denne blog vil vi demonstrere, hvordan man lagdelte feltparametre med små multipler for at skabe utrolig nyttig indsigt og visuals.

LuckyTemplates-rangering og brugerdefineret gruppering

LuckyTemplates-rangering og brugerdefineret gruppering

I denne blog vil du lære, hvordan du bruger LuckyTemplates rangerings- og brugerdefinerede grupperingsfunktioner til at segmentere et eksempeldata og rangordne det efter kriterier.

Viser kun kumulativ total op til en bestemt dato i LuckyTemplates

Viser kun kumulativ total op til en bestemt dato i LuckyTemplates

I denne tutorial vil jeg dække en specifik teknik omkring, hvordan du kun viser Kumulativ Total op til en bestemt dato i dine visuals i LuckyTemplates.