Power Query M: Alternerande 0-1 mönster i datumtabell

Den här handledningen fokuserar på att använda Power Query M number.mod-funktionen för att skapa ett alternerande 0-1-mönster i datumtabellen. Lösningen som jag kommer att visa dig kom från en av våra kraftanvändare, Rajesh, på LuckyTemplates. Du kan se hela videon av denna handledning längst ner på den här bloggen.

Målet är att generera en sekvens med fyra nollor alternerade med fyra ettor, och sedan upprepa den under hela dagen.

Power Query M: Alternerande 0-1 mönster i datumtabell

Rajesh var perfekt med sin analys och problemuppdelning med hjälp av Power Query M-funktionen för att lösa det. Med det sagt, låt oss gå över till Power Query.

Innehållsförteckning

Power Query M Number.Mod-funktionen

DeM, specifikt nummer.mod-funktionen kommer att vara kärnan i vår lösning. Vad gör den?

Du kan kontrollera den interna dokumentationen för valfri M-funktion genom att ange dess namn utan parentes som visas här i formelfältet. Denna funktion returnerar resten av en heltalsdivision. Det tar upp till tre parametrar, de två första, ett tal och divisorn, som också är ett tal.

Power Query M: Alternerande 0-1 mönster i datumtabell

Nu börjar vi. Jag väljer min exempelfråga som innehåller ett datumintervall som jag har förberett.

Power Query M: Alternerande 0-1 mönster i datumtabell

I många fall används number.mod i kombination med en indexkolumn som sedan används som dess första parameter. Men jag tänker inte göra det för om du tänker efter så är datumvärdet ett heltal. Så att skapa ett index som delar samma granularitet som kolumnen Datum, där varje rad har ett unikt värde är något som vi kan undvika.

Allt vi behöver göra för att efterlikna ett index är att subtrahera det allra första datumet i vår datumtabell från varje datum i kolumnen Datum. För att göra det kan vi lagra startdatumvärdet i en variabel så att vi kan använda det om och om igen. Jag tycker att Advanced Editor är det bästa stället att göra detta.

Så jag öppnarfönster och skapa en ny variabel. Låt oss kalla det StartDate . Jag hårdkodade min första dejt här så jag ska bara kopiera och klistra in den. Glöm inte kommatecken i slutet, så kan vi nu ersätta det första datumet med vår startdatum-variabel.

Power Query M: Alternerande 0-1 mönster i datumtabell

Som du kan se förändrades ingenting.

Power Query M: Alternerande 0-1 mönster i datumtabell

Skapa anpassad kolumn för Power Query M-mönstret

Så via denna minitabell kommer vi att lägga till en anpassad kolumn.

Power Query M: Alternerande 0-1 mönster i datumtabell

Låt oss kalla denna kolumn, Pattern , och ange Power Query M-funktionen, number.mod . Du ser de två parametrarna här, ett tal som ett nullbart tal och en divisor som ett nullbart tal. Så det kräver två nummertypsvärden som parametrar.

Power Query M: Alternerande 0-1 mönster i datumtabell

Nu har vi inga siffror, eller hur? Vi har datum och det finns inget sådant som automatisk typkonvertering i dem. Så vi måste få numret från vårt datumvärde. Så vi skriver in här, number.from sedan vår Date- kolumn och subtraherar sedan vår StartDate- variabel.

Power Query M: Alternerande 0-1 mönster i datumtabell

Nu, låt oss säga den första dejten i vårreturnerar en etta, då kommer vårt startdatum också att returnera ett. Så ett minus ett är lika med noll. Jag vill att vår indexnumrering ska börja med en etta istället för en nolla. Så vi måste lägga till en tillbaka plus en. Nu är ett minus ett lika med noll plus ett ger en etta för den första posten.

Power Query M: Alternerande 0-1 mönster i datumtabell

För den andra posten får vi ett två (2) värde för datumet i kolumnen Datum, minus en etta (1) från vårt StartDate-värde som är lika med ett, plus det vi lägger tillbaka ger två, och så vidare . Vårt upprepande mönster baserades på en serie med fyra alternerande värden. Så som en divisor kommer jag att passera in värdet fyra (4).

Power Query M: Alternerande 0-1 mönster i datumtabell

Låt oss se vad det gör. På rad fyra får vi noll, liksom på rad åtta. Så varje fjärde förekomst returnerar ett nollvärde för den posten.

Power Query M: Alternerande 0-1 mönster i datumtabell

Skapa en OM-DÅ-ANNARE-konstruktion

Låt oss gå tillbaka till vår kunddialogruta och utöka den logik vi har skrivit hittills. Förutom divisorn måste vi upprepa samma logik för att kunna identifiera en åttonde förekomst.

Men på den åttonde raden vill vi ha ett annat värde. Så för att göra en skillnad mellan en fjärde och en åttonde förekomst kan vi använda en OM-DÅ-ANNE-konstruktion. På så sätt kan vi returnera ett värde för det första logiska testet som returnerar ett sant.

om , och jag ska klistra tillbaka vår kod här (förutom divisorn), ändra den divisorn till en åtta så att en åttonde rad returnerar noll. Så om det är lika med noll, betyder det att det kommer att misslyckas din väg till sant eller falskt. vill vi ha en etta (1). Annars , om vår logik här identifierar en fjärde rad är lika med noll, vill vi ha noll (0). Annars vill vi inte få tillbaka ett värde. Så låt oss lägga till en noll .

Power Query M: Alternerande 0-1 mönster i datumtabell

Nu ska vi kolla vår logik igen. Så vid var fjärde förekomst får vi den nollan. Och sedan, den åttonde, får vi en etta. Därefter får vi noll och en etta och så vidare.

Så det här ser bra ut. Allt vi behöver göra nu är att fylla på dessa värden.

Power Query M: Alternerande 0-1 mönster i datumtabell

Så inuti formelfältet lägger vi till en Table.FillUp i början och sedan några öppningsparenteser. I slutet av vår kod lägger vi till typnummer – vi måste också lägga till en kolumn som en lista. Så vi går till kommatecken , använd sedan hakparenteserna för listinitierare och som ett textvärde skickar vi in ​​vårt kolumnnamn, Pattern . Glöm inte de avslutande parenteserna och tryck på OK.

Power Query M: Alternerande 0-1 mönster i datumtabell




Slutsats

Detta är ett väldigt unikt scenario, och ärligt talat kan jag inte komma på en applikation för detta specifika mönster, men förhoppningsvis kan du se potentialen i att skapa sekvenser med hjälp av Power Query M-funktionen, number.mod.

För mer information, titta på hela videon nedan för denna handledning.

Med vänliga hälsningar!

Melissa


Upptäck unika insikter med LuckyTemplates TOPN-funktion

Upptäck unika insikter med LuckyTemplates TOPN-funktion

Den här bloggen innehåller LuckyTemplates TOPN DAX-funktion, som gör att du kan få unika insikter från dina data, vilket hjälper dig att fatta bättre marknadsföringsbeslut.

Datamodellering i LuckyTemplates med hjälp av stödtabeller

Datamodellering i LuckyTemplates med hjälp av stödtabeller

Lär dig några fantastiska analytiska tekniker som vi kan göra för datamodellering i LuckyTemplates med hjälp av DAX-stödtabeller.

Avancerad DAX för LuckyTemplates: Implementering av rankningslogik över unika insikter

Avancerad DAX för LuckyTemplates: Implementering av rankningslogik över unika insikter

Här dyker vi in ​​i LuckyTemplates Advanced DAX och implementerar rankningslogik för att få en mycket unik insikt. Jag visar också upp måttförgrening i det här exemplet.

LuckyTemplates What-If-parameterfunktion

LuckyTemplates What-If-parameterfunktion

Den här bloggen introducerar den nya funktionen i LuckyTemplates, analysparametern What-If. Du kommer att se hur det gör allt snabbt och enkelt för din scenarioanalys.

Använd LuckyTemplates Mät förgreningar för att kontrollera om dina marginaler ökar när intäkterna växer

Använd LuckyTemplates Mät förgreningar för att kontrollera om dina marginaler ökar när intäkterna växer

Lär dig hur du avgör om din intäktstillväxt är bra genom att kontrollera om dina marginaler ökade med hjälp av LuckyTemplates mäter förgrening.

LuckyTemplates parametrar via frågeredigerare

LuckyTemplates parametrar via frågeredigerare

Lär dig och förstå hur du kan skapa och använda LuckyTemplates-parametrar som är en kraftfull funktion i frågeredigeraren.

Runda stapeldiagram – En visualisering för din instrumentpanel

Runda stapeldiagram – En visualisering för din instrumentpanel

Denna handledning kommer att diskutera hur man skapar ett runt stapeldiagram med Charticulator. Du kommer att lära dig hur du designar dem för din LuckyTemplates-rapport.

PowerApps funktioner och formler | En introduktion

PowerApps funktioner och formler | En introduktion

Lär dig hur du använder PowerApps funktioner och formler för att förbättra funktionaliteten och ändra ett beteende i vår Power Apps canvas-app.

Pipe In R: Anslutningsfunktioner med Dplyr

Pipe In R: Anslutningsfunktioner med Dplyr

I den här handledningen kommer du att lära dig hur du kopplar ihop funktioner med hjälp av dplyr-röroperatorn i programmeringsspråket R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX från LuckyTemplates låter dig returnera rankningen av ett specifikt nummer i varje tabellrad som utgör en del av en lista med nummer.