Opprette en tilpasset tekstrensefunksjon i Power Query

I dette blogginnlegget skal vi se nærmere på en egendefinert funksjon for tekstrensing som jeg laget for vår pågående serie på LuckyTemplates TV kalt . Du kan se hele videoen av denne opplæringen nederst på denne bloggen.

For uke #2 har vi noen rotete data som må ryddes opp. Målet vårt her er å rense alle tekstverdiene i begge kolonnene.

For denne oppgaven opprettet jeg en ren tekstfunksjon.

Opprette en tilpasset tekstrensefunksjon i Power Query

Men først, la oss ta en rask titt på M-koden.

Opprette en tilpasset tekstrensefunksjon i Power Query

Denne funksjonen krever enkalt minTekst. Verdien skal være av typen tekst og funksjonen skal returnere en tekstverdi fordi ikke alle variablene som er oppført nedenfor vil returnere en tekstverdi.

Opprette en tilpasset tekstrensefunksjon i Power Query

Angivelse av returtype vil resultere i en feil. For å forhindre at feilen skjer, kan jeg kommentere det foreløpig.

Opprette en tilpasset tekstrensefunksjon i Power Query

Hvis vi vil se hva den første variabelen returnerer, er alt vi trenger å gjøre å referere til den ved navn, etter in-leddet. Så jeg skal kopiere ToRemove-variabelen, lime den inn på bunnlinjen og trykke OK.

Opprette en tilpasset tekstrensefunksjon i Power Query

For å se resultatet av den funksjonen, må vi påkalle den. Så la oss legge til en egendefinert kolonne i denne spørringen.

Opprette en tilpasset tekstrensefunksjon i Power Query

Deretter påkaller funksjonen vår, velg denne sammenslåtte kolonnen og trykk OK.

Opprette en tilpasset tekstrensefunksjon i Power Query

Innholdsfortegnelse

Opprette listene fra tom spørring

Vi ser nå at ToRemove-trinnet lager en liste. Faktisk er det en kombinasjon av to lister.

Den første listen skapte sitattegnene og den andre listen er en rekke tegn som jeg ønsket å fjerne.

Opprette en tilpasset tekstrensefunksjon i Power Query

Hvordan opprettet jeg denne listen?

Vel, jeg brukte en funksjon kalt Txt.ToList.

Du kan få tilgang til den interne funksjonsdokumentasjonen ved å lage en tom spørring, skrive inn funksjonsnavnet uten parentes og deretter trykke Enter.

Opprette en tilpasset tekstrensefunksjon i Power Query

Vi ser at Text.ToList returnerer en liste over tegnverdier fra en gitt tekstverdi.

La oss lime inn noen tekster og påkalle denne funksjonen.

Opprette en tilpasset tekstrensefunksjon i Power Query

Det oppretter en ny spørring og du kan se at denne listen inneholder alle bokstavene som vi ser her i teksten.

Opprette en tilpasset tekstrensefunksjon i Power Query

Husk at jeg la til en ekstra liste, ikke sant? Jeg kombinerte to lister og jeg brukte og-tegnet for å gjøre det.

La oss gjenskape det nå. Jeg brukte og-tegnet og listeinitialisereren, og skrev deretter inn anførselstegnene.

Opprette en tilpasset tekstrensefunksjon i Power Query

Vi ser nå at sitatene er lagt til denne listen, men hvorfor opprettet jeg en liste?

Opprette en tilpasset tekstrensefunksjon i Power Query

Vel, i neste trinn av tekstrensefunksjonen min brukte jeg en M-funksjon kalt Tekst. Fjerne.

Opprette en tilpasset tekstrensefunksjon i Power Query

Og du ser at du kan skrive inn en tekst og deretter en liste over tegn som du vil fjerne fra den strengen.

Opprette en tilpasset tekstrensefunksjon i Power Query

La oss gå tilbake til vår tekstrensefunksjon.

Opprette en tilpasset tekstrensefunksjon i Power Query

Til. Fjern opprettet disse to listene, og kombinerte dem deretter til en enkelt liste.

Opprette en tilpasset tekstrensefunksjon i Power Query

Og la oss deretter lime inn CleanText-variabelen. 'in'-leddet kaller M-funksjonen Text.Remove og sender myText-variabelen, og kaller deretter To.Remove-listen. La oss se hva dette gjør.

Opprette en tilpasset tekstrensefunksjon i Power Query

La oss gå tilbake til søket vårt. Dette returnerer ikke lenger en liste, men det returnerer noen tekstverdier.

Opprette en tilpasset tekstrensefunksjon i Power Query

Trimming i Power Query

Neste trinn er trimming . Som du kan se fra bildet ovenfor, har vi noen ekstra mellomrom og et etterfølgende komma på slutten som vi ønsker å bli kvitt. For å gjøre dette kan vi bruke trimfunksjonene. La oss gå tilbake til spørringen for å undersøke M-koden.

I M-koden nestet jeg 2 trimfunksjoner. Den første strengfunksjonen fjerner de ekstra mellomrommene foran og på slutten av vår CleanText-variabel.

Opprette en tilpasset tekstrensefunksjon i Power Query

For de gjenværende tekstene vi har, fjerner vi også mellomrommene fra resultatstrengen.

Vi skal også fjerne etterfølgende komma.

Opprette en tilpasset tekstrensefunksjon i Power Query

La oss se resultatet. Jeg skal kopiere variabelnavnet, lime det inn etter "in"-klausulen og klikke Ferdig. Når vi oppdaterer søket vårt, kan du se at de ekstra mellomrommene er borte og det etterfølgende kommaet er fjernet.

Opprette en tilpasset tekstrensefunksjon i Power Query

I de siste trinnene i spørringen min erstattet jeg bare noen tekstverdier.

Opprette en tilpasset tekstrensefunksjon i Power Query

I det siste tilfellet erstattet jeg den understrekingen med et mellomrom. La oss kopiere det og lime det inn etter "in"-klausulen. Jeg har også aktivert returtypen igjen.

Opprette en tilpasset tekstrensefunksjon i Power Query

La oss gå tilbake til søket vårt og undersøke resultatene – så langt, så bra!

Opprette en tilpasset tekstrensefunksjon i Power Query

Nå ønsker vi ikke å lage nye kolonner for å påkalle funksjonen vår, ikke sant? Det vi kan gjøre er å transformere kolonne 1 til flettekolonnen i stedet.

Jeg skal fjerne dette egendefinerte kolonnetrinnet.

Opprette en tilpasset tekstrensefunksjon i Power Query

Deretter skal jeg bruke brukergrensesnittet til å lage hoveddelen av koden for oss. På transformeringsfanen velger du begge kolonnene, går til Format og velger en funksjon.

Opprette en tilpasset tekstrensefunksjon i Power Query

Det spiller ingen rolle hvilken funksjon som er valgt fordi dette er M-koden som genereres av brukergrensesnittet. Vi kan nå erstatte den teksten. Nedre funksjon...

Opprette en tilpasset tekstrensefunksjon i Power Query

… med vår ren tekst-funksjon. Forhåpentligvis forstår du hvorfor jeg måtte legge til fx foran. Det er ingen "i funksjon" som starter med det.

Opprette en tilpasset tekstrensefunksjon i Power Query

Når vi trykker OK, kan du se at tekstene våre er renset. Dette er fantastisk.

Opprette en tilpasset tekstrensefunksjon i Power Query

Konklusjon

Hvorfor måtte vi gå gjennom alle problemer med å lage en tilpasset rengjøringsfunksjon? Vel, hvis det er sannsynlig at du må gjenta dette trinnet eller bruke lignende logikk i fremtiden, kan du lagre denne funksjonsspørringen.

Ved å gjøre det vil det fremskynde søkeutviklingen på et senere tidspunkt. En annen god grunn er fordi det også er morsomt å gjøre.

Jeg håper du likte denne opplæringen. Hvis du gjorde det, ikke glem å abonnere på LuckyTemplates-kanalen .

Melissa


Pipe In R: Koblingsfunksjoner med Dplyr

Pipe In R: Koblingsfunksjoner med Dplyr

I denne opplæringen lærer du hvordan du kobler funksjoner sammen ved å bruke dplyr-røroperatøren i programmeringsspråket R.

RANKX Deep Dive: A LuckyTemplates DAX-funksjon

RANKX Deep Dive: A LuckyTemplates DAX-funksjon

RANKX fra LuckyTemplates lar deg returnere rangeringen til et spesifikt tall i hver tabellrad som utgjør en del av en liste med tall.

Trekker ut LuckyTemplates-temaer og bilder fra PBIX

Trekker ut LuckyTemplates-temaer og bilder fra PBIX

Lær hvordan du demonterer en PBIX-fil for å trekke ut LuckyTemplates-temaer og bilder fra bakgrunnen og bruke den til å lage rapporten din!

Excel Formulas Cheat Sheet: Mellomveiledning

Excel Formulas Cheat Sheet: Mellomveiledning

Excel Formulas Cheat Sheet: Mellomveiledning

LuckyTemplates-kalendertabell: Hva er det og hvordan du bruker det

LuckyTemplates-kalendertabell: Hva er det og hvordan du bruker det

LuckyTemplates-kalendertabell: Hva er det og hvordan du bruker det

Python i LuckyTemplates: Hvordan installere og sette opp

Python i LuckyTemplates: Hvordan installere og sette opp

Lær hvordan du installerer programmeringsspråket Python i LuckyTemplates og hvordan du bruker verktøyene til å skrive koder og vise visuelle elementer.

Beregning av dynamiske fortjenestemarginer – enkel analyse av LuckyTemplates med DAX

Beregning av dynamiske fortjenestemarginer – enkel analyse av LuckyTemplates med DAX

Lær hvordan du beregner dynamiske fortjenestemarginer ved siden av LuckyTemplates og hvordan du kan få mer innsikt ved å grave dypere inn i resultatene.

Sortering av datotabellkolonner i LuckyTemplates

Sortering av datotabellkolonner i LuckyTemplates

Lær hvordan du sorterer feltene fra kolonner med utvidet datotabell på riktig måte. Dette er en god strategi å gjøre for vanskelige felt.

Finn dine beste produkter for hver region i LuckyTemplates ved å bruke DAX

Finn dine beste produkter for hver region i LuckyTemplates ved å bruke DAX

I denne artikkelen går jeg gjennom hvordan du kan finne de beste produktene dine per region ved å bruke DAX-beregninger i LuckyTemplates, inkludert TOPN- og CALCUATE-funksjonene.

Søppeldimensjon: Hva er det og hvorfor det er alt annet enn søppel

Søppeldimensjon: Hva er det og hvorfor det er alt annet enn søppel

Lær hvordan du bruker en søppeldimensjon for flagg med lav kardinalitet som du ønsker å inkludere i datamodellen din på en effektiv måte.