Wat is zelf in Python: voorbeelden uit de echte wereld
Wat is zelf in Python: voorbeelden uit de echte wereld
Het maken van een LuckyTemplates-vakantiekalender is cruciaal voor berekeningen van veel time intelligence. In deze zelfstudie laat ik u zien hoe u specifieke vakantiedatums kunt berekenen met behulp van DAX-metingen. Je kunt de volledige video van deze tutorial onderaan deze blog bekijken.
Dit voorbeeld kwam van een van de initiatieven genaamd Problem of the Week, waarbij we elke maand een real-world DAX- of Power Query-probleem nemen en het in detail opsplitsen.
Ik gebruikte een techniek genaamd Rubber Duck Debugging. Het wordt meestal gebruikt voor foutopsporing, maar ik vind het ook erg waardevol om het eerste raamwerk te bedenken dat je gaat gebruiken om een complex probleem op te lossen, zoals in LuckyTemplates.
Het is eigenlijk gewoon een badeendje gebruiken of een persoon met wie je praat en hardop de oplossing zeggen die je voor ogen hebt en een plan ontwikkelen voor hoe je het probleem gaat aanpakken.
Alleen al het uitspreken helpt je vaak om het probleem op te lossen. In sommige gevallen in een foutopsporingssituatie, laat het je beseffen wat je doet, of het zinvol is, en helpt het een manier te vinden om het op te lossen door het probleem aan te pakken.
Hieronder staat het real-world DAX-probleem voor deze specifieke uitdaging. We hebben hier een tabel met 10 feestdagen met de maand en dag. Sommige dagen zijn specifieke dagen en sommige zijn relatieve dagen. We moeten de Holiday Date en de Celebrate On-maatregelen bedenken.
Om dat te doen, moeten we het dagveld ontleden in twee componenten. De eerste parsering is de gebeurtenis (derde, laatste, eerste, tweede) en de tweede parsering is de dag (maandag, donderdag). Dit zijn twee cruciale stukjes informatie die we moeten scheiden.
Inhoudsopgave
Specifieke datums berekenen in de feestdagenkalender van LuckyTemplates
Normaal gesproken zou ik dit in Power Query doen door middel van een splitsing door scheidingstekens, maar aangezien we het met DAX doen, zullen we het op een andere manier moeten doen. (Merk op dat we de Power Query niet mogen gebruiken in deze uitdaging.)
We moeten de minimum- en maximumdatums berekenen voor de opgegeven jaar-, maand- en dagnaam. In dit geval kunnen we bijvoorbeeld zeggen voor 2027, januari en de derde maandag. Zodra we die minimumdag voor een bepaalde maand hebben, kunnen we er zeven dagen aan toevoegen om naar de tweede maandag te gaan, 14 dagen om naar de derde maandag te gaan en 21 dagen om naar de vierde maandag te gaan.
Een andere techniek die ik met je wil delen in verband met deze uitdaging, is wat ik Bouwen in delen noem bij het maken van een maat. Ik vind dit erg nuttig in een complexe meting waarbij je, als je veel variabelen hebt, veel componenten moet bouwen.
Wat ik altijd doe, is dat ik aan het einde een resultaatvariabele ( VAR-resultaat ) heb en mijn laatste statement is gewoon Return Result . Dit maakt het heel gemakkelijk om terug te gaan en de variabelen die ik heb gebouwd te testen. Ik kan het in delen doornemen en volgen en oplossen.
De laatste techniek die ik met je wil delen, is wat ik Searching for Unknown Functions noem. Als ik bijvoorbeeld niet weet welke functie ik moet gebruiken voor deze LuckyTemplates-vakantiekalenderuitdaging, ga ik naar het tabblad Externe hulpprogramma's en ga ik naar de SQLBI DAX-handleiding .
Het heeft hier een heel leuke functie genaamd Groepen (aan de linkerkant), waar de functies op type zijn gegroepeerd. En dus, als ik erover nadenk om bijvoorbeeld een tekstreeks te ontleden, kan ik gaan zoeken naar Tekstfuncties .
Het biedt alle tekstfuncties die DAX heeft. Dit is een geweldige manier om snel de DAX-functie te vinden die u nodig hebt voor een meting.
DAX-maatregelen voor de LuckyTemplates-vakantiekalender
Voor de Holiday Date- meting heb ik deze reeks s gemaakt , waarbij ik de data uit de slicer, de vakantiemaand, het maandnummer en de dag uit de Date-tabel heb verzameld.
Vervolgens heb ik de lengte van die geselecteerde dag met behulp van de functie lengte ( ). In dit geval retourneerde het tekst, dus ik moest het in verpakken om die tekst in een numerieke waarde te veranderen.
En toen gebruikte ik de functie voor de positie van de spatie en wikkelde deze in VALUE, maar ik zei, zoek naar ruimte binnen de geselecteerde dag, beginnend bij positie één en retourneer nul als ik die string daar niet vind.
De CharsBeforeSpace (tekens voor spatie) is gewoon de SpacePosition. Het aantal CharsAfterSpace (karakters na spatie) is gewoon de lengte ( SelDayLen ) van de string min de positie van de spatie. Van daaruit kunnen we de FirstParse en de SecondParse doen .
Op dit punt hebben we nu twee variabelen, een die het optreden weergeeft en een die de dag weergeeft.
En dan hebben we een standaard ( Calc1st ) waar we het filter uit de tabel Datums halen. Vervolgens passen we de filters van het geselecteerde jaar toe vanuit de slicer, de naam van de maand en vervolgens de dag van de week vanaf die tweede parsering die we hebben gedaan.
Op dezelfde manier doen we hetzelfde voor de laatste berekening ( VAR CalcLast ).
Zodra we dat allemaal hebben, gaat het naar een instructie en het laatste deel is het RETURN-resultaat.
Ten slotte wil ik je door de Celebrated On- maatregel leiden als een extra bonus van de uitdaging. Dit is slechts een eenvoudige waarbij ik de vakantiedatum nam die we in de vorige meting hadden berekend, naar de tabel Datums ging en de naam van de dag van de week opzocht. En toen deed ik gewoon een SWITCH- instructie waar we dat resultaat van de DayLookup namen. En tot slot sluit ik het af met een RETURN DateAdjust .
Een kalendertabel maken voor feestdagen in LuckyTemplates
Aangepaste LuckyTemplates-kalenders: berekenen voor verandering van maand tot maand - 445 kalenders
Tijdvergelijking voor niet-standaard datumtabellen in LuckyTemplates
Conclusie
Deze LuckyTemplates Holiday Calendar-uitdaging is, zoals ik al zei, een reëel probleem. De oplossing die ik bedacht is vrij ingewikkeld, maar echt effectief bij het berekenen van de specifieke vakantiedata.
Ik hoop dat je veel hebt geleerd van deze tutorial. Bekijk de volledige video-tutorial voor een meer gedetailleerde uitleg van de DAX-maatregelen.
Proost!
Wat is zelf in Python: voorbeelden uit de echte wereld
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.
In deze tutorial over DAX-coderingstaal leert u hoe u de functie GENERATE gebruikt en hoe u de titel van een maat dynamisch wijzigt.
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.
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.
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.
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.
Deze tutorial bespreekt de ideeën van materialisatie van datacaches en hoe deze de prestaties van DAX beïnvloeden bij het leveren van resultaten.
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