Power Query M: Skiftende 0-1 mønster i datotabel

Denne øvelse fokuserer på at bruge Power Query M number.mod-funktionen til at skabe et skiftende 0-1-mønster i Dato-tabellen. Løsningen, som jeg vil vise dig, kom fra en af ​​vores superbrugere i fællesskabet, Rajesh, hos LuckyTemplates. Du kan se den fulde video af denne tutorial nederst på denne blog.

Målet er at generere en sekvens af fire nuller vekslet med fire enere og derefter gentage den i løbet af dagen.

Power Query M: Skiftende 0-1 mønster i datotabel

Rajesh var spot on med sin analyse og problemfordeling ved at bruge Power Query M-funktionen til at løse det. Med det sagt, lad os gå over til Power Query.

Indholdsfortegnelse

Power Query M Number.Mod-funktionen

DetM, specifikt nummer.mod-funktionen kommer til at være kernen i vores løsning. Hvad gør den?

Du kan kontrollere den interne dokumentation for enhver M-funktion ved at indtaste dens navn uden parentes som vist her i formellinjen. Denne funktion returnerer resten af ​​en heltalsdivision. Det tager op til tre parametre, de to første, et tal og divisoren, som også er et tal.

Power Query M: Skiftende 0-1 mønster i datotabel

Lad os nu komme i gang. Jeg vælger min eksempelforespørgsel, der indeholder et datointerval, som jeg har forberedt.

Power Query M: Skiftende 0-1 mønster i datotabel

I mange tilfælde bruges number.mod i kombination med en indekskolonne, der derefter bruges som dens første parameter. Men det vil jeg ikke gøre, for hvis du tænker over det, er datoværdien et heltal. Så at skabe et indeks, der deler samme granularitet som kolonnen Dato, hvor hver række har en unik værdi, er noget, vi kan undgå.

Alt, hvad vi skal gøre for at efterligne et indeks, er at trække den allerførste dato i vores Dato-tabel fra hver dato i kolonnen Dato. For at gøre det kan vi gemme startdatoværdien i en variabel, så vi kan bruge den igen og igen. Jeg synes, at Advanced Editor er det bedste sted at gøre dette.

Så jeg åbnervindue og opret en ny variabel. Lad os kalde det Startdato . Jeg har hårdkodet min første date her, så jeg vil bare kopiere og indsætte den. Glem ikke kommaet i slutningen, og vi kan nu erstatte den første dato med vores startdato-variabel.

Power Query M: Skiftende 0-1 mønster i datotabel

Som du kan se, ændrede intet sig.

Power Query M: Skiftende 0-1 mønster i datotabel

Oprettelse af brugerdefineret kolonne til Power Query M-mønsteret

Så via denne minitabel vil vi tilføje en brugerdefineret kolonne.

Power Query M: Skiftende 0-1 mønster i datotabel

Lad os kalde denne kolonne, Pattern , og indtaste Power Query M-funktionen, number.mod . Du ser de to parametre her, et tal som et nullbart tal og en divisor som et nullbart tal. Så det kræver to taltypeværdier som parametre.

Power Query M: Skiftende 0-1 mønster i datotabel

Nu har vi ikke tal, vel? Vi har datoer, og der er ikke sådan noget som automatisk typekonvertering i dem. Så vi skal have tallet fra vores datoværdi. Så vi indtaster her, number.from derefter vores Dato- kolonne og trækker derefter vores StartDate- variabel.

Power Query M: Skiftende 0-1 mønster i datotabel

Lad os nu sige den første date i voresreturnerer en en, så vil vores Startdato også returnere en en. Så en minus en er lig med nul. Jeg vil have vores indeksnummerering til at starte med et et i stedet for et nul. Så vi bliver nødt til at tilføje én tilbage plus én. Nu er én minus én lig med nul plus én returnerer én for den første post.

Power Query M: Skiftende 0-1 mønster i datotabel

For den anden post får vi en værdi på to (2) for datoen i kolonnen Dato, minus en en (1) fra vores Startdato-værdi, der er lig med én, plus den, vi tilføjer tilbage, returnerer en to, og så videre . Vores gentagne mønster var baseret på en række af fire alternerende værdier. Så som divisor vil jeg give værdien fire (4).

Power Query M: Skiftende 0-1 mønster i datotabel

Lad os se, hvad det gør. I række fire får vi nul, såvel som i række otte. Så hver fjerde forekomst returnerer en nulværdi for denne post.

Power Query M: Skiftende 0-1 mønster i datotabel

Oprettelse af en HVIS-SÅ-ANDEN-konstruktion

Lad os gå tilbage til vores kundedialogboks og udvide den logik, vi har skrevet indtil nu. Bortset fra divisoren skal vi gentage den samme logik for at kunne identificere en ottende forekomst.

Men på den ottende række ønsker vi en anden værdi. Så for at skelne mellem en fjerde og en ottende forekomst kan vi bruge en HVIS-SÅ-ELSE-konstruktion. På den måde kan vi returnere en værdi for den første logiske test, der returnerer en sand.

hvis , og jeg indsætter vores kode tilbage her (undtagen divisoren), skal du ændre den divisor til en otte, så en ottende række vil returnere nul. Så hvis det er lig med nul, betyder det, at det vil fejle din vej til sand eller falsk. vil vi have en (1). Ellers , hvis vores logik her identificerer en fjerde række er lig med nul, vil vi have nul (0). Ellers ønsker vi ikke at få en værdi tilbage. Så lad os tilføje et null .

Power Query M: Skiftende 0-1 mønster i datotabel

Lad os nu tjekke vores logik igen. Så ved hver fjerde forekomst får vi det nul. Og så, den ottende, får vi en en. Dernæst får vi nul og en et, og så videre.

Så det her ser godt ud. Det eneste, vi skal gøre nu, er at fylde disse værdier op.

Power Query M: Skiftende 0-1 mønster i datotabel

Så inde i formellinjen tilføjer vi en Table.FillUp i begyndelsen og derefter nogle åbningsparenteser. I slutningen af ​​vores kode tilføjer vi typenummer - vi skal også tilføje en kolonne som en liste. Så vi går med komma , og brug derefter de krøllede parenteser til listeinitialisering og som en tekstværdi passerer vores kolonnenavn, Pattern . Glem ikke de afsluttende parenteser og tryk på OK.

Power Query M: Skiftende 0-1 mønster i datotabel




Konklusion

Dette er et meget unikt scenarie, og ærligt talt kan jeg ikke komme i tanke om en applikation til dette specifikke mønster, men forhåbentlig kan du se potentialet i at skabe sekvenser ved hjælp af Power Query M-funktionen, number.mod.

For flere detaljer, se den fulde video nedenfor for denne tutorial.

Alt det bedste!

Melissa


Oplev unik indsigt ved hjælp af LuckyTemplates TOPN-funktion

Oplev unik indsigt ved hjælp af LuckyTemplates TOPN-funktion

Denne blog indeholder LuckyTemplates TOPN DAX-funktionen, som giver dig mulighed for at få unik indsigt fra dine data, hvilket hjælper dig med at træffe bedre markedsføringsbeslutninger.

Datamodellering i LuckyTemplates ved hjælp af understøttende tabeller

Datamodellering i LuckyTemplates ved hjælp af understøttende tabeller

Lær nogle fantastiske analytiske teknikker, som vi kan gøre til datamodellering i LuckyTemplates ved hjælp af DAX-understøttende tabeller.

Avanceret DAX til LuckyTemplates: Implementering af rangeringslogik på tværs af unikke indsigter

Avanceret DAX til LuckyTemplates: Implementering af rangeringslogik på tværs af unikke indsigter

Her dykker vi ned i LuckyTemplates Advanced DAX og implementerer rangeringslogik for at få en meget unik indsigt. Jeg viser også måleforgrening i dette eksempel.

LuckyTemplates What-If-parameterfunktion

LuckyTemplates What-If-parameterfunktion

Denne blog introducerer den nye funktion i LuckyTemplates, What-If-analyseparameteren. Du vil se, hvordan det gør alt hurtigt og nemt til din scenarieanalyse.

Brug LuckyTemplates Mål forgrening for at kontrollere, om dine avancer udvides, efterhånden som omsætningen vokser

Brug LuckyTemplates Mål forgrening for at kontrollere, om dine avancer udvides, efterhånden som omsætningen vokser

Lær, hvordan du afgør, om din omsætningsvækst er god ved at kontrollere, om dine avancer er udvidet ved hjælp af LuckyTemplates, der måler forgrening.

LuckyTemplates-parametre via forespørgselseditor

LuckyTemplates-parametre via forespørgselseditor

Lær og forstå, hvordan du kan oprette og bruge LuckyTemplates Parameters, som er en kraftfuld funktion i Query Editor.

Rundt søjlediagram – en visualisering til dit dashboard

Rundt søjlediagram – en visualisering til dit dashboard

Denne vejledning vil diskutere om oprettelse af et rundt søjlediagram ved hjælp af Charticulator. Du lærer, hvordan du designer dem til din LuckyTemplates-rapport.

PowerApps funktioner og formler | En introduktion

PowerApps funktioner og formler | En introduktion

Lær, hvordan du bruger PowerApps-funktioner og -formler til at forbedre funktionaliteten og ændre adfærd i vores Power Apps-lærredsapp.

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.