Sådan flettes kolonner dynamisk i en Power-forespørgselstabel

I denne tutorial vil vi undersøge et interessant spørgsmål, der blev rejst påom, hvordan man dynamisk flette et skiftende antal kolonner i en Power Query-tabel. Du kan se den fulde video af denne tutorial nederst på denne blog.

Dette scenarie omhandler eksport af rådata, der får data til at spredes ind i et ukendt antal tilstødende kolonner. Når du ser på eksemplet, kan du se, at beskrivelsen er væltet over i kolonne 4, og beskrivelse 2 er blevet delt over to tilstødende kolonner. Men det vil ikke altid være tilfældet. I den næste cyklus kan dette antal kolonner ændre sig.

Sådan flettes kolonner dynamisk i en Power-forespørgselstabel

Før vi hopper ind i løsningen, lad os undersøge M-koden, som Power Query genererer, når du flette kolonner.

Indholdsfortegnelse

Power Query Tabel M-kode

Der er et par måder at flette kolonner på. Den ene er at vælge både beskrivelseskolonnen og trykke på enten shift-tasten eller kontroltasten og derefter vælge kolonne 4 også. Højreklik derefter og vælg Flet kolonner .

Sådan flettes kolonner dynamisk i en Power-forespørgselstabel

Eller påfanen, vælg flet kolonner . Og denne dialogboks vises, som giver dig mulighed for at vælge separatoren.

Sådan flettes kolonner dynamisk i en Power-forespørgselstabel

I pop op-boksen skal du vælge Tab, og du kan indtaste et nyt kolonnenavn. I dette tilfælde kaldte jeg det Beskrivelse.

Sådan flettes kolonner dynamisk i en Power-forespørgselstabel

I formellinjen ser vi den M-kode, som dette transformationstrin har skabt.

Sådan flettes kolonner dynamisk i en Power-forespørgselstabel

Hvis formellinjen ikke er synlig på din skærm, skal du gå til fanen Vis og slå den til.

Sådan flettes kolonner dynamisk i en Power-forespørgselstabel

Så den funktion, som Power Query bruger til at flette kolonner, er Table.CombinedColumns . Den første parameter, der skal til, er en tabel. Denne tabel returneres af det forrige trin i vores kode, så i de anvendte trin vil du se, at dette kaldes Source .

Derefter hårdkodede den kolonnenavnene på en liste. Her ser du listeinitialiserere, og mellem in-text-værdier, kolonnenavnsbeskrivelsen og kolonnenavnet kolonne 4. Derefter kalder den en anden M-funktion til at kombinere tekstværdierne i disse kolonner.

Sådan flettes kolonner dynamisk i en Power-forespørgselstabel

Og endelig sender den det nye kolonnenavn som en tekst, så vi kan justere det.

Sådan flettes kolonner dynamisk i en Power-forespørgselstabel

Så hvis vi ønsker, at denne funktion dynamisk skal flette et skiftende antal kolonner, bliver vi nødt til at ændre den anden parameterværdi, der nu indeholder en liste med hårdkodede kolonnenavne.

Fletning af et skiftende antal kolonner i en Power-forespørgselstabel

Jeg går tilbage til min rådataforespørgsel, og hvis vi ser nærmere på kolonnenavnene, ser vi, at hver af spildkolonnerne er anonyme. De har ikke egennavne, men de starter alle med tekstkolonnen efterfulgt af et tal. Lad os se, om vi kan bruge det. Først opretter jeg en reference ved at højreklikke her og vælge Reference .

Sådan flettes kolonner dynamisk i en Power-forespørgselstabel

Og for at få kolonnenavnene inde i formellinjen kan jeg tilføje Table.ColumnNames . Denne funktion returnerer en liste med alle kolonnenavnene fra den tabel. Lad os gøre dette tilbage til en tabel ved at klikke på Til tabel .

Sådan flettes kolonner dynamisk i en Power-forespørgselstabel

Klik på OK i denne pop op-boks.

Sådan flettes kolonner dynamisk i en Power-forespørgselstabel

Derefter, på fanen Tilføj kolonne , vælger jeg Formater og derefter Trim .

Sådan flettes kolonner dynamisk i en Power-forespørgselstabel

Nu er dette ikke en transformation, som jeg ønsker at udføre, men det genererer størstedelen af ​​M-koden for mig. Alt jeg skal gøre er.

Sådan flettes kolonner dynamisk i en Power-forespørgselstabel

Så inde i formellinjen, i stedet for Text.Trim , kan vi sige om Text.StartsWith , og derefter pege på vores kolonne 1 , så kopierer jeg det med det samme. Den vil have den tekst, vi leder efter, så det bliver Column. Så hvis det starter med en tekstkolonne, vil vi have "nul" - for alt andet vil vi have, hvad der er i kolonne 1. Vi kan også omdøbe den kolonne, så inde i formellinjen, i stedet for Trim, lad os kalde det GroupColumn .

Sådan flettes kolonner dynamisk i en Power-forespørgselstabel

Nu skal vi bare udfylde dem med disse værdier. Så jeg højreklikker på min overskrift, vælger Fyld og Ned .

Sådan flettes kolonner dynamisk i en Power-forespørgselstabel

Så næste gang data kommer ind, og antallet af kolonner har ændret sig, vil denne gruppe automatisk samle det op.

Sådan flettes kolonner dynamisk i en Power-forespørgselstabel

Lad os omdøbe denne forespørgsel, jeg vil kalde det kolonnegrupper.

Sådan flettes kolonner dynamisk i en Power-forespørgselstabel

Lad os sikre os, at dens belastning er blevet deaktiveret, fordi dette kun er en understøttende forespørgsel.

Sådan flettes kolonner dynamisk i en Power-forespørgselstabel

Jeg kan henvise til denne understøttende forespørgsel, og jeg omdøber den senere. Lad os lade det ligge for nu. Så hvis du husker det, startede vi med at slå to kolonner sammen, og det skabte en hårdkodet liste med kolonnenavnene , men nu kan vi filtrere på Beskrivelse i vores GroupColumn .

Sådan flettes kolonner dynamisk i en Power-forespørgselstabel

Så hvis vi laver det filter på beskrivelsen inde i kolonne 1, får vi de kolonner, der opfylder disse kriterier.

Sådan flettes kolonner dynamisk i en Power-forespørgselstabel

Dette er dog en tabel og ikke en liste.fordi vi skal inkludere disse kolonner i vores fletteoperation. Så for at gøre det kan vi højreklikke på vores kolonne 1-overskrift og vælge Drill Down .

Sådan flettes kolonner dynamisk i en Power-forespørgselstabel

Og nu får vi en liste. Så lad os give denne forespørgsel et rigtigt navn ( ListDescr ), og lad os kontrollere, om den er deaktiveret fra indlæsning.

Sådan flettes kolonner dynamisk i en Power-forespørgselstabel

Nu kan vi gå tilbage til vores resultatforespørgsel og erstatte det andet argument her med vores dynamiske liste. Så her kan vi referere til vores ListDescr .

Sådan flettes kolonner dynamisk i en Power-forespørgselstabel

Lad os også gentage dette for beskrivelse 2. Jeg går til min ColumnGroups-forespørgsel. Jeg opretter en anden reference og vælger de kolonner, jeg har brug for. Så filtrerer jeg beskrivelse 2, som returnerer disse tre kolonner. Jeg højreklikker på min header og vælger Drill Down og omdøber også denne forespørgsel ( ListDescr2 ).

Jeg går derefter tilbage til min resultatforespørgsel, vælger kolonnen Beskrivelse2 og trykker på enten skift eller kontrol for også at vælge den næste kolonne (kolonne2). Jeg højreklikker på overskriften og vælger.

Sådan flettes kolonner dynamisk i en Power-forespørgselstabel

I pop op-boksen vælger jeg Tab som skilletegn, og jeg kalder dette Beskrivelse2.

Sådan flettes kolonner dynamisk i en Power-forespørgselstabel

Jeg vil bare ændre kolonnenavnet her på formellinjen. Jeg vil også ændre den hårdkodede liste fra den liste, vi lige har oprettet. Og nu har dette, som du kan se, også hentet kolonne 8, som vi tidligere udelukkede.

Sådan flettes kolonner dynamisk i en Power-forespørgselstabel




Konklusion

I denne blog har jeg vist dig, hvordan du bruger M-koder i Power Query til dynamisk at flette kolonner. Det er ikke svært, så længe du er fortrolig med, hvordan Power Query fungerer, og hvilke M-koder du skal bruge.

Jeg håber, du har nydt denne. Tjek venligst nedenstående links for mere relateret indhold.

Alt det bedste!

Melissa


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.

Datamodellering i LuckyTemplates ved hjælp af understøttende tabeller

Datamodellering i LuckyTemplates ved hjælp af understøttende tabeller

Lær nogle fantastiske analytiske teknikker, som vi kan gøre til datamodellering i LuckyTemplates ved hjælp af DAX-understøttende tabeller.

Avanceret DAX til LuckyTemplates: Implementering af rangeringslogik på tværs af unikke indsigter

Avanceret DAX til LuckyTemplates: Implementering af rangeringslogik på tværs af unikke indsigter

Her dykker vi ned i LuckyTemplates Advanced DAX og implementerer rangeringslogik for at få en meget unik indsigt. Jeg viser også måleforgrening i dette eksempel.

LuckyTemplates What-If-parameterfunktion

LuckyTemplates What-If-parameterfunktion

Denne blog introducerer den nye funktion i LuckyTemplates, What-If-analyseparameteren. Du vil se, hvordan det gør alt hurtigt og nemt til din scenarieanalyse.

Brug LuckyTemplates Mål forgrening for at kontrollere, om dine avancer udvides, efterhånden som omsætningen vokser

Brug LuckyTemplates Mål forgrening for at kontrollere, om dine avancer udvides, efterhånden som omsætningen vokser

Lær, hvordan du afgør, om din omsætningsvækst er god ved at kontrollere, om dine avancer er udvidet ved hjælp af LuckyTemplates, der måler forgrening.

LuckyTemplates-parametre via forespørgselseditor

LuckyTemplates-parametre via forespørgselseditor

Lær og forstå, hvordan du kan oprette og bruge LuckyTemplates Parameters, som er en kraftfuld funktion i Query Editor.

Rundt søjlediagram – en visualisering til dit dashboard

Rundt søjlediagram – en visualisering til dit dashboard

Denne vejledning vil diskutere om oprettelse af et rundt søjlediagram ved hjælp af Charticulator. Du lærer, hvordan du designer dem til din LuckyTemplates-rapport.

PowerApps funktioner og formler | En introduktion

PowerApps funktioner og formler | En introduktion

Lær, hvordan du bruger PowerApps-funktioner og -formler til at forbedre funktionaliteten og ændre adfærd i vores Power Apps-lærredsapp.

Pipe In R: Tilslutningsfunktioner med Dplyr

Pipe In R: Tilslutningsfunktioner med Dplyr

I denne øvelse lærer du, hvordan du kæder funktioner sammen ved hjælp af dplyr-røroperatoren i programmeringssproget R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX fra LuckyTemplates giver dig mulighed for at returnere rangeringen af ​​et specifikt tal i hver tabelrække, der udgør en del af en liste over tal.