Wat is zelf in Python: voorbeelden uit de echte wereld
Wat is zelf in Python: voorbeelden uit de echte wereld
Laten we nog eens kijken naar het probleem dat in deze zelfstudie wordt besproken , waarbij de eerste N werkdagen van elke maand dynamisch werden vergeleken. Dit probleem was gebaseerd op een vraag van een LuckyTemplates-lid op ons forum, waar hij dynamisch de eerste 5, 10, 15 en 20 factureerbare dagen (de niet-weekenden en niet-vakantiedagen) voor een bepaalde maand wilde vergelijken met de voorgaande maand.
In plaats van Power Query te gebruiken, komen we met een DAX-codeertaaloplossing. Je kunt de volledige video van deze tutorial onderaan deze blog bekijken.
In de eerste video bedacht ik een power query-oplossing om dit probleem op te lossen. Maar toen kwam een van onze LuckyTemplates-experts, Antriksh Sharma, met een briljant efficiënte maatregel die ook de moeite waard is om dieper in te duiken. We bespreken enkele van de technieken die hij gebruikte bij het ontwikkelen van een meting, waarmee u extra tools in uw DAX-toolbox krijgt.
Dat deed het zeker voor mij en voor enkele van de andere experts die dit hebben bekeken. De like-for-like vergelijking van vergelijkbare werkdagen over maanden heen is in het algemeen een waardevol patroon dat in veel situaties kan worden gebruikt.
Laten we eens kijken naar Power Query en kijken wat Antriksh hier deed. We hebben de maand en het jaar , de totale verkoop en ten slotte de totale verkoop voor N werkdagen die we hebben geselecteerd met behulp van een krachtige query op basis van de what-if-parameter die we hebben ontwikkeld.
Antriksh pakte het heel anders aan, waarbij hij een schokkend korte maatregel gebruikte om dit hele probleem op te lossen. Het eerste dat me opviel was het gebruik van het commando.
Dit is een DAX-functie die ik niet vaak gebruik, maar die perfect past bij dit soort problemen. Als we de SQL BI DAX Guide bekijken, staat er dat de functie GENERATE een tabelfunctie is die als invoer twee verschillende tabellen gebruikt en vervolgens een equivalent uitvoert van de SQL-opdracht CROSS APPLY.
Dus het neemt een basistabel (Tabel1) en herhaalt daarop, en neemt dan een tweede tabeluitdrukking en evalueert die voor elke rij in de eerste tabel, en keert dan terug naar de tabel als de uitvoer.
Laten we de maat van Antriksh nemen en in de tafel laten vallen. We kunnen zien dat het exact dezelfde resultaten oplevert als de power query-oplossing die we de vorige keer hebben gedaan. Dus dat is goed en valideert beide maatregelen vrij goed.
Laten we deze maatregel even uit elkaar halen. Het eerste filter dat hier wordt toegepast, is Dates[IsBusinessDay] = TRUE. Hiermee worden alle niet-weekend- en niet-feestdagen verwijderd op basis van het IsBusinessDay-veld van de uitgebreide datumtabel.
We praten hier veel meer over in de eerste tutorial , waar we ook doornamen hoe we dat in onze vakantietabel konden binden.
Het interessante deel hiervan zit echt in de twee tabelinvoeren. De eerste tabel is slechts een tabel met één kolom van het veld Maand & Jaar in de tabel Datum.
Maar de tweede tabelinvoer is waar de interessante dingen gebeuren. Antriksh gebruikte een en gebruikte vervolgens onze dynamische parameter als het aantal rijen in de TOPN.
De meting Totale verkoop wordt gekoppeld aan de tweede tabel en vervolgens toegepast op de eerste tabel.
Inhoudsopgave
Een complexe maat begrijpen met behulp van DAX-coderingstaal
Een van de gemakkelijkste manieren om erachter te komen wat zo'n complexe meting doet, is door naar de Tabular Editor te gaan . We kunnen deze uitdrukking bekijken en eerst uitzoeken wat deze TOPN-uitdrukking doet.
Laten we het TOPN-gedeelte kopiëren en een nieuwe DAX-query maken . Onthoud dat DAX-query's beginnen met EVALUATE.
Wanneer we het TOPN-gedeelte plakken, zien we dat dit de eerste 5 datums uit de verkoopordertabel haalt. Er is een tabel in de TOPN die is samengesteld uit de waarden van alle besteldatums binnen de verkooptabel.
Deze TOPN-functie neemt de waarde van de wat-als-parameter (in dit geval 5) en past deze toe op het verkooporderdatumveld. Vervolgens worden de eerste 5 datums binnen de filtercontext in oplopende volgorde opgehaald op basis van dat veld.
Aangezien er geen aanvullende filtercontext is, worden alleen de eerste 5 datums uit de hele tabel gehaald.
De kolom @Sales voegt alleen de totale verkoop binnen de juiste filtercontext toe aan de TOPN-tabel.
Tot dusver hebben we de eerste tabel van de maand en het jaar, de tweede tabel van de TOPN van de eerste N-datums uit de verkooptabel en vervolgens de totale verkoop die daarmee samenhangt.
De GENERATE-tabel gebruiken in DAX-coderingstaal
Laten we eens kijken wat deze GENERATE-tabel doet. We gaan terug naar de Tabular Editor en maken een nieuwe DAX-query.
We beginnen zoals we altijd doen met EVALUATE, plakken het GENERATE-gedeelte van de code en klikken op 5.
We kunnen zien dat deze voor elke rij van de eerste tabel itereert en samenkomt met de 5 rijen uit de TOPN-tabel, geëvalueerd in context met de @Sales-functie.
Het heeft de eerste 5 werkdagen in april geduurd, de eerste 5 werkdagen in mei, de eerste 5 werkdagen in juni, enzovoort tot het einde van de eerste tafel.
Dit is precies wat we nodig hebben, en nu wordt het een relatief eenvoudige kwestie van het optellen van die waarden. We hebben het resultaat (dat is de tabelvariabele van de GENERATE-resultaten) en dan moeten we de @Sales-functie samenvatten.
Binnen de context sommeren we nu de eerste 5 werkdagen in april, de eerste 5 werkdagen in mei, enzovoort, totdat we uitkomen op ons totaal van $ 23.737.430, in welk geval het geen context van maand en jaar heeft om te werken .
Dit somt de hele @Sales-kolom op en geeft ons exact hetzelfde totaal dat we hadden in onze Power Query-oplossing.
U kunt zien dat als we de slicer wijzigen in 10, we dynamisch dezelfde resultaten krijgen met de DAX-coderingstaal als in Power Query.
We hebben ook het staafdiagram onderaan dat dynamisch wordt aangepast om de wijzigingen weer te geven die we hebben aangebracht.
Maattitel dynamisch aanpassen
Er is nog een andere truc die ik je wilde laten zien. U kunt een dynamische aanpassing maken op uw wat-als-parameter en deze dynamisch koppelen aan een maattitel.
Als we bijvoorbeeld de slicer bovenaan wijzigen in 15, wordt de naam van de meting onderaan dynamisch gewijzigd in Totale verkoop voor de eerste 15 werkdagen van elke maand .
Er is een eenvoudige manier om dit in DAX te doen met behulp van voorwaardelijke opmaak . We nemen eigenlijk gewoon drie snaren. De eerste is de Total Sales voor First , en voeg dat vervolgens samen met de waarde die we oogsten van de what-if-parameter, en koppel dat dan gewoon aan de rest van de titel.
Dan gaan we naar de visual, gaan naar voorwaardelijke opmaak van de titel en klikken op fx .
We formatteren op veldwaarde en kiezen die dynamische titelmaat. Dit verandert de selectie van de wat-als-parameter.
Conclusie
Wat we nu hebben, is een complete oplossing die gebruikmaakt van de DAX-codeertaal. We hebben een heel creatieve en efficiënte manier besproken om dit te doen met behulp van de functie GENEREREN. Ik wil Antriksh bedanken voor het delen van zijn briljante DAX-kennis met ons. Ik heb veel geleerd tijdens het doornemen van zijn DAX-oplossing, en ik hoop dat jij dat ook hebt gedaan.
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