Een herhalende functie gebruiken in LuckyTemplates

Deze tutorial leert je over verschillende herhalende functies en hoe je ze efficiënt kunt gebruiken in je berekeningen.

Ik bespreek vaak hoe berekende kolommen niet nodig zijn bij het maken van sommige berekeningen. Dit komt door iterators.

Iterators of itererende functies kunnen u helpen bij het uitvoeren van een berekening zonder de resultaten fysiek in de tabel te zetten.

Met deze techniek kunt u geheugen besparen dat nodig is om uw LuckyTemplates-gegevensmodel te laden . In de volgende secties laat ik je zien hoe je je berekeningen kunt optimaliseren met behulp van iterators.

Inhoudsopgave

Totale verkoop berekenen met behulp van een iteratorfunctie

Maak om te beginnen een nieuwe meting voor Totale kosten . Zorg ervoor dat u de maatregelgroep selecteert waar u deze nieuwe maatregel wilt laten landen.

Druk op Shift en Enter om een ​​regel omlaag te gaan voordat u de eerste herhalende functie invoert, namelijk .

In de formulebalk van LuckyTemplates zie je al precies wat je achter de functie moet zetten zoals voorgesteld door IntelliSense. Voor SUMX moet u erna een tabel toevoegen.

De SUMX- formule voert de logica uit op elke afzonderlijke rij van de gegeven tabel. Dit is de reden waarom iterators worden geassocieerd met rijcontext . Binnen de meting kunnen iterators de formule omzetten in een rijcontext.

U moet verwijzen naar de verkooptabel na de SUMX- functie. Om de totale kosten te berekenen, moet u de bestelhoeveelheid vermenigvuldigen met de totale kosten per eenheid .

We hoeven helemaal niet te verwijzen naar de nieuwe kolom die is gemaakt. De Totale Kosten is een maatstaf en ik kan deze in mijn tabel opnemen om onze totale kosten te evalueren.

Sleep nu de meting binnen de tabel om de resultaten te zien. Zorg ervoor dat u een initiële context hebt geselecteerd uit het filter Stad .

We kunnen de oorspronkelijke context van onze berekening wijzigen door op de verschillende regio's te klikken die we willen bekijken.

De Totale Kosten werken op een vergelijkbare manier in termen van de initiële context. De initiële context wordt toegepast op de tabel Verkoop, maar vervolgens berekenen we binnen elk van deze individuele resultaten de bestelhoeveelheid vermenigvuldigd met de totale kosten per eenheid.

Achter de schermen in ons datamodel hebben we ons filter ingeschakeld en er komt context binnen uit onze Regio's-tabel en een andere context komt binnen uit onze Datum-tabel. Deze stromen naar onze tabel Sales, die wordt gefilterd door de herhalende functie SUMX.

Aangezien de SUMX- functie elke afzonderlijke rij van de tabel Verkoop virtueel evalueert, is er geen fysieke kolom nodig voor de resultaten.

Na de initiële context krijgt SUMX het product van de bestelhoeveelheid en de totale kosten per eenheid voor elke afzonderlijke rij. Ten slotte evalueert het alle berekende resultaten van alle rijen.

Als het je is opgevallen, is de oorspronkelijke kolom Kosten gemaakt via een berekende kolom. Zoals ik al zei, het is niet nodig omdat iterators zijn werk al kunnen doen. U kunt het verwijderen omdat het onnodig geheugen in uw model in beslag kan nemen.

Itererende formules voeren evaluaties uit op elke afzonderlijke rij, terwijl aggregerende formules dat niet doen.

Dit is een eenvoudig voorbeeld, maar u kunt hier meer gevorderd zijn en IF-statements en SWITCH-statements schrijven. U hoeft ook geen fysieke tabel te maken; u kunt in plaats daarvan een virtuele gebruiken.

Veel van deze informatie wordt uitgebreid behandeld in de Mastering DAX-cursus , maar dit is alleen om u het begin te laten zien van itererende functies en hoe u ze kunt gaan gebruiken wanneer dat nodig is.

Als je de behoefte voelt om een ​​berekende kolom in je feitentabel te maken, kan ik bijna garanderen dat een herhalende functie het werk voor je zal doen.

Andere DAX Iterator-functies gebruiken

Nu zal ik je nog een voorbeeld laten zien van hoe iterators wonderen kunnen doen met je berekening. Laten we deze keer de gemiddelde kosten berekenen.

Kopieer gewoon de formule Totale kosten en plak deze in een nieuwe meting. U hoeft alleen de naam te wijzigen in Gemiddelde kosten en vervolgens te gebruiken in plaats van SUMX .

De nieuwe formule voert een vergelijkbare logica uit omdat elke afzonderlijke rij van de tabel Verkoop wordt geëvalueerd . Bovendien moet u nog steeds het product van de bestelhoeveelheid en de totale kosten per eenheid verkrijgen . Het enige verschil hier is dat in plaats van de som, de formule het gemiddelde berekent.

Als u nu de maatstaf Gemiddelde kosten naar de tabel brengt, kunt u zien hoe deze zich verhoudt tot de maatstaf Totale kosten .

Het is verbazingwekkend hoe je een vergelijkbare logica kunt uitvoeren door alleen de herhalende functie te wijzigen.

Aanvullende technieken voor gegevensoptimalisatie 

Om uw tabel te optimaliseren, kunt u overtollige informatie verwijderen, zoals de kolom Totale omzet .

Aangezien u de gemiddelde kosten gemakkelijk kunt berekenen, heeft u de kolom Totale Opbrengst niet meer nodig in uw tabel. Zolang u de kolommen Eenheidsprijs en Totale kosten per eenheid hebt , is alles in orde.

Nu kunt u in plaats daarvan een nieuwe meting maken voor Total Sales (Iteration) met behulp van de SUMX- functie. U hoeft alleen maar naar de verkooptabel te verwijzen en vervolgens het product van bestelhoeveelheid en eenheidsprijs te krijgen .

Daarna kunt u de resultaten vergelijken in de kolommen Totale verkoop en Totale verkoop (iteratie) . Ze hebben allebei dezelfde resultaten, toch?

Qua prestaties is er niet veel verschil tussen het gebruik van berekende kolommen en iterators. Maar als het om het gegevensmodel gaat, kan een iteratorfunctie een hele kolom verwijderen en u honderden rijen met gegevens besparen.

Bovendien kunt u overbodige kolommen verwijderen omdat iterators de benodigde resultaten virtueel kunnen berekenen. Deze oefening zal je tafel een stuk dunner maken en je model een stuk sneller. Zorg ervoor dat u deze optimalisatietechniek toepast in uw eigen berekeningen.

Conclusie

Kortom, een itererende functie evalueert elke rij, terwijl aggregators dat niet doen.

De letter X aan het einde van de functie maakt het gemakkelijker om iterators te identificeren. Voorbeelden zijn de functies SUMX , AVERAGEX , , en meer.

Het gebruik van itererende functies zal geen extra fysieke tabellen creëren . Dit kan u helpen geheugen te besparen in LuckyTemplates.

De voorbeelden voor SUMX en AVERAGEX die ik heb behandeld, zijn eenvoudige scenario's. Later gaan we dieper in op meer geavanceerde door IF-statements en SWITCH-statements toe te voegen .

Al het beste!


DAX-functies in LuckyTemplates: Iterators gebruiken
Itererende functies in DAX-taal – een gedetailleerd voorbeeld
van werken met itererende functies in DAX

*****







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