Skapa en anpassad textrengöringsfunktion i Power Query

I det här blogginlägget ska vi titta närmare på en anpassad funktion för textrensning som jag skapat för vår pågående serie på LuckyTemplates TV som heter . Du kan se hela videon av denna handledning längst ner på den här bloggen.

För vecka #2 har vi en del rörig data som behöver städas upp. Vårt mål här är att rensa alla textvärden i båda kolumnerna.

För den här uppgiften skapade jag en ren textfunktion.

Skapa en anpassad textrengöringsfunktion i Power Query

Men först, låt oss ta en snabb titt på M-koden.

Skapa en anpassad textrengöringsfunktion i Power Query

Denna funktion tar enkallas myText. Dess värde bör vara av typen text och funktionen bör returnera ett textvärde eftersom inte alla variabler som listas nedan kommer att returnera ett textvärde.

Skapa en anpassad textrengöringsfunktion i Power Query

Att deklarera returtypen kommer att resultera i ett fel. För att förhindra att det felet inträffar kan jag kommentera det tills vidare.

Skapa en anpassad textrengöringsfunktion i Power Query

Om vi ​​vill se vad den första variabeln returnerar, är allt vi behöver göra att referera till den med namn, efter in-satsen. Så jag ska kopiera ToRemove-variabeln, klistra in den på den nedersta raden och trycka på Okej.

Skapa en anpassad textrengöringsfunktion i Power Query

För att se resultatet av den funktionen måste vi anropa den. Så låt oss lägga till en anpassad kolumn till den här frågan.

Skapa en anpassad textrengöringsfunktion i Power Query

Anropa sedan vår funktion, välj denna sammanslagna kolumn och tryck på Okej.

Skapa en anpassad textrengöringsfunktion i Power Query

Innehållsförteckning

Skapa listor från tom fråga

Vi ser nu att ToRemove-steget skapar en lista. I själva verket är det en kombination av två listor.

Den första listan skapade citattecken och den andra listan är en rad tecken som jag ville ta bort.

Skapa en anpassad textrengöringsfunktion i Power Query

Hur skapade jag den här listan?

Tja, jag använde en funktion som heter Txt.ToList.

Du kan komma åt den interna funktionsdokumentationen genom att skapa en tom fråga, ange funktionsnamnet utan parentes och sedan trycka på Enter.

Skapa en anpassad textrengöringsfunktion i Power Query

Vi ser att Text.ToList returnerar en lista med teckenvärden från ett givet textvärde.

Låt oss klistra in några texter och anropa den här funktionen.

Skapa en anpassad textrengöringsfunktion i Power Query

Det skapar en ny fråga och du kan se att den här listan innehåller alla bokstäver som vi ser här i texten.

Skapa en anpassad textrengöringsfunktion i Power Query

Kom ihåg att jag lade till en extra lista, eller hur? Jag kombinerade två listor och använde et-tecken för att göra det.

Låt oss återskapa det nu. Jag använde et-tecken och listinitieraren och skrev sedan in dessa citattecken.

Skapa en anpassad textrengöringsfunktion i Power Query

Vi ser nu att citaten har lagts till i den här listan, men varför skapade jag en lista?

Skapa en anpassad textrengöringsfunktion i Power Query

Tja, i nästa steg av min textrensningsfunktion använde jag en M-funktion som heter Text. Avlägsna.

Skapa en anpassad textrengöringsfunktion i Power Query

Och du ser att du kan skriva in en text och sedan en lista med tecken som du vill ta bort från den strängen.

Skapa en anpassad textrengöringsfunktion i Power Query

Låt oss gå tillbaka till vår textrensningsfunktion.

Skapa en anpassad textrengöringsfunktion i Power Query

Till. Ta bort skapade dessa två listor och kombinerade dem sedan till en enda lista.

Skapa en anpassad textrengöringsfunktion i Power Query

Och låt oss sedan klistra in variabeln CleanText. 'in'-satsen anropar M-funktionen Text.Remove och skickar myText-variabeln och anropar sedan To.Remove-listan. Låt oss se vad det här gör.

Skapa en anpassad textrengöringsfunktion i Power Query

Låt oss gå tillbaka till vår fråga. Detta returnerar inte längre en lista, men det returnerar vissa textvärden.

Skapa en anpassad textrengöringsfunktion i Power Query

Trimning i Power Query

Nästa steg är trimning . Som du kan se på bilden ovan har vi ytterligare några mellanslag och ett kommatecken i slutet som vi vill bli av med. För att göra detta kan vi använda trimfunktionerna. Låt oss gå tillbaka till frågan för att undersöka M-koden.

I M-koden kapslade jag 2 trimfunktioner. Den första strängfunktionen tar bort de ytterligare utrymmena längst fram och i slutet av vår CleanText-variabel.

Skapa en anpassad textrengöringsfunktion i Power Query

För de återstående texterna som vi har tar vi också bort mellanslagen från resultatsträngen.

Vi kommer också att ta bort det avslutande kommatecken.

Skapa en anpassad textrengöringsfunktion i Power Query

Låt oss se resultatet. Jag ska kopiera variabelnamnet, klistra in det efter "in"-satsen och klicka på Klar. När vi uppdaterar vår fråga kan du se att de ytterligare blanksteg har försvunnit och det avslutande kommatecken har tagits bort.

Skapa en anpassad textrengöringsfunktion i Power Query

I de sista stegen av min fråga bytte jag bara ut några textvärden.

Skapa en anpassad textrengöringsfunktion i Power Query

I det sista fallet ersatte jag det understrecket med ett mellanslag. Låt oss kopiera det och klistra in det efter "in"-satsen. Jag aktiverade också returtypen igen.

Skapa en anpassad textrengöringsfunktion i Power Query

Låt oss gå tillbaka till vår fråga och undersöka resultaten – än så länge, så bra!

Skapa en anpassad textrengöringsfunktion i Power Query

Nu vill vi inte skapa nya kolumner för att anropa vår funktion, eller hur? Det vi kan göra är att omvandla vår kolumn 1 till vår sammanslagningskolumn istället.

Jag ska ta bort det här anpassade kolumnsteget.

Skapa en anpassad textrengöringsfunktion i Power Query

Sedan ska jag använda UI för att skapa huvuddelen av koden åt oss. Välj båda kolumnerna på transformeringsfliken, gå till Format och välj en funktion.

Skapa en anpassad textrengöringsfunktion i Power Query

Det spelar egentligen ingen roll vilken funktion som väljs eftersom detta är M-koden som genereras av användargränssnittet. Vi kan nu ersätta den texten. Nedre funktion...

Skapa en anpassad textrengöringsfunktion i Power Query

… med vår rena textfunktion. Förhoppningsvis förstår du varför jag var tvungen att lägga till fx framför. Det finns ingen "i funktion" som börjar med det.

Skapa en anpassad textrengöringsfunktion i Power Query

När vi trycker på OK kan du se att våra texter är rensade. Det här är häftigt.

Skapa en anpassad textrengöringsfunktion i Power Query

Slutsats

Varför behövde vi gå igenom alla problem med att skapa en anpassad rengöringsfunktion? Tja, om det är troligt att du kommer att behöva upprepa det här steget eller använda liknande logik i framtiden, kan du lagra denna funktionsfråga.

Genom att göra det kommer det att påskynda frågeutvecklingen i ett senare skede. En annan bra anledning är att det också är roligt att göra.

Jag hoppas att du gillade den här handledningen. Om du gjorde det, glöm inte att prenumerera på LuckyTemplates-kanalen .

Melissa


Pipe In R: Anslutningsfunktioner med Dplyr

Pipe In R: Anslutningsfunktioner med Dplyr

I den här handledningen kommer du att lära dig hur du kopplar ihop funktioner med hjälp av dplyr-röroperatorn i programmeringsspråket R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX från LuckyTemplates låter dig returnera rankningen av ett specifikt nummer i varje tabellrad som utgör en del av en lista med nummer.

Extrahera LuckyTemplates-teman och bilder från PBIX

Extrahera LuckyTemplates-teman och bilder från PBIX

Lär dig hur du tar isär en PBIX-fil för att extrahera LuckyTemplates-teman och bilder från bakgrunden och använda den för att skapa din rapport!

Excel Formler Fuskblad: Mellanvägledning

Excel Formler Fuskblad: Mellanvägledning

Excel Formler Fuskblad: Mellanvägledning

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

Python i LuckyTemplates: Hur man installerar och ställer in

Python i LuckyTemplates: Hur man installerar och ställer in

Lär dig hur du installerar programmeringsspråket Python i LuckyTemplates och hur du använder dess verktyg för att skriva koder och visa bilder.

Beräkna dynamiska vinstmarginaler – enkel analys av LuckyTemplates med DAX

Beräkna dynamiska vinstmarginaler – enkel analys av LuckyTemplates med DAX

Lär dig hur du beräknar dynamiska vinstmarginaler vid sidan av LuckyTemplates och hur du kan få fler insikter genom att gräva djupare i resultaten.

Sortering av datumtabellkolumner i LuckyTemplates

Sortering av datumtabellkolumner i LuckyTemplates

Lär dig hur du sorterar fälten från en utökad datumtabells kolumner korrekt. Detta är en bra strategi att göra för svåra fält.

Hitta dina bästa produkter för varje region i LuckyTemplates med DAX

Hitta dina bästa produkter för varje region i LuckyTemplates med DAX

I den här artikeln går jag igenom hur du kan hitta dina toppprodukter per region med hjälp av DAX-beräkningar i LuckyTemplates, inklusive TOPN- och CALCULATE-funktionerna.

Skräpdimension: Vad är det och varför det är allt annat än skräp

Skräpdimension: Vad är det och varför det är allt annat än skräp

Lär dig hur du använder en skräpdimension för flaggor med låg kardinalitet som du vill infoga i din datamodell på ett effektivt sätt.