LuckyTemplates brugerdefinerede forespørgselsfunktioner

Til dagens selvstudie skal vi bygge en LuckyTemplates brugerdefineret forespørgselsfunktion, der skal håndtere et almindeligt vanskeligt at håndtere format af stablede data. Denne teknik kan nemt genbruges på flere rapporter og flere tabeller. Du kan se den fulde video af denne tutorial nederst på denne blog.

Dette er en fortsættelse af den tutorial, jeg lavede for nylig, hvor vi beskæftigede os med et almindeligt vanskeligt at håndtere format af stablede data og brugte Modulo, Pivot og nogle rensefunktioner med Power Query til at transformere disse data til et organiseret og funktionelt format.

LuckyTemplates brugerdefinerede forespørgselsfunktioner

Det er meget sandsynligt, at du bliver nødt til at gentage denne proces. Hvis denne type format stammer fra en kopi og indsæt, vil det sandsynligvis ske igen. Så i dette tilfælde vil du sandsynligvis bygge en brugerdefineret funktion, der vil kunne genbruges på flere rapporter og flere tabeller, uanset hvordan de hedder, og hvad der ellers er i disse tabeller.

Indholdsfortegnelse

Sådan oprettes og fejlsøges LuckyTemplates brugerdefinerede forespørgselsfunktioner

Lad os springe ind i Power Query om dette. Hvis vi går til vores datatabel, i den avancerede editor, har vi M-koden for, hvordan vi endte med at gå fra de stakdata til det ønskede format.

LuckyTemplates brugerdefinerede forespørgselsfunktioner

Hvis vi vil genbruge dette, højreklikker vi bare på Data og siger, Opret funktion .

LuckyTemplates brugerdefinerede forespørgselsfunktioner

Den siger, at den ikke vil referere til nogen parameter, men det er okay at oprette en funktion uden parametre. Vi vil svare, ja, fordi vi vil tilføje parametrene, mens vi går i den avancerede editor. Vi kalder denne funktion, Unstack – 3 Elements , bare fordi vi har de tre rækker i råformatet. Hvis vi havde et format med to rækker, ville vi sandsynligvis bygge et separat, der var to eller fire elementer.

LuckyTemplates brugerdefinerede forespørgselsfunktioner

Så nu har vi denne Invoke, vi har ingen parametre, og lad os gå til Advanced Editor og begynde at arbejde på denne.

LuckyTemplates brugerdefinerede forespørgselsfunktioner

For det første har vi ikke brug for denne Kilde. Vi skal bruge funktionsparametrene til at definere vores kilde.

LuckyTemplates brugerdefinerede forespørgselsfunktioner

Vi ønsker at definere den parameter, der kommer ind. Vi gør det med en åben parentes og derefter et parameternavn. Lad os kalde dette, Stack , som vil være den ene kolonne med data, der er de uformaterede stakdata, der kom ind fra indsættelsen af ​​e-mail-adresserne.

Vi ønsker, at dette skal komme ind som en liste, og vi ønsker, at det skal resultere i en tabel, fordi når vi deaktiverer den fra den enkelte kolonne til flere kolonner, går den fra en liste til en tabel. Og nu skal vi konvertere den indgående liste til en tabel, så vi kan tilføje vores indeks, starte vores Modulo unpivot og gøre alle de ting, vi skal gøre for at omformatere det.

LuckyTemplates brugerdefinerede forespørgselsfunktioner

Vi kalder det ConvertStack , og det kommer til at bruge en funktion kaldet Table.FromList . Ligesom mange af M-funktionerne gør den præcis, hvad den siger. Det kræver bare en liste. I dette tilfælde vil listen være vores stakliste. Og så skal vi erstatte kilden her med vores ConvertStack. Det ser ret godt ud! Vi har ingen syntaksfejl, så lad os trykke på Udført.

Nu giver det os det, vi ønskede, som er muligheden for at vælge en kolonne.

LuckyTemplates brugerdefinerede forespørgselsfunktioner

Derefter skal vi vælge TestData, som er de forkert formaterede data. Vi vælger kolonnen Værdi og klikker derefter på OK. Derefter klikker vi på Invoke.

LuckyTemplates brugerdefinerede forespørgselsfunktioner

Vi får dog denne fejl. Det er virkelig svært at finde ud af, hvad denne fejl er. Et af problemerne med brugerdefinerede funktioner er, at de ikke bryder de anvendte trin ud, du får bare et trin for hele den tilpassede funktion. Men der er en vej uden om det i fejlsøgningen, som jeg vil vise dig. Det vil gøre det meget nemmere at finde ud af, hvad der foregår her.

LuckyTemplates brugerdefinerede forespørgselsfunktioner

I stedet for at køre dette for øjeblikket som en funktion, vil vi køre det som en forespørgsel. Vi vil bare starte det Stack-opkald manuelt. Vi er nødt til at definere, hvad Stack er, fordi vi ikke tegner det gennem interaktionen med at vælge det i Invoke. Så vi har Stack lig med TestData og værdikolonnen i TestData.

LuckyTemplates brugerdefinerede forespørgselsfunktioner

Hvad det gør, er, at det opdeler det nu i de anvendte trin. Dette vil hjælpe os med at finde ud af, hvorfor dette ikke virker. Læg mærke til en interessant ting, når vi trækker Stack ind. Til at begynde med trækker den TestData[Værdi], men når vi konverterer den til en tabel, i stedet for Value er kolonneoverskriften, er kolonneoverskriften nu Kolonne1.

LuckyTemplates brugerdefinerede forespørgselsfunktioner

Husk fejlmeddelelsen, det var, at den ikke kunne finde kolonnen Værdi. Grunden til, at den ikke kunne finde kolonnen Værdi, er, at funktionen Table.FromList omdøber den til Kolonne1.

Hvis vi går ned i Applied Steps, kan du se, at det er i Added Custom-trinnet, hvor vi får fejlen. Det er her, værdien af ​​posten ikke blev fundet.

LuckyTemplates brugerdefinerede forespørgselsfunktioner

Og så, hvis vi går til den avancerede editor, finder vi det tilpassede felt, og vi kan se, at det er i Text.Remove, hvor vi fjerner de uønskede tegn, som vi ikke havde brug for, men det henviser stadig til feltet Værdi. Vi ændrer det til kolonne 1. Ligeledes refererer det til Værdi i feltet Fjernede kolonner, så vi ændrer det også til Kolonne1.

LuckyTemplates brugerdefinerede forespørgselsfunktioner

Og når vi kommer til slutningen af ​​Applied Steps, giver det det perfekte slutresultat.

LuckyTemplates brugerdefinerede forespørgselsfunktioner

Nu hvor vi ved, at det fungerer rigtigt, har vi bare en ting mere at gøre. Husk, at for at debugge det, gjorde vi den brugerdefinerede funktion til en forespørgsel. Og så nu skal vi tage den forespørgsel og gøre den tilbage til en funktion.

LuckyTemplates brugerdefinerede forespørgselsfunktioner




Konklusion

I denne tutorial har vi bygget denne brugerdefinerede funktion, fejlrettet den, testet den, og den fungerer godt. Og så nu, hver gang vi har en tre-elements stak, kan vi bare vælge den tabel, vælge den kolonne i tabellen og køre den brugerdefinerede funktion. Anvend derefter Modulo, unpivot, og ryd op.

Dette burde give dig nogle gode værktøjer i forhold til at skabe brugerdefinerede funktioner. Husk også det trick om fejlretning ved at vende det tilbage til en forespørgsel fra en funktion og derefter skifte det tilbage efter fejlretningen. Det er et virkelig værdifuldt værktøj, der gør det meget nemmere at fejlfinde brugerdefinerede funktioner.

Alt det bedste!


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.