Få LuckyTemplates föregående veckas värden med DAX & Power Query

Att hämta tidigare periodvärden i LuckyTemplates är en vanlig uppgift, men att hämta föregående veckas värden kräver en del speciell uppmärksamhet. I den här handledningen kommer jag att diskutera två enkla och mångsidiga metoder för att erhålla LuckyTemplates föregående veckas värden som kan vara användbara tillägg till din verktygslåda – en med DAX och den andra med Power Query. Du kan se hela videon av denna handledning längst ner på den här bloggen.

Denna handledning kom från en fråga som jag fick från en LuckyTemplates-medlem. Medlemmen frågade vad som var det enklaste sättet att fastställa föregående veckas nummer. Det här är en vanlig fråga jag stöter på. Det verkar ganska enkelt, men ju mer du gräver i det, desto mer inser du att det finns ganska mycket att bearbeta.

Innehållsförteckning

Föregående veckas värden i LuckyTemplates: Problemet

Om vi ​​tittar på veckonummer så har vi 52 veckor; multiplicera det med sju dagar (en vecka) och det kommer till 364. Så varje år finns det en extra dag, och sedan för skottår finns det två extra dagar. Dessa en eller två extra dagar orsakar mycket problem.

Låt oss skapa ett mått från vår datumtabell. Vi kallar det MAX vecka # (nummer). I den här analysen använder vi LuckyTemplates utökade datumtabell; detta har ISO Weeknumber , vilket är ganska användbart. Låt oss nu ta MAX för ISO-veckonumret.

Få LuckyTemplates föregående veckas värden med DAX & Power Query

Nu, låt oss ta en tabell och släppa år såväl som vår MAX vecka # . Denna datamängd har 10 års data, och vi ser att de första två åren har 52 veckor. Sedan har vi två år med 53 veckor, tre år med 52 veckor och sedan två år till med 53 och ett med 52.

Få LuckyTemplates föregående veckas värden med DAX & Power Query

Det finns inte riktigt något märkbart mönster här. Det är inte lätt att gå tillbaka och förutse att det ena året kommer du att ha 52 veckor och det andra året kommer du att ha 53.

Nästa sak du kan tänka på om du är bekant med DAX-tidsintelligensfunktioner är att använda DATEADD -funktionen, som flyttar ett datumintervall tillbaka med en given period. Det gör det riktigt bra för dag, månad, kvartal och år, men det inkluderar inte veckan, så vi måste hitta ett annat sätt att göra detta.

I LuckyTemplates Extended Dates-tabell som vi använder har Melissa (en av LuckyTemplates-experterna) inkluderat en funktion som heter OFFSETS . Låt oss dyka in i den här funktionen eftersom den är absolut nyckeln för att lösa detta ur ett DAX-perspektiv.

Om vi ​​tittar på den aktuella perioden (till exempel den 20 januari, som är den period då denna handledning skapas), vad vi ser är att offset är lika med noll . Sättet som offset fungerar är att för den aktuella perioden blir offset noll.

Veckan före innevarande vecka är negativ, två veckor före innevarande vecka är negativ två, och så vidare. Och sedan går det framåt från de positiva siffrorna; nästa vecka får då en etta, två veckor får en tvåa osv.

Få LuckyTemplates föregående veckas värden med DAX & Power Query

Varje gång du öppnar rapporten i förhållande till dagens datum, beräknar den offseten. Det här är otroligt kraftfullt och nu ska jag visa dig hur lätt det är att ta itu med några svåra problem som detta LuckyTemplates föregående veckas nummer när du använder offsets.

Skaffa LuckyTemplates förra veckan med DAX

Låt oss skapa ett nytt mått och kalla det Previous Wk # . Vi kommer att börja med en variabel ( SelWkOffset ), där vi bara ska göra ett SELECTEDVALUE av WeekOffset . Så, i den aktuella raden, kommer den att rita den där WeekOffset och lägga den i vår variabel.

Nästa variabel blir Result . Detta är det ultimata resultatet som vi vill ha och vi kommer att använda BERÄKNA eftersom vi kommer att ändra sammanhang.

Sedan vill vi ha MAX ISO Weeknumber och det kommer att vara föremål för dessa filtervillkor. Så vi tar bort alla filter i tabellen Datum, och därför använder vi ALLA här. Om vi ​​hade en datumskärare skulle vi kanske vilja använda ALLSELECTED , men för närvarande gör vi det inte, så vi kommer bara att använda ALL för att ta bort filtret från den datumtabellen.

Och då kommer vi att säga att WeekOffset kommer att vara lika med vår SelWkOffset minus ett . Det är här OFFSETS blir så kraftfulla. Du kan inte använda veckonummer minus ett eftersom det återställs varje år. Men eftersom ALLA OFFSETS är sekventiella kan du behandla det som du skulle behandla att hitta föregående år och bara subtrahera en för varje föregående år. Och så detta, denna offset fungerar precis på samma sätt som ett konsekut tal skulle göra.

Vi kan nu ta och stänga av det filtertillståndet, stänga av BERÄKNA och bara RETURNERA vårt resultat .

Få LuckyTemplates föregående veckas värden med DAX & Power Query

Låt oss nu titta på hur denna åtgärd fungerar. I tabellen nedan kan vi se att den gör precis som vi hade hoppats. I vecka 52 för period ett påföljande år är föregående vecka 52. Sedan går den tillbaka en varje period, och så vidare.

Få LuckyTemplates föregående veckas värden med DAX & Power Query

Nu, vad gör du i de fall du inte har en offset?

Låt oss säga att du arbetar med en företagsdatumtabell som kommer från ditt datalager och den innehåller inte dessa förskjutningar. Det finns en teknik som jag vill visa dig i Power Query. Första gången jag såg det var i ett blogginlägg av Imke Feldmann.

Detta tillvägagångssätt fungerar riktigt bra för alla situationer där du kan beställa bordet i stigande ordning, och det behöver inte ha en offset. Det behöver inte ens ha ett datumfält. Det kan vara en helt annan typ av bord. Så länge det går att sortera i stigande ordning kan du använda den här tekniken.

Så låt oss referera till denna Dates Raw-tabell och vi kallar den för Dates . Sedan ser vi till att sortera detta i stigande ordning .

Få LuckyTemplates föregående veckas värden med DAX & Power Query

Därefter vill vi gruppera efter vecka . Anledningen till det är att vi kommer att lägga till två indexkolumner. När vi lägger till dessa indexkolumner vill vi att de ska vara i granularitet för veckan , inte på dagsgranularitet.

Få LuckyTemplates föregående veckas värden med DAX & Power Query

Därefter vill vi lägga till dessa indexkolumner. Det viktiga här är att det första indexet som vi lägger till kommer att vara ett 0-baserat index. Och sedan kommer vi att lägga till ett andra index som är ett 1-baserat index.

Få LuckyTemplates föregående veckas värden med DAX & Power Query

Sedan ska vi ta den här kolumnen och slå samman en tabell i sig själv. Vi kommer att slå samman det baserat på de två olika indexkolumnerna. Det kommer att ge oss en förändring i rader.

Så, om vi tar detta och slår samman det första till det 0-baserade indexet till det 1-baserade indexet, matchar det 521 vid 522 rader. Det är precis vad vi förväntar oss eftersom det andra bordet inte kommer att ta upp nollindexet eftersom det börjar på ett.

Få LuckyTemplates föregående veckas värden med DAX & Power Query

Efter det kommer vi bara att utöka det här ordentligt, bara med ISO Weeknumber.

Få LuckyTemplates föregående veckas värden med DAX & Power Query

Det ger oss vårt föregående veckas nummer. Och nu ska vi bara utöka vår ursprungliga gruppering och ta bort fältet WeekEnding och det ursprungliga ISO-veckonumret så att vi inte duplicerar.

Få LuckyTemplates föregående veckas värden med DAX & Power Query

Om vi ​​lägger det i en tabell kan du se att det är exakt samma resultat som att använda DAX-tekniken. Det fungerar precis som vårt DAX-mått gjorde, men i det här fallet behövde vi inte använda offseten.

Få LuckyTemplates föregående veckas värden med DAX & Power Query

Slutsats

Det här är två olika sätt på ett mycket mångsidigt sätt att hitta föregående veckas nummer. I den första tekniken kan du se kraften i offset i att göra, vad som annars skulle vara en svår beräkning, ganska enkelt. Den andra tekniken fungerar precis som vårt DAX-mått gjorde, men i det här fallet behövde vi inte använda offseten.

Förhoppningsvis kan du hitta denna handledning till hjälp. Du kan titta på hela videohandledningen nedan och kolla in de relaterade länkarna för mer liknande innehåll.

Skål!


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.