Skapa en datumtabell i LuckyTemplates
Ta reda på varför det är viktigt att ha en dedikerad datumtabell i LuckyTemplates och lär dig det snabbaste och mest effektiva sättet att göra det.
Jag ska visa dig hur du använder offset-funktionen i LuckyTemplates . Det är ett av de mest dynamiska verktygen du kan använda speciellt i dina datumtabeller.
När du väl behärskar hur du tillämpar det i dina tidsintelligensprojekt kan du få mer djupgående insikter som du inte kommer att få med någon annan metod. Du kan se hela videon av denna handledning längst ner på den här bloggen.
Innehållsförteckning
Förstå mekaniken i offsetfunktionen
Jag börjar med att visa dig mekaniken för offsetfunktionen.
Offset visar skillnaden mellan dagens datum och de andra datumen i din data.
Som du kan se i min datumtabell nedan fokuserade jag på kvartal och år så att jag kan se faktiska datarörelser.
Den lila raden visar aktuell period . Observera att den aktuella perioden alltid har ett offsetvärde på 0 .
Ovanför det, i gult, visar alla data som kommer från det förflutna . Du kommer att se att siffrorna här är antingen 0 eller mindre än 0, representerade av negativ data .
Detta innebär att för data från framtiden kommer dessa att visa positiva värden . Beroende på kolumnens granularitet kan den också innehålla en 0 .
Så vad gör offsets kraftfulla?
Offsets kan vara sekventiella nummer som representerar skillnaden mellan olika data i tabellen . Men det som gör offset bra är att de inte har gränser .
Till exempel kommer kvartalen att löpa från 1 till 4, vilket motsvarar de 4 kvartalen på ett år. Månader sträcker sig från 1 till 12 medan veckor kan sträcka sig från 1 till 52 eller 53, beroende på vilket år det är. Men när jag väl når den sista siffran måste jag börja om.
Detta är inte fallet för offset. När det gäller offset kommer de alltid att visa en relativ position till det aktuella datumet och det andra datumet som refereras till .
Så varje gång datumtabellen uppdateras uppdateras också logiken som gör att offseten fungerar. Detta innebär att ett uppdaterat värde även kommer att visas i datumtabellen.
Exempel på en veckas offset kolumn
För att ge dig en tydligare bild av hur offsetfunktionen fungerar, ska jag ge dig ett exempel på hur den tillämpas.
I mina exempeldata visar det dagens datum som den 24 april 2020 .
Återigen anger offsetprinciperna att den aktuella perioden representeras av 0, framtida data representeras av positiva värden och tidigare perioder representeras av negativa siffror .
Jag har också en slicer på min sida som innehåller WeekOffset-värdet. För närvarande visar den alla värden från -53 till 0, där 0 representerar den aktuella veckan .
Den 24 april (som är idag) infaller på vecka 17 .
Denna utökade datumtabell täcker endast ISO-veckonummer . Det betyder att veckorna börjar på en måndag . Detta innebär också att en vecka alltid kommer att innehålla 7 dagar .
Men det finns många anpassade veckokrav som inte följer samma logik. Du kan ta reda på mer om dessa fall i olika ämnen som behandlas i LuckyTemplates-forumet.
Du kan också överväga att använda Månad & År istället för Vecka & År om det bättre passar din situation.
Om du går tillbaka till exempeldatan kanske du har märkt att WeekOffset -värdena ligger i ett perfekt sekventiellt nummerintervall .
Detta beror på att de delar samma granularitet överallt . Det finns inga dubbletter av värden och inga saknade värden.
Naturligtvis görs det totala försäljningsmåttet som används här på vanligt sätt, med bara en vanligöver försäljning för kvantiteten gånger priset . Sedan samlas allt för att få ett veckovärde.
Men vad händer om jag bara vill se de senaste 4 veckornas försäljning?
Jag måste bara ändra min slicer till ett intervall på -3 till 0 .
Nu visar min tabell bara de senaste fyra veckornas försäljning.
Så när jag går igenom tiden uppdateras min datumtabell. Samma sak händer om nya försäljningsresultat laddas in i faktatabellen.
Använda förskjutningar i DAX
Den här gången ska jag visa dig hur offsetfunktionen kan användas i DAX-mått.
Jag har en tabell med Vecka & År och Total försäljning .
Så om jag vill beräkna föregående veckas försäljning utan offset, måste jag först extrahera vad CurrWeek- numret är och sedan kontrollera vad CurrYear -värdet är.
Om jag behöver hoppa över ett års gräns, måste jag räkna ut vad Veckonummer är för det förra året.
Därifrån skulle jag använda SUMX som en itererande funktion på datumtabellen. Jag skulle också behöva kolla om CurrWeek är vecka nummer 1 .
Om det inte är vecka 1 behöver jag bara subtrahera 1 från CurrWeek-värdet för CurrYear . Därefter kan den totala försäljningen äntligen summeras .
Om du tittar på tabellen nedan kan du nu se att alla värden är perfekt aggregerade. Värdena som visas under Total försäljning överförs helt enkelt till nästa vecka.
Även om jag går förbi en årsgräns från 2017 till 2018 så bryter inte mönstret. Den totala försäljningen från den sista veckan av 2017 är fortfarande perfekt beräknad för vecka nummer 1 av 2018.
Den här gången ska jag göra samma beräkning, men med datumtabellförskjutningar tillämpade.
Så här ser det måttet ut när jag använder offset.
Så för att få PrevWeek- värdet behöver jag bara referera till den valda WeekOffset och subtrahera 1.
Då ska jag användafunktion för total försäljning över Datum där WeekOffset är lika med PrevWeek- värdet.
Om man tittar på resultaten verkar resultaten vara perfekta, även vid övergången från 2017 till 2018.
Problemet ligger dock i Totalt . Uppenbarligen är detta inte det korrekta värdet.
Så här ska jag fixa det.
Observera först att kolumnen Vecka & år är i stigande ordning .
Jag ska ändra på det och sortera kolumnen i fallande ordning istället, med 2020 överst.
Eftersom det inte finns något sammanhang som kommer från veckan och året identifierar den inte den aktuella veckans offsetvärde men subtraherar fortfarande 1 . Men vad jag kan göra är att använda en ackumulerad summa för att justera summan .
Så här kommer åtgärden att se ut:
Början av måttet ändras inte. Det är exakt samma som föregående mått jag tillämpade.
Men eftersom jag behöver använda ett mönster som liknar kumulativa totaler, måste jag använda funktionen CALCULATE på FirstWeek över Datum med 1 subtraherad från den.
Jag måste också identifiera MAX WeekOffset -värdet från ALLSELECTED- datumen och subtrahera ett från det också.
Sedan använder jag funktionen BERÄKNA igen för total försäljning . Jag ska användafunktion för att inkludera ALLA datum . WeekOffset-värdet ska vara större än eller lika med FirstWeek och mindre än eller lika med LastWeek .
Återigen följer detta det grundläggande mönstret för kumulativa summor.
Sedan kan jag fortsätta med att kontrollera totalsumman genom att använda mönstren.
Så OM Veckan & Året ÄR INCOPE , förväntar jag mig att resultaten visar LWSales . Men om det inte är det, förväntar jag mig att LWTotal dyker upp.
Så om jag går tillbaka till min tabell kommer den nu att visa den korrekta totalen.
Offset för specifika veckor
Låt mig gå tillbaka till exemplet jag använde tidigare där jag filtrerade data för att bara visa de senaste fyra veckorna.
Om jag går in på måttet kan jag komma fram till samma resultat med hjälp av offsets. Så här skulle det se ut.
Jag var bara tvungen att identifiera det aktuella WeekOffset- värdet för sammanhanget som kommer från raderna.
När jag väl har det kan jag använda funktionen BERÄKNA på den totala försäljningen av ALLA datum där WeekOffset är större än eller lika med ThisWeek minus 3, eller mindre än eller lika med värdet för ThisWeek .
Detta returnerar exakt samma värde som exemplet jag försöker replikera.
Slutsats
Exemplen jag visade dig ovan bevisar hur dynamiska offset verkligen är. Du kan använda dem i filter, skivor och till och med i DAX-beräkningar.
Offset kan också användas i utökade datumtabeller för veckor, månader, kvartal, år och räkenskapsår. De ger mycket flexibilitet och kan enkelt hjälpa dig att få de resultat du vill ha.
Fortsätt bara att leka med offset och se vilka andra användningsområden du kan ha för dem. Du kan också kontrolleraför andra fall där offsetfunktionen visat sig vara användbar.
Med vänliga hälsningar,
Melissa
Ta reda på varför det är viktigt att ha en dedikerad datumtabell i LuckyTemplates och lär dig det snabbaste och mest effektiva sättet att göra det.
Denna korta handledning belyser LuckyTemplates mobilrapporteringsfunktion. Jag ska visa dig hur du kan utveckla rapporter effektivt för mobila enheter.
I denna LuckyTemplates Showcase går vi igenom rapporter som visar professionell serviceanalys från ett företag som har flera kontrakt och kundengagemang.
Gå igenom de viktigaste uppdateringarna för Power Apps och Power Automate och deras fördelar och konsekvenser för Microsoft Power Platform.
Upptäck några vanliga SQL-funktioner som vi kan använda som sträng, datum och några avancerade funktioner för att bearbeta eller manipulera data.
I den här handledningen kommer du att lära dig hur du skapar din perfekta LuckyTemplates-mall som är konfigurerad efter dina behov och preferenser.
I den här bloggen kommer vi att visa hur man lager fältparametrar med små multiplar för att skapa otroligt användbara insikter och bilder.
I den här bloggen kommer du att lära dig hur du använder LuckyTemplates ranknings- och anpassade grupperingsfunktioner för att segmentera en exempeldata och rangordna den enligt kriterier.
I den här handledningen kommer jag att täcka en specifik teknik kring hur man visar Kumulativ total endast upp till ett specifikt datum i dina bilder i LuckyTemplates.
Lär dig hur du skapar och anpassar punktdiagram i LuckyTemplates, som huvudsakligen används för att mäta prestanda mot mål eller tidigare år.