Wat is zelf in Python: voorbeelden uit de echte wereld
Wat is zelf in Python: voorbeelden uit de echte wereld
Ik wil me vandaag concentreren op iets dat ik de verborgen DAX-valstrik noem. Als u deze situatie tegenkomt, krijgt u het gevoel dat u gek wordt, omdat uw DAX er goed uit zal zien, maar niet zal werken. Ik zal u laten zien wanneer dat gebeurt en wat u eraan kunt doen, en daarbij ook enkele algemene best practices voor DAX-optimalisatie bespreken. Je kunt de volledige video van deze tutorial onderaan deze blog bekijken.
Laten we eerst eens kijken waar we hier mee werken. We hebben ongeveer 10 jaar aan gegevens uit de Internet Movie Database. De feitentabellen zijn vrij eenvoudig en we hebben beoordelingsgegevens, budgetgegevens en brutogegevens.
Vandaag kijken we naar wereldwijde brutos.
We hebben ook onze uitgebreide datumtabel. Dit wordt een analyse van de tijdsintelligentie op basis van de datumtabel en de feitentabel.
Inhoudsopgave
Totaal wereldwijd bruto per jaar
We willen iets heel gewoons en eenvoudigs doen. Onze Total Worldwide Gross is slechts een zeer eenvoudige sommaatstaf, die we willen omzetten in een percentage.
Om dit te doen, nemen we de teller ( Totale Wereldwijde Bruto- maatstaf) en de noemer ( Totale Wereldwijde Bruto -maatstaf, maar de context is verwijderd uit het jaarfilter).
Ik heb de gebruikt omdat ik denk dat het intuïtiever is als je de code leest, maar als je de voorkeur geeft aan de , werkt dat net zo goed. We delen gewoon de teller door de noemer om het resultaat te krijgen.
Als we de resulterende maat nemen en deze in onze tabel plaatsen, zult u zien dat deze precies doet wat we ervan verwachten. We krijgen 100% onderaan en we krijgen de jaren omgezet in hun individuele percentages. So far so good, en we zijn nog geen problemen tegengekomen.
Totaal wereldwijd bruto per kwartaal
Laten we eens kijken naar een vergelijkbare situatie waarin we per kwartaal gaan. Deze maatstaf kan nuttig zijn omdat er de hypothese is dat de brutowinst van het filmseizoen in de zomer anders is dan aan het begin van het jaar en tegen het einde van het jaar dat leidt tot het Oscar-seizoen.
Nogmaals, we hebben exact dezelfde maat met de REMOVEFILTERS-functie op de kwartaalcijfers in plaats van het jaar.
En als we de zojuist gemaakte maat in de tabel laten vallen, doet hij ook precies wat we verwachten.
Totaal wereldwijd bruto per maand en jaar
Laten we eens kijken naar het derde geval, dat heel gewoon kan zijn, waar we per maand en jaar willen kijken.
En nogmaals, we gebruiken dezelfde maat als voorheen. Maar deze keer verwijderen we het filter op maand en jaar.
Laten we die in onze tafel laten vallen. Het werkt ineens niet.
We kunnen vertellen wat er niet aan werkt. We weten dat de wereldwijde brutomaatstaf werkt, dus dat betekent dat de teller goed is, maar de noemer niet. In elk van de voorgaande gevallen heeft de functie REMOVEFILTERS het filter correct verwijderd, maar hier duidelijk niet.
We kunnen dit daadwerkelijk testen door te wijzigen wat we hier in het resultaat hebben geretourneerd.
Laten we in plaats van Resultaat de noemer gebruiken. Houd er rekening mee dat dit in een percentage wordt opgemaakt, dus het ziet er een beetje raar uit.
Wat we zouden moeten krijgen voor de noemer is hetzelfde getal in elke rij, maar dat is het niet.
We kunnen zien dat het filter op maand en jaar niet wordt verwijderd, en denken dat het komt omdat de maand en het jaar in tekst staan.
Maar de vorige voor kwartaal werd ook uitgedrukt in tekst, dus het is niet alleen omdat het tekst is. Het moet alleen nog worden geregeld. Zodra u het veld neerzet zonder het te sorteren, wordt het alfabetisch gesorteerd.
Laten we in de uitgebreide datumtabel eens kijken naar dat veld genaamd Month & Year . Als we ernaar kijken in de kolom Sorteren op , zien we iets interessants.
We zullen zien dat die kolom is gesorteerd op een numerieke naam met de naam MonthnYear. Wanneer u de ene kolom op de andere sorteert, wordt die sorteerkolom feitelijk onderdeel van de filtercontext. Dit is wat deze berekening afwerpt.
Laten we teruggaan naar onze maat en de context van de maand en het jaar verwijderen die we als onze soort gebruiken.
We krijgen nu precies wat we zouden moeten, namelijk de maand en het jaar berekend als een juist percentage.
Bij het verwijderen van een filtercontext zijn er twee velden nodig om dit te doen wanneer het is gesorteerd . Je vraagt je misschien af waarom we, in plaats van twee velden in te vullen, niet gewoon de filters voor de hele datumtabel kunnen verwijderen?
Het antwoord is dat we dat kunnen, en dit zal werken voor de drie voorbeelden waar we het over hadden, omdat elk van die kolommen deel uitmaakt van onze datumtabel. Het verwijderen van alle filtercontext in die tabel werkt voor alle drie de gevallen, maar dit is eigenlijk een slecht idee.
Als algemeen DAX-optimalisatieprincipe moet u zoveel filtercontext verwijderen als nodig is om het gewenste resultaat te krijgen.
In de meeste gevallen gaat u dit niet in tabelvorm presenteren. Je presenteert het als een matrix en je hebt een complexere meting nodig omdat je twee verschillende granulariteiten in dezelfde kolom hebt. Deze maatregel lijkt ingewikkeld, maar is het echt niet.
Dit is slechts een uitbreiding van wat we al hebben gedaan. Het eerste deel van deze DAX-optimalisatieberekening toont de noemers voor de verschillende granulariteit. We verwijderen de filtercontext voor een maand, voor het jaar en voor de hele tabel.
Voor het tweede deel van de berekening hebben we SWITCH TRUE gebruikt. Voor deze functie moet je van de meest specifieke naar de minst specifieke gaan. Maand is onze krapste en meest specifieke scope, dus hier beginnen we. We moeten de context verwijderen met behulp van de twee velden die we hebben geïdentificeerd.
Voor de reikwijdte van jaar moeten we de context op jaar verwijderen en de context op de hele tabel verwijderen.
Laten we eens kijken wat er gebeurt als we de context van de hele datumtabel nemen en verwijderen . We zullen een andere maatstaf gebruiken die de context op de volledige datumtabel voor alle drie de gevallen verwijdert.
We zullen zien dat de maatregel de context te veel verwijdert. In plaats van de bijdrage van elke maand aan dat jaar te berekenen, berekent het de bijdrage van die maand aan de hele dataset. Dit is niet wat we willen, omdat het verwijderen van context uit de hele tabel eigenlijk gewoon een bot instrument is wanneer een scalpel nodig is.
Conclusie
Er zijn veel gevallen waarin u een matrix heeft en u zorgvuldig moet controleren welke context u verwijdert. Gewoon de context van de hele tabel verwijderen, zal dit soort problemen veroorzaken.
Ik hoop dat wanneer deze situatie zich voordoet (wat op een gegeven moment steevast zal gebeuren), je het zult herkennen als de verborgen valstrik die we hebben besproken in dit DAX-optimalisatiebericht, en dat je het zonder dezelfde frustratie kunt vermijden dat het me veroorzaakte toen ik het voor het eerst zag en niet kon achterhalen waarom mijn DAX niet goed werkte.
Als u genoten heeft van het DAX-optimalisatieonderwerp dat in deze specifieke tutorial wordt behandeld, abonneer u dan op het LuckyTemplates TV-kanaal . Er komt voortdurend een enorme hoeveelheid content uit van mijzelf en een reeks contentmakers, die allemaal toegewijd zijn aan het verbeteren van de manier waarop u LuckyTemplates en het Power Platform gebruikt.
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