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


LuckyTemplates Shape Map Visualization for romlig analyse

LuckyTemplates Shape Map Visualization for romlig analyse

Denne bloggen inneholder Shape Map-visualiseringen for romlig analyse i LuckyTemplates. Jeg viser deg hvordan du kan bruke denne visualiseringen effektivt med dens funksjoner og elementer.

LuckyTemplates finansiell rapportering: Allokering av resultater til maler på hver enkelt rad

LuckyTemplates finansiell rapportering: Allokering av resultater til maler på hver enkelt rad

I denne opplæringen viser jeg frem en unik idé rundt finansiell rapportering, som tildeler resultater for å forhåndsbestemme tabellmaler inne i LuckyTemplates.

DAX-mål i LuckyTemplates ved hjelp av måleforgrening

DAX-mål i LuckyTemplates ved hjelp av måleforgrening

Opprett DAX-mål i LuckyTemplates ved å bruke eksisterende mål eller formler. Dette er det jeg kaller tiltaket forgreningsteknikk.

Den kraftigste funksjonsanropet i LuckyTemplates

Den kraftigste funksjonsanropet i LuckyTemplates

I denne bloggen kan du utforske LuckyTemplates-datasettet, det kraftigste funksjonskallet som bringer tusenvis av M- og DAX-funksjoner til fingertuppene.

Datamodelleringsteknikker for å organisere DAX-mål

Datamodelleringsteknikker for å organisere DAX-mål

For dagens veiledning vil jeg dele noen få datamodelleringsteknikker for hvordan du kan organisere DAX-tiltakene dine bedre for en mer effektiv arbeidsflyt.

LuckyTemplates Financial Dashboard: Komplette tabelltilpasningstips

LuckyTemplates Financial Dashboard: Komplette tabelltilpasningstips

LuckyTemplates er et flott verktøy for finansiell rapportering. Her er en veiledning om hvordan du lager tilpassede tabeller for ditt LuckyTemplates økonomiske dashbord.

Gode ​​fremgangsmåter for Power Query Language Flow

Gode ​​fremgangsmåter for Power Query Language Flow

Denne opplæringen vil diskutere Power Query Language Flow og hvordan den kan bidra til å lage en jevn og effektiv datarapport.

LuckyTemplates egendefinerte ikoner | PBI visualiseringsteknikk

LuckyTemplates egendefinerte ikoner | PBI visualiseringsteknikk

Jeg vil diskutere en av mine favorittteknikker rundt LuckyTemplates egendefinerte ikoner, som bruker egendefinerte ikoner på en dynamisk måte i LuckyTemplates visuals.

Opprette LuckyTemplates-tabeller ved å bruke UNION & ROW-funksjonen

Opprette LuckyTemplates-tabeller ved å bruke UNION & ROW-funksjonen

I denne bloggen viser jeg deg hvordan du kan lage LuckyTemplates-tabeller ved å bruke en formel som kombinerer UNION-funksjonen og ROW-funksjonen.

On-Premises Data Gateway In Power Automate

On-Premises Data Gateway In Power Automate

Oppdag hvordan on-premises data gateway lar Power Automate få tilgang til skrivebordsapplikasjoner når brukeren er borte fra datamaskinen.