LuckyTemplates tilpassede spørrefunksjoner

For dagens opplæring skal vi bygge en LuckyTemplates tilpasset spørringsfunksjon som skal håndtere et vanlig vanskelig å håndtere format av stablede data. Denne teknikken er lett gjenbrukbar på flere rapporter og flere tabeller. Du kan se hele videoen av denne opplæringen nederst på denne bloggen.

Dette er en fortsettelse av opplæringen jeg nylig gjorde der vi behandlet et vanlig vanskelig å håndtere format av stablede data og brukte Modulo, Pivot og noen rensefunksjoner med Power Query for å transformere disse dataene til et organisert og funksjonelt format.

LuckyTemplates tilpassede spørrefunksjoner

Det er svært sannsynlig at du må gjenta denne prosessen. Hvis denne typen format kom fra en kopiering og lim inn, vil det sannsynligvis skje igjen. Så i dette tilfellet vil du sannsynligvis bygge en egendefinert funksjon som kan gjenbrukes på flere rapporter og flere tabeller, uavhengig av hvordan de heter og hva annet er i disse tabellene.

Innholdsfortegnelse

Hvordan lage og feilsøke LuckyTemplates tilpassede spørrefunksjoner

La oss gå inn i Power Query om dette. Hvis vi går til datatabellen vår, i Advanced Editor, har vi M-koden for hvordan vi endte opp med å gå fra stabeldataene til ønsket format.

LuckyTemplates tilpassede spørrefunksjoner

Hvis vi vil gjenbruke dette, høyreklikker vi bare på Data og sier, Opprett funksjon .

LuckyTemplates tilpassede spørrefunksjoner

Det står at det ikke kommer til å referere til noen parameter, men det er greit å lage en funksjon uten parametere. Vi skal svare ja, fordi vi skal legge til parameterne etter hvert i Advanced Editor. Vi kaller denne funksjonen Unstack – 3 Elements , bare fordi vi har de tre radene i råformatet. Hvis vi hadde et format med to rader, ville vi sannsynligvis bygget et separat som var to eller fire elementer.

LuckyTemplates tilpassede spørrefunksjoner

Så nå har vi denne Invoke, vi har ingen parametere, og la oss gå til Advanced Editor og begynne å jobbe med denne.

LuckyTemplates tilpassede spørrefunksjoner

For det første trenger vi ikke denne kilden. Vi skal bruke funksjonsparametrene til å definere kilden vår.

LuckyTemplates tilpassede spørrefunksjoner

Vi ønsker å definere parameteren som skal komme inn. Vi gjør det med en åpen parentes og deretter et parameternavn. La oss kalle dette, Stack , som kommer til å være den ene kolonnen med data som er de uformaterte stackdataene som kom inn fra limingen av e-postadressene.

Vi vil at dette skal komme inn som en liste, og vi vil at dette skal resultere i en tabell fordi når vi deaktiverer den fra den enkelt kolonnen til flere kolonner, går den fra en liste til en tabell. Og nå må vi konvertere den innkommende listen til en tabell slik at vi kan legge til indeksen vår, starte vår Modulo unpivot og gjøre alle tingene vi trenger å gjøre for å formatere den på nytt.

LuckyTemplates tilpassede spørrefunksjoner

Vi kaller det ConvertStack , og det kommer til å bruke en funksjon kalt Table.FromList . Som mange av M-funksjonene, gjør den akkurat det den sier. Det tar bare en liste. I dette tilfellet vil listen være stabellisten vår. Og så må vi erstatte kilden her med vår ConvertStack. Det ser ganske bra ut! Vi har ingen syntaksfeil, så la oss trykke på Ferdig.

Nå gir det oss det vi ønsket, som er muligheten til å velge en kolonne.

LuckyTemplates tilpassede spørrefunksjoner

Deretter skal vi velge TestData, som er de feilformaterte dataene. Vi velger Verdi-kolonnen og klikker OK. Etter det klikker vi på Invoke.

LuckyTemplates tilpassede spørrefunksjoner

Vi får imidlertid denne feilen. Det er veldig vanskelig å finne ut hva denne feilen er. Et av problemene med tilpassede funksjoner er at de ikke bryter ut de anvendte trinnene, du får bare ett trinn for hele den tilpassede funksjonen. Men det er en vei rundt det i feilsøkingen som jeg skal vise deg. Det vil gjøre det mye lettere å finne ut hva som skjer her.

LuckyTemplates tilpassede spørrefunksjoner

I stedet for å kjøre dette for øyeblikket som en funksjon, skal vi kjøre det som en spørring. Vi skal bare starte det Stack-anropet manuelt. Vi må definere hva Stack er fordi vi ikke tegner det gjennom samspillet med å velge det i Invoke. Så vi har Stack lik TestData, og Verdi-kolonnen til TestData.

LuckyTemplates tilpassede spørrefunksjoner

Det den gjør er at den deler den ned i de anvendte trinnene. Dette vil hjelpe oss å finne ut hvorfor dette ikke fungerer. Legg merke til en interessant ting når vi trekker Stack inn. Til å begynne med trekker den inn TestData[Value], men når vi konverterer den til en tabell, i stedet for Value er kolonneoverskriften, er kolonneoverskriften nå Kolonne1.

LuckyTemplates tilpassede spørrefunksjoner

Husk feilmeldingen, det var at den ikke kunne finne Verdi-kolonnen. Grunnen til at den ikke fant Verdi-kolonnen er at Table.FromList-funksjonen omdøper den til Column1.

Hvis vi går ned på Applied Steps, kan du se at det er i Added Custom-trinnet vi får feilen. Det er her verdien av posten ikke ble funnet.

LuckyTemplates tilpassede spørrefunksjoner

Og så, hvis vi går til Advanced Editor, finner vi det Custom-feltet, og vi kan se at det er i Text.Remove der vi tar ut de søppeltegnene vi ikke trengte, men det refererer fortsatt til feltet Verdi. Vi endrer det til kolonne 1. På samme måte, i Fjernede kolonner-feltet, refererer det til Verdi, så vi endrer det til Kolonne1 også.

LuckyTemplates tilpassede spørrefunksjoner

Og når vi kommer til slutten av Applied Steps, gir det det perfekte sluttresultatet.

LuckyTemplates tilpassede spørrefunksjoner

Nå som vi vet at dette fungerer som det skal, har vi bare en ting til å gjøre. Husk at for å feilsøke den, gjorde vi den tilpassede funksjonen til en spørring. Og så, nå må vi ta den spørringen og gjøre den tilbake til en funksjon.

LuckyTemplates tilpassede spørrefunksjoner




Konklusjon

I denne opplæringen har vi bygget denne tilpassede funksjonen, feilsøkt den, testet den, og den fungerer utmerket. Og nå, når som helst vi har en stabel med tre elementer, kan vi bare velge den tabellen, velge den kolonnen i tabellen og kjøre den egendefinerte funksjonen. Påfør deretter Modulo, unpivot, og ryd opp.

Dette bør gi deg noen fine verktøy når det gjelder å lage tilpassede funksjoner. Husk også det trikset om feilsøking ved å gjøre det tilbake til en spørring fra en funksjon og deretter bytte det tilbake etter feilsøkingen. Det er et virkelig verdifullt verktøy som gjør det mye enklere å feilsøke egendefinerte funksjoner.

Beste ønsker!


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.