Oprettelse af en brugerdefineret tekstrensningsfunktion i Power Query

I dette blogindlæg vil vi se nærmere på en brugerdefineret funktion til tekstrensning, som jeg har lavet til vores igangværende serie på LuckyTemplates TV kaldet . Du kan se den fulde video af denne tutorial nederst på denne blog.

For uge #2 har vi nogle rodede data, der skal ryddes op. Vores mål her er at rense alle tekstværdier i begge kolonner.

Til denne opgave oprettede jeg en ren tekstfunktion.

Oprettelse af en brugerdefineret tekstrensningsfunktion i Power Query

Men først, lad os tage et hurtigt kig på M-koden.

Oprettelse af en brugerdefineret tekstrensningsfunktion i Power Query

Denne funktion kræver enkaldet minTekst. Dens værdi skal være af typen tekst, og funktionen skal returnere en tekstværdi, fordi ikke alle variablerne nedenfor vil returnere en tekstværdi.

Oprettelse af en brugerdefineret tekstrensningsfunktion i Power Query

Angivelse af returtypen vil resultere i en fejl. For at forhindre den fejl i at ske, kan jeg kommentere det indtil videre.

Oprettelse af en brugerdefineret tekstrensningsfunktion i Power Query

Hvis vi vil se, hvad den første variabel returnerer, er alt, hvad vi skal gøre, at henvise til den ved navn efter in-klausulen. Så jeg vil kopiere ToRemove-variablen, indsætte den på nederste linje og trykke på Okay.

Oprettelse af en brugerdefineret tekstrensningsfunktion i Power Query

For at se resultatet af den funktion, skal vi påberåbe den. Så lad os tilføje en brugerdefineret kolonne til denne forespørgsel.

Oprettelse af en brugerdefineret tekstrensningsfunktion i Power Query

Start derefter vores funktion, vælg denne flettede kolonne, og tryk på OK.

Oprettelse af en brugerdefineret tekstrensningsfunktion i Power Query

Indholdsfortegnelse

Oprettelse af listerne fra tom forespørgsel

Vi ser nu, at ToRemove-trinnet opretter en liste. Faktisk er det en kombination af to lister.

Den første liste skabte citattegnene, og den anden liste er en række tegn, som jeg ønskede at fjerne.

Oprettelse af en brugerdefineret tekstrensningsfunktion i Power Query

Hvordan oprettede jeg denne liste?

Nå, jeg brugte en funktion kaldet Txt.ToList.

Du kan få adgang til den interne funktionsdokumentation ved at oprette en tom forespørgsel, indtaste funktionsnavnet uden parentes og derefter trykke på Enter.

Oprettelse af en brugerdefineret tekstrensningsfunktion i Power Query

Vi ser, at Text.ToList returnerer en liste over tegnværdier fra en given tekstværdi.

Lad os indsætte nogle tekster og påberåbe os denne funktion.

Oprettelse af en brugerdefineret tekstrensningsfunktion i Power Query

Det opretter en ny forespørgsel, og du kan se, at denne liste indeholder alle de bogstaver, som vi ser her i teksten.

Oprettelse af en brugerdefineret tekstrensningsfunktion i Power Query

Husk, at jeg tilføjede en ekstra liste, ikke? Jeg kombinerede to lister, og jeg brugte og-tegnet til at gøre det.

Lad os genskabe det nu. Jeg brugte og-tegnet og listeinitialisereren og indtastede derefter disse citattegn.

Oprettelse af en brugerdefineret tekstrensningsfunktion i Power Query

Vi ser nu, at citaterne er blevet tilføjet til denne liste, men hvorfor oprettede jeg en liste?

Oprettelse af en brugerdefineret tekstrensningsfunktion i Power Query

Nå, i det næste trin af min tekstrensningsfunktion brugte jeg en M-funktion kaldet Tekst. Fjerne.

Oprettelse af en brugerdefineret tekstrensningsfunktion i Power Query

Og du ser, at du kan indtaste en tekst og derefter en liste over tegn, som du vil fjerne fra den streng.

Oprettelse af en brugerdefineret tekstrensningsfunktion i Power Query

Lad os gå tilbage til vores tekstrensningsfunktion.

Oprettelse af en brugerdefineret tekstrensningsfunktion i Power Query

Til. Fjern oprettede disse to lister og kombinerede dem derefter til en enkelt liste.

Oprettelse af en brugerdefineret tekstrensningsfunktion i Power Query

Og lad os så indsætte CleanText-variablen. 'in'-sætningen kalder M-funktionen Text.Remove og sender minText-variablen og kalder derefter To.Remove-listen. Lad os se, hvad dette gør.

Oprettelse af en brugerdefineret tekstrensningsfunktion i Power Query

Lad os gå tilbage til vores forespørgsel. Dette returnerer ikke længere en liste, men det returnerer nogle tekstværdier.

Oprettelse af en brugerdefineret tekstrensningsfunktion i Power Query

Trimning i Power Query

Det næste trin er trimning . Som du kan se på billedet ovenfor, har vi nogle ekstra mellemrum og et efterfølgende komma i slutningen, som vi vil slippe af med. For at gøre dette kan vi bruge trimfunktionerne. Lad os gå tilbage til forespørgslen for at undersøge M-koden.

I M-koden indlejrede jeg 2 trimfunktioner. Den første strengfunktion fjerner de ekstra mellemrum foran og i slutningen af ​​vores CleanText-variabel.

Oprettelse af en brugerdefineret tekstrensningsfunktion i Power Query

For de resterende tekster, vi har, fjerner vi også mellemrummene fra resultatstrengen.

Vi vil også fjerne det efterfølgende komma.

Oprettelse af en brugerdefineret tekstrensningsfunktion i Power Query

Lad os se resultatet. Jeg vil kopiere variabelnavnet, indsætte det efter 'in'-sætningen og klikke på Udført. Når vi opdaterer vores forespørgsel, kan du se, at de ekstra mellemrum er forsvundet, og det efterfølgende komma er blevet fjernet.

Oprettelse af en brugerdefineret tekstrensningsfunktion i Power Query

I de sidste trin af min forespørgsel har jeg lige erstattet nogle tekstværdier.

Oprettelse af en brugerdefineret tekstrensningsfunktion i Power Query

I det sidste tilfælde erstattede jeg den understregning med et mellemrum. Lad os kopiere det og indsætte det efter 'in'-klausulen. Jeg aktiverede også returtypen igen.

Oprettelse af en brugerdefineret tekstrensningsfunktion i Power Query

Lad os gå tilbage til vores forespørgsel og undersøge resultaterne – indtil videre, så godt!

Oprettelse af en brugerdefineret tekstrensningsfunktion i Power Query

Nu ønsker vi ikke at oprette nye kolonner for at påkalde vores funktion, vel? Det, vi kan gøre, er at omdanne vores kolonne 1 til vores flettekolonne i stedet.

Jeg vil fjerne dette brugerdefinerede kolonnetrin.

Oprettelse af en brugerdefineret tekstrensningsfunktion i Power Query

Så vil jeg bruge brugergrænsefladen til at oprette hovedparten af ​​koden for os. På transformerfanen skal du vælge begge kolonner, gå til Formater og vælge en funktion.

Oprettelse af en brugerdefineret tekstrensningsfunktion i Power Query

Det er virkelig ligegyldigt, hvilken funktion der er valgt, fordi dette er M-koden, der genereres af brugergrænsefladen. Vi kan nu erstatte den tekst. Nedre funktion...

Oprettelse af en brugerdefineret tekstrensningsfunktion i Power Query

… med vores ren tekst-funktion. Forhåbentlig forstår du, hvorfor jeg var nødt til at tilføje fx foran. Der er ingen 'i funktion', der starter med det.

Oprettelse af en brugerdefineret tekstrensningsfunktion i Power Query

Når vi trykker OK, kan du se, at vores tekster er blevet renset. Det her er fedt.

Oprettelse af en brugerdefineret tekstrensningsfunktion i Power Query

Konklusion

Hvorfor skulle vi igennem alle besværet med at skabe en brugerdefineret rengøringsfunktion? Nå, hvis det er sandsynligt, at du bliver nødt til at gentage dette trin eller bruge lignende logik i fremtiden, kan du gemme denne funktionsforespørgsel.

Ved at gøre det vil det fremskynde forespørgselsudviklingen på et senere tidspunkt. En anden god grund er, at det også er sjovt at lave.

Jeg håber, du har nydt denne tutorial. Hvis du gjorde det, så glem ikke at abonnere på LuckyTemplates-kanalen .

Melissa


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.

Udpakning af LuckyTemplates-temaer og -billeder fra PBIX

Udpakning af LuckyTemplates-temaer og -billeder fra PBIX

Lær, hvordan du adskiller en PBIX-fil for at udtrække LuckyTemplates-temaer og -billeder fra baggrunden og bruge den til at oprette din rapport!

Excel Formler Snydeark: Mellemvejledning

Excel Formler Snydeark: Mellemvejledning

Excel Formler Snydeark: Mellemvejledning

LuckyTemplates kalendertabel: Hvad er det, og hvordan man bruger det

LuckyTemplates kalendertabel: Hvad er det, og hvordan man bruger det

LuckyTemplates kalendertabel: Hvad er det, og hvordan man bruger det

Python i LuckyTemplates: Sådan installeres og konfigureres

Python i LuckyTemplates: Sådan installeres og konfigureres

Lær, hvordan du installerer programmeringssproget Python i LuckyTemplates, og hvordan du bruger dets værktøjer til at skrive koder og vise billeder.

Beregning af dynamiske fortjenestemargener – nem analyse af LuckyTemplates med DAX

Beregning af dynamiske fortjenestemargener – nem analyse af LuckyTemplates med DAX

Lær, hvordan du beregner dynamiske fortjenstmargener ved siden af ​​LuckyTemplates, og hvordan du kan få mere indsigt ved at grave dybere ned i resultaterne.

Sortering af datotabelkolonner i LuckyTemplates

Sortering af datotabelkolonner i LuckyTemplates

Lær, hvordan du sorterer felterne fra kolonner med udvidet datotabel korrekt. Dette er en god strategi at gøre for vanskelige felter.

Find dine topprodukter for hver region i LuckyTemplates ved hjælp af DAX

Find dine topprodukter for hver region i LuckyTemplates ved hjælp af DAX

I denne artikel gennemgår jeg, hvordan du kan finde dine topprodukter pr. region ved hjælp af DAX-beregninger i LuckyTemplates, herunder funktionerne TOPN og CALCUATE.

Junk Dimension: Hvad er det, og hvorfor det er alt andet end junk

Junk Dimension: Hvad er det, og hvorfor det er alt andet end junk

Lær, hvordan du bruger en uønsket dimension til flag med lav kardinalitet, som du ønsker at inkorporere i din datamodel på en effektiv måde.