Slik slår du sammen kolonner dynamisk i en Power Query-tabell

I denne opplæringen vil vi undersøke et interessant spørsmål som ble reist påom hvordan du dynamisk slår sammen et skiftende antall kolonner i en Power Query-tabell. Du kan se hele videoen av denne opplæringen nederst på denne bloggen.

Dette scenariet omhandler eksport av rådata som får dataene til å spre seg inn i et ukjent antall tilstøtende kolonner. Når du ser på eksemplet, kan du se at beskrivelsen har spilt over i kolonne 4, og beskrivelse 2 er delt over to tilstøtende kolonner. Men det vil ikke alltid være tilfelle. I neste syklus kan dette antallet kolonner endres.

Slik slår du sammen kolonner dynamisk i en Power Query-tabell

Før vi går inn i løsningen, la oss undersøke M-koden som Power Query genererer når du slår sammen kolonner.

Innholdsfortegnelse

Power Query Tabell M-kode

Det er et par måter å slå sammen kolonner på. Den ene er å velge både beskrivelseskolonnen og trykke ned enten shift-tasten eller kontrolltasten, og velg deretter kolonne 4 også. Høyreklikk deretter og velg Slå sammen kolonner .

Slik slår du sammen kolonner dynamisk i en Power Query-tabell

Eller, påfanen, velg slå sammen kolonner . Og denne dialogboksen vises, som lar deg velge skilletegn.

Slik slår du sammen kolonner dynamisk i en Power Query-tabell

I popup-boksen velger du Tab, og du kan skrive inn et nytt kolonnenavn. I dette tilfellet kalte jeg det Beskrivelse.

Slik slår du sammen kolonner dynamisk i en Power Query-tabell

I formellinjen ser vi M-koden som dette transformasjonstrinnet har opprettet.

Slik slår du sammen kolonner dynamisk i en Power Query-tabell

Hvis formellinjen ikke er synlig på skjermen, går du til fanen Vis og slår den på.

Slik slår du sammen kolonner dynamisk i en Power Query-tabell

Så funksjonen som Power Query bruker for å slå sammen kolonner er Table.CombinedColumns . Den første parameteren som kreves er en tabell. Den tabellen returneres av det forrige trinnet i koden vår, så i Applied Steps vil du se at dette kalles Source .

Deretter hardkodet den kolonnenavnene i en liste. Her ser du listeinitialiserere, og mellom verdier i teksten, beskrivelsen av kolonnenavnet og kolonnenavnet kolonne 4. Deretter kaller den en annen M-funksjon for å kombinere tekstverdiene i disse kolonnene.

Slik slår du sammen kolonner dynamisk i en Power Query-tabell

Og til slutt sender den det nye kolonnenavnet som en tekst slik at vi kan justere det.

Slik slår du sammen kolonner dynamisk i en Power Query-tabell

Så hvis vi vil at denne funksjonen dynamisk skal slå sammen et skiftende antall kolonner, må vi endre den andre parameterverdien som nå inneholder en liste med hardkodede kolonnenavn.

Slå sammen et skiftende antall kolonner i en Power Query-tabell

Jeg går tilbake til rådataspørringen min, og hvis vi ser nærmere på kolonnenavnene, ser vi at hver av utslippskolonnene er anonyme. De har ikke egennavn, men de starter alle med tekstkolonnen, etterfulgt av et tall. La oss se om vi kan bruke det. Først skal jeg lage en referanse ved å høyreklikke her og velge Referanse .

Slik slår du sammen kolonner dynamisk i en Power Query-tabell

Og for å få kolonnenavnene inne i formellinjen, kan jeg legge til Table.ColumnNames . Denne funksjonen returnerer en liste med alle kolonnenavnene fra den tabellen. La oss gjøre dette tilbake til en tabell ved å klikke på Til tabell .

Slik slår du sammen kolonner dynamisk i en Power Query-tabell

Klikk OK i denne popup-boksen.

Slik slår du sammen kolonner dynamisk i en Power Query-tabell

Deretter, på Legg til kolonne- fanen, velger jeg Format , og deretter Trim .

Slik slår du sammen kolonner dynamisk i en Power Query-tabell

Nå, dette er ikke en transformasjon jeg vil utføre, men det genererer mesteparten av M-koden for meg. Alt jeg trenger å gjøre er.

Slik slår du sammen kolonner dynamisk i en Power Query-tabell

Så inne i formellinjen, i stedet for Text.Trim , kan vi si om Text.StartsWith , og deretter peke den til vår kolonne 1 , så kopierer jeg det umiddelbart. Den vil ha den teksten vi leter etter, så det blir Column. Så hvis den starter med en tekstkolonne, vil vi ha "null" - for alt annet vil vi ha det som er i kolonne 1. Vi kan også gi nytt navn til den kolonnen, så inne i formellinjen, i stedet for Trim, la oss kalle det GroupColumn .

Slik slår du sammen kolonner dynamisk i en Power Query-tabell

Nå trenger vi bare fylle dem med disse verdiene. Så jeg høyreklikker på overskriften min, velger Fyll og ned .

Slik slår du sammen kolonner dynamisk i en Power Query-tabell

Så neste gang data kommer inn og antallet kolonner har endret seg, vil denne gruppen automatisk plukke opp det.

Slik slår du sammen kolonner dynamisk i en Power Query-tabell

La oss gi nytt navn til denne spørringen, jeg kaller det kolonnegrupper.

Slik slår du sammen kolonner dynamisk i en Power Query-tabell

La oss sørge for at belastningen er deaktivert fordi dette bare er et støttesøk.

Slik slår du sammen kolonner dynamisk i en Power Query-tabell

Jeg kan referere til dette støttesøket, og jeg vil gi dette nytt navn senere. La oss la det være nå. Så hvis du husker det, startet vi med å slå sammen to kolonner, og det skapte en hardkodet liste med kolonnenavnene , men nå kan vi filtrere på Beskrivelse i vår gruppekolonne .

Slik slår du sammen kolonner dynamisk i en Power Query-tabell

Så hvis vi gjør det filteret på beskrivelsen i kolonne 1, får vi kolonnene som oppfyller disse kriteriene.

Slik slår du sammen kolonner dynamisk i en Power Query-tabell

Dette er imidlertid en tabell og ikke en liste.fordi vi må inkludere disse kolonnene i fletteoperasjonen vår. Så for å gjøre det kan vi høyreklikke på kolonne 1-overskriften og velge Drill Down .

Slik slår du sammen kolonner dynamisk i en Power Query-tabell

Og nå får vi en liste. Så la oss gi denne spørringen et riktig navn ( ListDescr ) og la oss sjekke om den er deaktivert fra innlasting.

Slik slår du sammen kolonner dynamisk i en Power Query-tabell

Nå kan vi gå tilbake til resultatspørringen vår og erstatte det andre argumentet her med vår dynamiske liste. Så her kan vi referere til vår ListDescr .

Slik slår du sammen kolonner dynamisk i en Power Query-tabell

La oss gjenta dette for beskrivelse 2 også. Jeg går til KolumnGrupper-spørringen min. Jeg oppretter en annen referanse og velger kolonnene jeg trenger. Deretter filtrerer jeg beskrivelse 2, som vil returnere disse tre kolonnene. Jeg høyreklikker overskriften min og velger Drill Down og gir også nytt navn til denne spørringen ( ListDescr2 ).

Jeg går deretter tilbake til resultatspørringen, velger kolonnen Beskrivelse2 og trykker på enten skift eller kontroll for å velge neste kolonne også (kolonne2). Jeg høyreklikker på overskriften og velger.

Slik slår du sammen kolonner dynamisk i en Power Query-tabell

I popup-boksen velger jeg Tab som skilletegn, og jeg kaller dette Beskrivelse2.

Slik slår du sammen kolonner dynamisk i en Power Query-tabell

Jeg skal bare endre kolonnenavnet her på formellinjen. Jeg vil også endre den hardkodede listen fra listen vi nettopp har laget. Og nå, som du kan se, har dette også plukket opp kolonne 8 som vi tidligere ekskluderte.

Slik slår du sammen kolonner dynamisk i en Power Query-tabell




Konklusjon

I denne bloggen har jeg vist deg hvordan du bruker M-koder i Power Query for å slå sammen kolonner dynamisk. Det er ikke vanskelig så lenge du er kjent med hvordan Power Query fungerer og hvilke M-koder du skal bruke.

Jeg håper du likte denne. Vennligst sjekk lenkene nedenfor for mer relatert innhold.

Beste ønsker!

Melissa


Slik bruker du Natural Language Query (Q&A) i LuckyTemplates

Slik bruker du Natural Language Query (Q&A) i LuckyTemplates

I denne opplæringen skal jeg vise deg hva du kan gjøre med Natural Language Query eller skrivebordsfunksjonen for spørsmål og svar i LuckyTemplates netttjeneste.

Sorter visualiseringer dynamisk i LuckyTemplate-rapportene dine

Sorter visualiseringer dynamisk i LuckyTemplate-rapportene dine

Lær hvordan du sorterer visualiseringer dynamisk i LuckyTemplates-rapportene dine. Få kvalitetsinnsikt samtidig som du er kreativ i måten du presenterer data på.

PowerApps-søkefelt: Slik legger du til og tilpasser

PowerApps-søkefelt: Slik legger du til og tilpasser

Lær hvordan du oppretter et PowerApps-søkefelt fra bunnen av og tilpasser det til å matche det overordnede temaet for appen din.

SELECTEDVALUE DAX-eksempel- Valg av høsteskive

SELECTEDVALUE DAX-eksempel- Valg av høsteskive

Høst eller fang en verdi inne i et mål for å gjenbruke i et annet mål for dynamiske beregninger ved å bruke SELECTEDVALUE DAX i LuckyTemplates.

Versjonshistorikk i SharePoint-lister

Versjonshistorikk i SharePoint-lister

Oppdag hvordan versjonshistorikk i SharePoint kan hjelpe deg med å se utviklingen av bestemte data, og hvor mange endringer den har gjennomgått.

Hex-fargekodevelger for Lucky Templates-rapporter

Hex-fargekodevelger for Lucky Templates-rapporter

Her er et verktøy for å lage rapporter og grafikk, en sekskantkodevelger for farger som du kan bruke for enkelt å få fargene til LuckyTemplates-rapportene dine.

Dynamisk datoskjærer i Lucky-maler ved hjelp av en periodetabell

Dynamisk datoskjærer i Lucky-maler ved hjelp av en periodetabell

Du kan enkelt vise en datoperiode som en slicer i rapporten ved hjelp av en periodetabell. Bruk en M-kode for å lage den dynamiske datoskjæreren i LuckyTemplates.

Proporsjons- og frekvenstabeller i Excel

Proporsjons- og frekvenstabeller i Excel

Skulle dykke ned i frekvenstabeller i Excel samt proporsjonstabeller. Se nærmere på hva de er og når du skal bruke dem.

Slik installerer du DAX Studio & Tabular Editor i LuckyTemplates

Slik installerer du DAX Studio & Tabular Editor i LuckyTemplates

Lær hvordan du laster ned og installerer DAX Studio og Tabular Editor 3 og hvordan du konfigurerer dem for bruk i LuckyTemplates og i Excel.

LuckyTemplates Shape Map Visualization for romlig analyse

LuckyTemplates Shape Map Visualization for romlig analyse

Denne bloggen inneholder Shape Map-visualiseringen for romlig analyse i LuckyTemplates. Jeg viser deg hvordan du kan bruke denne visualiseringen effektivt med dens funksjoner og elementer.