Itererende functies in DAX-taal - een gedetailleerd voorbeeld

Itererende functies in DAX-taal - een gedetailleerd voorbeeld

Voor deze blogpost wil ik ingaan op herhalende functies binnen de DAX-taal in LuckyTemplates. De reden waarom ik wat tijd wil besteden aan het laten zien van wat je kunt doen binnen itererende functies, is omdat het zo'n belangrijk concept is dat je heel goed moet leren. Je kunt de volledige video van deze tutorial onderaan deze blog bekijken.

Je hebt misschien nog maar net enkele eenvoudige SOM's ingevuld of mogelijk de GEMIDDELDE functie gebruikt, maar het is ook belangrijk om te begrijpen hoe je herhalende functies gebruikt met een X aan het einde , zoals: SUMX, GEMIDDELDEX of COUNTX.

De reden daarvoor is dat je binnen een herhalende functie veel geavanceerder kunt worden dan met een aggregerende functie.

Inhoudsopgave

Wat is een herhalende functie?

Als u nog steeds niet bekend bent met wat een itererende functie is, is dit een functie in de DAX-formuletaal die over het algemeen een X aan het einde heeft. Je hebt ook tabelfuncties die door een tabel lopen, zoals FILTER of VALUES, maar in dit geval gaan we ons alleen bezighouden met SUMX.

Als je naar onze formule voor Total Sales kijkt, kun je zien dat dit een herhalende functie is vanwege de SUMX. Itereren betekent elke rij doorlopen en een berekening uitvoeren. In dit geval vermenigvuldigen we voor elke rij in de tabel Verkoop de hoeveelheid met de huidige prijs. We gaan ook terug naar de producttabel met behulp van de functie RELATED om die huidige prijs te krijgen.

Itererende functies in DAX-taal - een gedetailleerd voorbeeld

Ik wil je laten zien hoe je echt complexe itererende functies kunt schrijven die geweldige inzichten opleveren die je misschien in je gegevens wilt krijgen. Voor deze tutorial wil ik berekenen hoeveel verkopen we boven een bepaalde prijs doen. In dit geval gaan we $ 2.000 selecteren.

Ik wil ook weten wat onze verkopen per maand zijn voor producten van meer dan $ 2000, maar waar iemand meer dan één product koopt. We willen ook zien hoe goed het zich verhoudt tot onze totale verkoop. Dit is het soort complexiteit dat kan worden bereikt door slechts één formule te schrijven en door een herhalende functie te gebruiken.

Verkoopprijs hoger dan $ 2000

Laten we een meting maken en deze Verkoopprijs > $2000 & Hoeveelheid > 1 noemen . Over het algemeen zou je een paar verschillende kolommen of een paar verschillende maten moeten schrijven om het antwoord hier te zien, maar ik ga je laten zien hoe je het eigenlijk met slechts één kunt doen. Ik ga beginnen met SUMX en hier staat dat we een tafel moeten invoeren, toch?

Itererende functies in DAX-taal - een gedetailleerd voorbeeld

Dus we gaan deze uitdaging van Hoeveelheid > 1 aanpakken door een tabel te maken die niet de volledige tabel Verkoop is, maar een tabel die alles eruit heeft gefilterd dat maar één keer is gezien. We zullen hier FILTER gebruiken omdat het een tabelfunctie is, dus je kunt er elke soort tabel in plaatsen. Vervolgens gaan we verder met Sales en doorlopen we elke afzonderlijke rij in de Sales-tabel binnen deze FILTER- functie en filteren we elke rij uit met een hoeveelheid die groter is dan één.

Itererende functies in DAX-taal - een gedetailleerd voorbeeld

Voor elke omzet boven de 1 wil ik ook een extra logica creëren. Ik ga een uitdrukkingspatroon schrijven en hier SWITCH gebruiken. We gaan zeggen dat als de verkoop een huidige prijs heeft van meer dan of gelijk aan $ 2000, ik de totale verkoop wil berekenen. Als dat niet zo is, wil ik het helemaal niet berekenen. Ten slotte zal ik 0 als alternatief resultaat plaatsen.

Itererende functies in DAX-taal - een gedetailleerd voorbeeld

Zo schrijf je een aantal behoorlijk complexe itererende formules in de DAX-taal. Het belangrijkste is gewoon begrijpen wat voor soort tabellen je erin kunt zetten en weten wat de eigenlijke iteratie doet .

In dit geval evalueer ik voor elke rij in deze filter-downtabel wat de huidige prijs is die hoger is dan $ 2000. Als dat zo is, tellen we de verkopen van die rij op en zo niet, dan is het gewoon 0.

Zodra ik deze meting naar de tabel sleep, ziet u dat de resultaten vergelijkbaar zijn met wat we in de eerste grafiek hebben bereikt; het enige verschil is dat dit dagelijks is.

Itererende functies in DAX-taal - een gedetailleerd voorbeeld

Verkoopprijs hoger dan $ 500

We kunnen hier extra inzicht creëren door hetzelfde patroon opnieuw te gebruiken. Als we willen kijken naar wat boven $ 500 was, hoeven we hier alleen maar wat kleine wijzigingen aan te brengen, op Enter te drukken en dit vervolgens ook naar de tabel te slepen.

Itererende functies in DAX-taal - een gedetailleerd voorbeeld

Het is duidelijk dat we een groot verschil kunnen zien, omdat er meer producten zijn die we aan het tellen zijn. Dit komt omdat we niet zoveel producten met een hogere of lagere prijs kwijtraken als voorheen met de $ 2000.

Itererende functies in DAX-taal - een gedetailleerd voorbeeld

De gegevens visualiseren 

We kunnen dit echter ook veranderen in een visualisatie , zoals je kunt zien, ziet de grafiek er een beetje druk uit, dus het is waarschijnlijk beter om in de tabel te blijven, of we kunnen het tijdsbestek beknopter maken zoals de grafiek aan de linkerkant.

Itererende functies in DAX-taal - een gedetailleerd voorbeeld

Hopelijk kunt u evalueren en begrijpen hoe ver u kunt gaan met deze herhalende functies binnen de DAX-taal. U kunt zich echt verdiepen in elk aspect van uw gegevens of er zeer specifieke inzichten uit halen. De manier om dit te doen is door deze rijcontext te gebruiken, waarmee je daadwerkelijk in deze itererende functies kunt komen. U kunt naar een afzonderlijke rij kijken, deze in of buiten uw berekening plaatsen en itererende functies gebruiken, zoals SUMX, GEMIDDELDE EX en COUNTX.

Itererende functies geven u zoveel meer flexibiliteit wat betreft de berekeningen die u op rijniveau kunt uitvoeren in plaats van aggregaties waarmee u alleen een hele kolom kunt aggregeren. Nu moet je binnen itererende functies eerst een tabelreferentie en vervolgens een uitdrukking invoeren, maar verbreed zeker je geest in termen van wat een van deze werkelijk kan zijn.

Binnen itererende functies kunt u eigenlijk elke tabel of elke afgeleide van een tabel plaatsen ... ook elke virtuele tabel of verwijzing naar een tabel. Dat maakt veel meer flexibiliteit mogelijk dan u normaal zou hebben als u gewoon een hele tabel zoals uw transactietabel gebruikt om wat logica door te voeren.

De uitdrukking (of maat) die u invoert, kan ook zeer geavanceerd zijn. U kunt geavanceerde IF-logica of SWITCH-logica gebruiken, of eigenlijk alles wat u op rijniveau binnen een berekende kolom kunt doen. Je kunt het eigenlijk in dat uitdrukkingsgedeelte van een herhalende functie plaatsen.

Conclusie

De belangrijkste conclusie van dit bericht is dat itererende functies ongelooflijk belangrijk zijn om LuckyTemplates goed te begrijpen en te leren.

Als je dit goed leert, worden de mogelijkheden om interne berekeningen in het geheugen uit te voeren via metingen echt heel krachtig.

Bekijk de als u net begint met de DAX-taal en LuckyTemplates. Genoeg te leren binnen deze gratis cursus. U kunt dit vinden op .


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