Power Query M: Alternerende 0-1 mønster i datotabell

Denne opplæringen fokuserer på bruk av Power Query M number.mod-funksjonen for å lage et vekslende 0-1-mønster i Dato-tabellen. Løsningen som jeg skal vise deg, kom fra en av våre strømbrukere i fellesskapet, Rajesh, på LuckyTemplates. Du kan se hele videoen av denne opplæringen nederst på denne bloggen.

Målet er å generere en sekvens med fire nuller vekslet med fire enere, og deretter gjenta den i løpet av dagen.

Power Query M: Alternerende 0-1 mønster i datotabell

Rajesh var perfekt med sin analyse og problemfordeling ved å bruke Power Query M-funksjonen for å løse det. Med det sagt, la oss gå over til Power Query.

Innholdsfortegnelse

Power Query M Number.Mod-funksjonen

DeM, spesifikt number.mod-funksjonen kommer til å være kjernen i løsningen vår. Hva gjør den?

Du kan sjekke den interne dokumentasjonen for enhver M-funksjon ved å skrive inn navnet uten parentes som vist her i formellinjen. Denne funksjonen returnerer resten av en heltallsdivisjon. Det tar opptil tre parametere, de to første, et tall og divisoren, som også er et tall.

Power Query M: Alternerende 0-1 mønster i datotabell

La oss nå komme i gang. Jeg velger et eksempelsøk som inneholder en datoperiode som jeg har forberedt.

Power Query M: Alternerende 0-1 mønster i datotabell

I mange tilfeller brukes number.mod i kombinasjon med en indekskolonne som deretter brukes som den første parameteren. Men jeg kommer ikke til å gjøre det fordi hvis du tenker på det, er datoverdien et heltall. Så å lage en indeks som deler samme granularitet som Dato-kolonnen, der hver rad har en unik verdi, er noe vi kan unngå.

Alt vi trenger å gjøre for å etterligne en indeks er å trekke den aller første datoen i datotabellen fra hver dato i Dato-kolonnen. For å gjøre det kan vi lagre startdatoverdien i en variabel slik at vi kan bruke den om og om igjen. Jeg synes Advanced Editor er det beste stedet å gjøre dette.

Så jeg åpnervindu og lag en ny variabel. La oss kalle det Startdato . Jeg har hardkodet min første date her, så jeg skal bare kopiere og lime den inn. Ikke glem kommaet på slutten, og vi kan nå erstatte den første datoen med vår startdato-variabel.

Power Query M: Alternerende 0-1 mønster i datotabell

Som du kan se, endret ingenting.

Power Query M: Alternerende 0-1 mønster i datotabell

Opprette egendefinert kolonne for Power Query M-mønsteret

Så via denne minitabellen skal vi legge til en egendefinert kolonne.

Power Query M: Alternerende 0-1 mønster i datotabell

La oss kalle denne kolonnen, Pattern , og angi Power Query M-funksjonen, number.mod . Du ser de to parameterne her, et tall som et nullbart tall og en divisor som et nullbart tall. Så det krever to talltypeverdier som parametere.

Power Query M: Alternerende 0-1 mønster i datotabell

Nå har vi ikke tall, ikke sant? Vi har datoer og det er ikke noe slikt som automatisk typekonvertering i dem. Så vi må få tallet fra datoverdien vår. Så vi skriver inn her, number.from deretter Dato- kolonnen og trekker deretter fra StartDate- variabelen.

Power Query M: Alternerende 0-1 mønster i datotabell

Nå, la oss si den første daten i vårreturnerer en en, så vil vår Startdato også returnere en en. Så en minus en er lik null. Jeg vil at indeksnummereringen vår skal begynne med en i stedet for null. Så vi må legge til én tilbake pluss én. Nå er én minus én lik null pluss én gir én én for den første posten.

Power Query M: Alternerende 0-1 mønster i datotabell

For den andre posten får vi en to (2) verdi for datoen i Dato-kolonnen, minus en en (1) fra StartDate-verdien vår som tilsvarer én, pluss den vi legger til tilbake returnerer en to, og så videre . Vårt repeterende mønster var basert på en serie med fire vekslende verdier. Så som divisor skal jeg gi verdien fire (4).

Power Query M: Alternerende 0-1 mønster i datotabell

La oss se hva det gjør. I rad fire får vi null, så vel som i rad åtte. Så hver fjerde forekomst returnerer en nullverdi for den posten.

Power Query M: Alternerende 0-1 mønster i datotabell

Opprette en IF-THEN-ANDERE-konstruksjon

La oss gå tilbake til kundedialogboksen vår og utvide logikken vi har skrevet så langt. Bortsett fra divisor, må vi gjenta den samme logikken for å kunne identifisere en åttende forekomst.

På den åttende raden ønsker vi imidlertid en annen verdi. Så for å skille mellom en fjerde og en åttende forekomst, kan vi bruke en IF-THEN-ELSE-konstruksjon. På den måten kan vi returnere en verdi for den første logiske testen som returnerer en sann.

hvis , og jeg limer tilbake koden vår her (bortsett fra divisor), endre den divisor til en åtte slik at en åttende rad vil returnere null. Så hvis det er lik null, betyr det at det ikke vil være sant eller usant. Da vil vi ha en (1). Ellers , hvis logikken vår her identifiserer at en fjerde rad er lik null, vil vi ha null (0). Ellers ønsker vi ikke å få en verdi tilbake. Så la oss legge til en null .

Power Query M: Alternerende 0-1 mønster i datotabell

La oss nå sjekke logikken vår igjen. Så ved hver fjerde forekomst får vi den nullen. Og så, den åttende, får vi en. Deretter får vi null og en ener, og så videre.

Så dette ser bra ut. Alt vi trenger å gjøre nå er å fylle opp disse verdiene.

Power Query M: Alternerende 0-1 mønster i datotabell

Så inne i formellinjen legger vi til en Table.FillUp i begynnelsen og deretter noen åpningsparenteser. På slutten av koden vår legger vi til typenummer – vi må også legge til en kolonne som en liste. Så vi går med komma , bruker deretter de krøllede parentesene for listeinitialisering og som en tekstverdi passerer kolonnenavnet vårt, Pattern . Ikke glem de avsluttende parentesene og trykk OK.

Power Query M: Alternerende 0-1 mønster i datotabell




Konklusjon

Dette er et veldig unikt scenario, og ærlig talt kan jeg ikke komme på en applikasjon for dette spesifikke mønsteret, men forhåpentligvis kan du se potensialet ved å lage sekvenser ved å bruke Power Query M-funksjonen, number.mod.

For mer informasjon, se hele videoen nedenfor for denne opplæringen.

Beste ønsker!

Melissa


DAX Studio EVALUATE Nøkkelord: Grunnleggende eksempler

DAX Studio EVALUATE Nøkkelord: Grunnleggende eksempler

Lær å bruke DAX Studio EVALUATE nøkkelordet med grunnleggende eksempler og få en bedre forståelse av hvordan dette kan hjelpe deg med databehandling.

Opprette en datotabell i LuckyTemplates

Opprette en datotabell i LuckyTemplates

Finn ut hvorfor det er viktig å ha en dedikert datotabell i LuckyTemplates, og lær den raskeste og mest effektive måten å gjøre det på.

LuckyTemplates Mobile Reporting Tips og teknikker

LuckyTemplates Mobile Reporting Tips og teknikker

Denne korte opplæringen fremhever LuckyTemplates mobilrapporteringsfunksjon. Jeg skal vise deg hvordan du kan utvikle rapporter effektivt for mobil.

Profesjonelle tjenesteanalyserapporter i LuckyTemplates

Profesjonelle tjenesteanalyserapporter i LuckyTemplates

I denne LuckyTemplates-utstillingen vil vi gå gjennom rapporter som viser profesjonell tjenesteanalyse fra et firma som har flere kontrakter og kundeengasjementer.

Microsoft Power Platform-oppdateringer | Microsoft Ignite 2021

Microsoft Power Platform-oppdateringer | Microsoft Ignite 2021

Gå gjennom de viktigste oppdateringene for Power Apps og Power Automate og deres fordeler og implikasjoner for Microsoft Power Platform.

Vanlige SQL-funksjoner: en oversikt

Vanlige SQL-funksjoner: en oversikt

Oppdag noen vanlige SQL-funksjoner som vi kan bruke som streng, dato og noen avanserte funksjoner for å behandle eller manipulere data.

LuckyTemplates Template Creation: Guide og tips

LuckyTemplates Template Creation: Guide og tips

I denne opplæringen lærer du hvordan du lager din perfekte LuckyTemplates-mal som er konfigurert til dine behov og preferanser.

Feltparametre og små multipler i LuckyTemplates

Feltparametre og små multipler i LuckyTemplates

I denne bloggen vil vi demonstrere hvordan du legger feltparametere sammen med små multipler for å skape utrolig nyttig innsikt og grafikk.

LuckyTemplates-rangering og tilpasset gruppering

LuckyTemplates-rangering og tilpasset gruppering

I denne bloggen vil du lære hvordan du bruker LuckyTemplates rangering og tilpassede grupperingsfunksjoner for å segmentere et eksempeldata og rangere det i henhold til kriterier.

Viser kun kumulativ total opp til en bestemt dato i LuckyTemplates

Viser kun kumulativ total opp til en bestemt dato i LuckyTemplates

I denne opplæringen skal jeg dekke en spesifikk teknikk rundt hvordan du viser kumulativ total kun opp til en bestemt dato i grafikken i LuckyTemplates.