Power Query Lucky Templates | Skapa nya poster baserat på datumfält

För den här handledningen vill jag visa upp ett par metoder för hur du kan skapa nya poster baserade på datumfält med hjälp av Power Query LuckyTemplates. Du kan se hela videon av denna handledning längst ner på den här bloggen.

Jag kommer att visa upp två metoder för hur man uppnår detta. Detta exempel kom från en medlem av, som lade upp en fråga med ett datum och ett antal övernattningar. Medlemmen ville veta hur man skapar nya poster för varje natt en person bodde på ett motell med hjälp av Power Query.

Power Query Lucky Templates |  Skapa nya poster baserat på datumfält

Innehållsförteckning

Metod 1: Använd Number.From-funktionen i Power Query LuckyTemplates

Om du är bekant med datumberäkningar i Excel, vet du förmodligen att varje dag kan översättas till ett heltal, och du kan göra det här också för att få den numeriska ekvivalenten för varje datum. Vi kan använda funktionen Number.From .

Power Query Lucky Templates |  Skapa nya poster baserat på datumfält

Jag refererar till min källfråga genom att högerklicka på den och välja Referens . Gå sedan till den där minitabellen Lägg till anpassad kolumn . Låt oss nu skriva in funktionen Number.From och peka på den första faktiska kolumnen som innehåller våra datum. Glöm inte den avslutande parentesen och tryck OK .

Power Query Lucky Templates |  Skapa nya poster baserat på datumfält

Så här ser vi en heltalsrepresentation för datumvärdet. Och eftersom det är ett tal kan vi lägga till och subtrahera dagar. Målet är att skapa ett datum för varje övernattning i följd .

Om vi ​​undersöker den första posten stannade den personen bara en enda natt, så vi behöver bara returnera det första faktiska datumvärdet. Sedan för det andra rekordet stannade den personen i två nätter i följd. Vi måste returnera både ett värde för den 13:e och den 14:e december. Vi kan uppnå det om vi lägger till värdet som finns i kolumnen Nights till värdet som vi har i vår anpassade kolumn, och sedan subtraherar ett eftersom vi redan klarat det initiala värdet.

Power Query Lucky Templates |  Skapa nya poster baserat på datumfält

Så låt oss gå till formelfältet och utöka logiken vi har skapat hittills. Vi måste använda det numeriska värdet för datumet två gånger, så jag lagrar det i en variabel. Jag lägger till uttrycket let och lägger sedan till ett namn för min variabel. Jag kallar det FirstNight . Och sedan kan vi lägga till in -satsen.

Listor kan utökas till nya rader med en uppsättning listinitierare, som är de krulliga parenteserna. Vi kan skapa en lista med datum. Vi kommer att börja från vår FirstNight-variabel upp till FirstNight-variabeln, plus vad som än finns i vårt antal nätter. Med en uppsättning hakparenteser, peka på kolumnen Nights och subtrahera sedan en . Jag trycker på OK och vi har nu en lista.

Power Query Lucky Templates |  Skapa nya poster baserat på datumfält

När jag klickar åt sidan i det vita utrymmet kan vi se innehållet i den kapslade listan nedanför i den andra förhandsgranskningsrutan.

Nu med dessa sidopilar kan vi expandera till nya rader . Sedan kan jag ställa in datatypen till ett datum. Så ni kan se att vi nu har datumen. För den första posten returnerar vi samma värde som är i den första faktiska. För det andra rekordet har vi ett rekord för den 13:e och ett för den 14:e december.

Power Query Lucky Templates |  Skapa nya poster baserat på datumfält

Metod 2: Använda M Function List.Dates i Power Query LuckyTemplates

För den andra metoden kan vi använda enkallas List.Dates . Jag kommer att referera till min källfråga, och igen, med den minitabellikonen, lägger jag till en anpassad kolumn.

Jag lägger till den funktionen List.Date och sätter den sedan inom en inledande parentes. För det första vill den ha ett startvärde som ett datum och det finns i kolumnen First Actual som innehåller våra datumvärden. Så vi väljer det och sätter sedan ett kommatecken. Därefter räknas som ett tal, vilket betyder hur många datum du vill återgå till den listan . Och vi kan se att det står i spalten Natt .

Nästa är steg som varaktighet. Se det som ett intervall. Nu letar vi efter nätter i rad och vi vill ha en kontinuerlig lista med datum. En enskild dag har en numerisk motsvarighet till en, så jag anger varaktighet från ett , sedan en avslutande parentes och trycker på OK.

Power Query Lucky Templates |  Skapa nya poster baserat på datumfält

Återigen har vi en kapslad lista. För den första posten har vi bara ett värde och för den andra posten har vi den 13:e och 14:e december.

Power Query Lucky Templates |  Skapa nya poster baserat på datumfält

Därefter kan vi expandera det till nya rader igen och ställa in lämplig datatyp till datum.

Power Query Lucky Templates |  Skapa nya poster baserat på datumfält

Nu vill jag påpeka den första omkretsen i List.Dates-funktionen kräver en datumdatatyp. Om jag går till mitt källsteg och ändrar denna datatyp till ett datum/tid returnerar det ett fel. Det är för att det inte passerar ett datum. Vi kan enkelt fixa det genom att gå in i formelfältet och lägga till Date.From .

Power Query Lucky Templates |  Skapa nya poster baserat på datumfält

En annan sak som jag vill påpeka är att man även kan skapa en alternerande lista med datum . Allt du behöver göra är att ändra den sista stegparametern till en 2, till exempel.




Slutsats

I den här bloggen har jag visat två sätt att skapa nya poster baserat på datumfält. Den första är genom att generera en lista med datum med hjälp av listinitiatorerna och den andra är genom att använda funktionen List.Dates.

Jag hoppas att du tycker att denna handledning är till hjälp. Du kan titta på hela videohandledningen nedan och kolla in länkarna nedan för mer relaterat innehåll.

Med vänliga hälsningar!

Melissa


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.

Extrahera LuckyTemplates-teman och bilder från PBIX

Extrahera LuckyTemplates-teman och bilder från PBIX

Lär dig hur du tar isär en PBIX-fil för att extrahera LuckyTemplates-teman och bilder från bakgrunden och använda den för att skapa din rapport!

Excel Formler Fuskblad: Mellanvägledning

Excel Formler Fuskblad: Mellanvägledning

Excel Formler Fuskblad: Mellanvägledning

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

Python i LuckyTemplates: Hur man installerar och ställer in

Python i LuckyTemplates: Hur man installerar och ställer in

Lär dig hur du installerar programmeringsspråket Python i LuckyTemplates och hur du använder dess verktyg för att skriva koder och visa bilder.

Beräkna dynamiska vinstmarginaler – enkel analys av LuckyTemplates med DAX

Beräkna dynamiska vinstmarginaler – enkel analys av LuckyTemplates med DAX

Lär dig hur du beräknar dynamiska vinstmarginaler vid sidan av LuckyTemplates och hur du kan få fler insikter genom att gräva djupare i resultaten.

Sortering av datumtabellkolumner i LuckyTemplates

Sortering av datumtabellkolumner i LuckyTemplates

Lär dig hur du sorterar fälten från en utökad datumtabells kolumner korrekt. Detta är en bra strategi att göra för svåra fält.

Hitta dina bästa produkter för varje region i LuckyTemplates med DAX

Hitta dina bästa produkter för varje region i LuckyTemplates med DAX

I den här artikeln går jag igenom hur du kan hitta dina toppprodukter per region med hjälp av DAX-beräkningar i LuckyTemplates, inklusive TOPN- och CALCULATE-funktionerna.

Skräpdimension: Vad är det och varför det är allt annat än skräp

Skräpdimension: Vad är det och varför det är allt annat än skräp

Lär dig hur du använder en skräpdimension för flaggor med låg kardinalitet som du vill infoga i din datamodell på ett effektivt sätt.