Krijg LuckyTemplates-waarden van vorige week met behulp van DAX en Power Query

Krijg LuckyTemplates-waarden van vorige week met behulp van DAX en Power Query

Het ophalen van waarden van vorige perioden in LuckyTemplates is een gebruikelijke taak, maar het ophalen van waarden van vorige week vereist enige speciale aandacht. In deze zelfstudie bespreek ik twee eenvoudige en veelzijdige methoden voor het verkrijgen van LuckyTemplates-waarden van vorige week die nuttige toevoegingen aan uw toolbox kunnen zijn: de ene met DAX en de andere met Power Query. Je kunt de volledige video van deze tutorial onderaan deze blog bekijken.

Deze tutorial kwam voort uit een vraag die ik kreeg van een LuckyTemplates-lid. Het lid vroeg wat de gemakkelijkste manier was om het nummer van de vorige week te bepalen. Dit is een veel voorkomende vraag die ik tegenkom. Het lijkt vrij eenvoudig, maar hoe meer je erin graaft, hoe meer je beseft dat er nogal wat te verwerken valt.

Inhoudsopgave

Waarden van vorige week in LuckyTemplates: het probleem

Als we naar het weeknummer kijken, hebben we 52 weken; vermenigvuldig dat met zeven dagen (een week) en dat komt op 364. Dus in elk jaar is er een extra dag, en dan zijn er voor schrikkeljaren twee extra dagen. Deze een of twee extra dagen zorgen uiteindelijk voor veel problemen.

Laten we een meting maken van onze tabel Datums. We noemen het MAX Week # (nummer). In deze analyse gebruiken we de LuckyTemplates Extended Dates Table; dit heeft ISO Weeknummer , wat best handig is. Laten we nu de MAX nemen van het ISO-weeknummer.

Krijg LuckyTemplates-waarden van vorige week met behulp van DAX en Power Query

Laten we nu een tafel nemen en Jaar en onze MAX Week # laten vallen . Deze dataset heeft 10 jaar aan data, en we zien dat de eerste twee jaar 52 weken hebben. Dan hebben we twee jaar met 53 weken, drie jaar met 52 weken, en dan nog twee jaar met 53 en één met 52 weken.

Krijg LuckyTemplates-waarden van vorige week met behulp van DAX en Power Query

Er is hier niet echt een waarneembaar patroon. Het is niet gemakkelijk om terug te gaan en te voorspellen dat je het ene jaar 52 weken zult hebben en het andere jaar 53.

Het volgende waar u aan zou kunnen denken als u bekend bent met DAX-tijdinformatiefuncties, is het gebruik van de DATEADD- functie, die een reeks datums met een bepaalde periode terugschuift. Het doet dat heel goed voor Dag, Maand, Kwartaal en Jaar, maar het omvat geen Week, dus we moeten een andere manier vinden om dit te doen.

In de LuckyTemplates Extended Dates Table die we gebruiken, heeft Melissa (een van de LuckyTemplates-experts) een functie opgenomen met de naam OFFSETS . Laten we in deze functie duiken, want het is absoluut essentieel om dit vanuit een DAX-perspectief op te lossen.

Als we naar de huidige periode kijken (bijvoorbeeld 20 januari, de periode waarin deze tutorial is gemaakt), zien we dat offset gelijk is aan nul . De manier waarop offsets werken, is dat voor de huidige periode de offset nul wordt.

De week voorafgaand aan de huidige week is een min, twee weken voorafgaand aan de huidige week is een min twee, enzovoort. En dan gaat het vooruit van de positieve cijfers; volgende week krijgt dan een één, twee weken krijgt een twee, enz.

Krijg LuckyTemplates-waarden van vorige week met behulp van DAX en Power Query

Elke keer dat u het rapport opent ten opzichte van de datum van vandaag, worden de offsets berekend. Dit is ongelooflijk krachtig en nu zal ik je laten zien hoe gemakkelijk het is om een ​​aantal moeilijke problemen aan te pakken, zoals dit LuckyTemplates-nummer van vorige week wanneer je offsets gebruikt.

Vorige week LuckyTemplates verkrijgen met behulp van DAX

Laten we een nieuwe meting maken en deze Vorige Wk # noemen . We beginnen met een variabele ( SelWkOffset ), waar we gewoon een SELECTEDVALUE van de WeekOffset gaan doen . Dus in de huidige rij wordt die WeekOffset getekend en in onze variabele geplaatst.

De volgende variabele is Resultaat . Dit is het uiteindelijke resultaat dat we willen en we gaan CALCULATE gebruiken omdat we de context gaan verschuiven.

Dan willen we het MAX ISO-weeknummer en dat wordt onderworpen aan deze filtervoorwaarden. We verwijderen dus alle filters in de tabel Datums en gebruiken hier ALLES . Als we een datumsnijder hadden, zouden we misschien ALLSELECTED willen gebruiken , maar voorlopig doen we dat niet, dus we gaan gewoon ALL gebruiken om het filter uit die tabel Datums te verwijderen.

En dan zeggen we dat de WeekOffset gelijk zal zijn aan onze SelWkOffset minus één . Dit is waar de OFFSETS zo krachtig worden. U kunt Weeknummer min één niet gebruiken, omdat dat elk jaar opnieuw wordt ingesteld. Maar omdat ALLE VERSCHILLEN opeenvolgend zijn, kunt u het behandelen zoals u zou doen met het vinden van het voorgaande jaar en er gewoon één aftrekken voor elk vorig jaar. En dus dit, deze verschuiving werkt op dezelfde manier als een opeenvolgend nummer.

We kunnen nu die filtervoorwaarde nemen en afsluiten, CALCULATE afsluiten en gewoon ons resultaat TERUGKEREN .

Krijg LuckyTemplates-waarden van vorige week met behulp van DAX en Power Query

Laten we nu eens kijken hoe deze maatregel werkt. In de onderstaande tabel kunnen we zien dat het precies doet wat we hadden gehoopt. In week 52 voor periode één in het volgende jaar is de vorige week 52. En dan gaat het één stap terug voor elke periode, enzovoort.

Krijg LuckyTemplates-waarden van vorige week met behulp van DAX en Power Query

Wat doe je in gevallen waarin je geen offset hebt?

Stel dat u werkt met een zakelijke datumtabel die afkomstig is uit uw datawarehouse en deze offsets niet bevat. Er is een techniek die ik je wil laten zien in Power Query. De eerste keer dat ik het zag was in een blogbericht van Imke Feldmann.

Deze benadering werkt heel goed voor elke situatie waarin u de tabel in oplopende volgorde kunt ordenen en geen offset hoeft te hebben. Het hoeft niet eens een datumveld te hebben. Het kan een heel ander type tafel zijn. Zolang het in oplopende volgorde sorteerbaar is, kunt u deze techniek gebruiken.

Laten we dus verwijzen naar deze Dates Raw-tabel en we zullen deze Dates noemen . Vervolgens zorgen we ervoor dat dit in oplopende volgorde wordt gesorteerd .

Krijg LuckyTemplates-waarden van vorige week met behulp van DAX en Power Query

Vervolgens willen we per week groeperen . De reden daarvoor is dat we twee indexkolommen gaan toevoegen. Wanneer we die indexkolommen toevoegen, willen we dat die op weekniveau zijn , niet op dagniveau.

Krijg LuckyTemplates-waarden van vorige week met behulp van DAX en Power Query

Vervolgens willen we die indexkolommen toevoegen. Het belangrijkste hier is dat de eerste index die we toevoegen een op 0 gebaseerde index zal zijn. En dan gaan we een tweede index toevoegen die een op 1 gebaseerde index is.

Krijg LuckyTemplates-waarden van vorige week met behulp van DAX en Power Query

Vervolgens gaan we deze kolom nemen en een tabel in zichzelf samenvoegen. We gaan het samenvoegen op basis van de twee verschillende indexkolommen. Dat geeft ons een verschuiving in rijen.

Dus als we dit nemen en de eerste naar de op 0 gebaseerde index samenvoegen met de op 1 gebaseerde index, komt het overeen met 521 op 522 rijen. Dat is precies wat we zouden verwachten, omdat de tweede tabel de nul-index niet zal oppikken omdat deze bij één begint.

Krijg LuckyTemplates-waarden van vorige week met behulp van DAX en Power Query

Daarna breiden we dit gewoon goed uit, gewoon met behulp van ISO-weeknummer.

Krijg LuckyTemplates-waarden van vorige week met behulp van DAX en Power Query

Dat geeft ons ons vorige weeknummer. En nu breiden we gewoon onze oorspronkelijke groepering uit en verwijderen we het veld WeekEnding en het oorspronkelijke ISO-weeknummer, zodat we niet dupliceren.

Krijg LuckyTemplates-waarden van vorige week met behulp van DAX en Power Query

Als we dat in een tabel zetten, kun je zien dat het exact dezelfde resultaten zijn als bij gebruik van de DAX-techniek. Het werkt precies zoals onze DAX-meting deed, maar in dit geval hoefden we de offsets niet te gebruiken.

Krijg LuckyTemplates-waarden van vorige week met behulp van DAX en Power Query

Conclusie

Dit zijn twee verschillende manieren om op een zeer veelzijdige manier het vorige weeknummer te vinden. In de eerste techniek zie je de kracht van offsets om, wat anders een moeilijke berekening zou zijn, vrij eenvoudig te maken. De tweede techniek werkt precies zoals onze DAX-meting deed, maar in dit geval hoefden we de offsets niet te gebruiken.

Hopelijk vind je deze tutorial nuttig. Je kunt de volledige video-tutorial hieronder bekijken en de gerelateerde links bekijken voor meer vergelijkbare inhoud.

Proost!


Wat is zelf in Python: voorbeelden uit de echte wereld

Wat is zelf in Python: voorbeelden uit de echte wereld

Wat is zelf in Python: voorbeelden uit de echte wereld

Een RDS-bestand opslaan en laden in R

Een RDS-bestand opslaan en laden in R

Je leert hoe je objecten uit een .rds-bestand in R opslaat en laadt. In deze blog wordt ook besproken hoe je objecten uit R naar LuckyTemplates importeert.

First N Business Days Revisited – Een DAX-coderingstaaloplossing

First N Business Days Revisited – Een DAX-coderingstaaloplossing

In deze tutorial over DAX-coderingstaal leert u hoe u de functie GENERATE gebruikt en hoe u de titel van een maat dynamisch wijzigt.

Breng inzichten onder de aandacht met behulp van de Multi Threaded Dynamic Visuals-techniek in LuckyTemplates

Breng inzichten onder de aandacht met behulp van de Multi Threaded Dynamic Visuals-techniek in LuckyTemplates

Deze zelfstudie behandelt hoe u de Multi Threaded Dynamic Visuals-techniek kunt gebruiken om inzichten te creëren op basis van dynamische gegevensvisualisaties in uw rapporten.

Inleiding tot het filteren van context in LuckyTemplates

Inleiding tot het filteren van context in LuckyTemplates

In dit artikel zal ik de filtercontext doornemen. Filtercontext is een van de belangrijkste onderwerpen waarover elke LuckyTemplates-gebruiker in eerste instantie zou moeten leren.

Beste tips voor het gebruik van de apps in LuckyTemplates Online Service

Beste tips voor het gebruik van de apps in LuckyTemplates Online Service

Ik wil laten zien hoe de online service LuckyTemplates Apps kan helpen bij het beheren van verschillende rapporten en inzichten die uit verschillende bronnen zijn gegenereerd.

Analyseer winstmargeveranderingen in de loop van de tijd - analyse met LuckyTemplates en DAX

Analyseer winstmargeveranderingen in de loop van de tijd - analyse met LuckyTemplates en DAX

Leer hoe u wijzigingen in uw winstmarge kunt berekenen met behulp van technieken zoals vertakking van metingen en het combineren van DAX-formules in LuckyTemplates.

Materialisatie-ideeën voor gegevenscaches in DAX Studio

Materialisatie-ideeën voor gegevenscaches in DAX Studio

Deze tutorial bespreekt de ideeën van materialisatie van datacaches en hoe deze de prestaties van DAX beïnvloeden bij het leveren van resultaten.

Zakelijke rapportage met behulp van LuckyTemplates

Zakelijke rapportage met behulp van LuckyTemplates

Als u tot nu toe nog steeds Excel gebruikt, is dit het beste moment om LuckyTemplates te gaan gebruiken voor uw zakelijke rapportagebehoeften.

Wat is LuckyTemplates Gateway? Alles wat u moet weten

Wat is LuckyTemplates Gateway? Alles wat u moet weten

Wat is LuckyTemplates Gateway? Alles wat u moet weten