LuckyTemplates Dax-variabelen zijn constant: wat betekent dit?

LuckyTemplates Dax-variabelen zijn constant: wat betekent dit?

Telkens wanneer u een uitleg hebt gehoord over het gebruik van LuckyTemplates DAX-variabelen, heeft u wellicht de uitdrukking "variabelen zijn constanten" gehoord. Het lijkt eenvoudig, maar er zit behoorlijk wat nuance en complexiteit in deze woorden. In deze blog laat ik je zien wat deze zin betekent en wat de implicaties zijn voor hoe je metingen worden berekend. Het begrijpen van deze concepten is essentieel om ervoor te zorgen dat uw maatregelen de gewenste resultaten opleveren. Je kunt de volledige video van deze tutorial onderaan deze blog bekijken.

Een variabele binnen DAX kan eigenlijk elke geldige DAX-expressie zijn. Het kan een waarde zijn, een berekening, een meting of een variabele die een tabel vertegenwoordigt, een andere variabele of een combinatie van die dingen.

Een variabele bestaat uit twee delen. Er is de declaratie waarin u de variabele initialiseert; je geeft het een naam en dan een waarde. De andere is de RETURN- instructie, die vervolgens ten minste één van de variabelen aanroept die u declareert. Het is niet zoals een haakje waarbij je één RETURN-instructie voor elke variabele moet hebben, maar je moet ten minste één RETURN-instructie hebben als je variabelen hebt gedeclareerd.

De sleutel hier is dat, zoals ik al eerder zei, variabelen constant zijn. Wat dat betekent is dat zodra variabelen aan een waarde zijn toegewezen, die waarde niet kan veranderen vóór de RETURN-instructie .

Inhoudsopgave

LuckyTemplates DAX-variabelen toepassen op metingen

Laten we eens kijken naar een eenvoudig voorbeeld waar ik Landen en Totale Verkoop heb. De Total Sales- maatstaf is slechts onze meest basale maatstaf, namelijk de van Line Sales binnen de Sales-tabel.

LuckyTemplates Dax-variabelen zijn constant: wat betekent dit?

Laten we zeggen dat we de totale verkoop voor het jaar 2020 willen hebben. In deze dataset hebben we de verkoop voor 2019, 2000 en 2021. Om de verkoop voor 2020 te krijgen, moeten we een heel eenvoudige filtervoorwaarde toepassen, dat is . Dus veranderen we onze filtercontext. We hebben onze Total Sales-maatstaf en dan is ons jaar 2020.

LuckyTemplates Dax-variabelen zijn constant: wat betekent dit?

Als we die maat in de tabel laten vallen, krijgen we precies wat we verwachten, en dat is het juiste aantal voor 2020.

LuckyTemplates Dax-variabelen zijn constant: wat betekent dit?

Als we hier nu variabelen op willen toepassen, is hier een enigszins herziene versie van de vorige meting, waar ik een variabele met de naam TotSales heb gemaakt en die gelijk heb gesteld aan onze Total Sales-maatstaf.

LuckyTemplates Dax-variabelen zijn constant: wat betekent dit?

Als we erover nadenken vanuit het standpunt van algebraïsche substitutie, als we gewoon vervangen wat voorheen onze Total Sales-maatstaf was hier voor TotSales, wat gelijk is aan die Totale Verkoop-maatstaf, dan zult u denken dat het hetzelfde zou kunnen zijn en hetzelfde produceren resultaat. Maar als we een kijkje nemen, en we laten die maat in onze tabel vallen, dan zien we dat het niet hetzelfde resultaat oplevert.

LuckyTemplates Dax-variabelen zijn constant: wat betekent dit?

De variabele TotSales wordt gedeclareerd en die krijgt de waarde van de totale verkoop. Stel dat we in de Moldavische rij staan, en die variabele krijgt de waarde van 2,35 miljoen. Onthoud nu dat de waarde pas kan veranderen nadat de RETURN-instructie is aangeroepen. Dus als we naar beneden gaan om onze meting in de variabele RESULT te berekenen , hebben we TotSales, wat een constante is van 2,35 miljoen.

En dan passen we onze filtercontext erop toe, Dates[Year] is gelijk aan 2020 , maar dat maakt niet uit, want die constante kan niet veranderen. We zouden dus kunnen zeggen dat Dates[Year] gelijk is aan 2019, 2021, enzovoort, het zal nog steeds dezelfde 2,35 miljoen zijn, omdat TotSales nu als een constante is vastgelegd tot de RETURN .

En als het terugkeert, gaan we naar de volgende rij en neemt de variabele de waarde van Nederland op (4,4 miljoen). Het proces herhaalt zich en vergrendelt dat als een constante tot de RETURN-instructie. Wat we krijgen is precies wat we hebben in de Total Sales-maatstaf, niet in de maatstaf die naar 2020 filtert.

En dus zou je kunnen denken dat dat eigenlijk niet erg nuttig lijkt. In deze context is dat niet zo. Dit is eigenlijk een veelgemaakte fout wanneer mensen voor het eerst variabelen gaan gebruiken . Ze plaatsen de variabele in het eerste uitdrukkingsgedeelte van de CALCULATE-instructie. Dat geeft meestal niet het resultaat waarnaar ze op zoek zijn, omdat het dat vastzet als een constante waarde.

LuckyTemplates DAX-variabelen gebruiken binnen Iterators

Variabelen komen echt tot hun recht als je ze in iterators plaatst. Ik ga je door deze zaak heen praten, die een eerdere waarde is. We zoeken een datum, en dan een eerdere waarde onder een aantal voorwaarden.

LuckyTemplates Dax-variabelen zijn constant: wat betekent dit?

Onthoud dat de manier waarop u dit vroeger moest doen voordat variabelen naar DAX kwamen, was via een functie met de naam . Maar nu werken variabelen eigenlijk zo goed in deze context. Met variabelen wordt het ten zeerste aanbevolen om die EERDER-functie nooit meer te gebruiken.

Laten we dus eens kijken naar een complexer voorbeeld, waar we variabelen in het iteratorgedeelte hebben in plaats van in het uitdrukkingsgedeelte. Hieronder is eigenlijk een geval van een vraag die opkwam op het waarin het lid naar elke datum binnen een bereik wilde kijken, en vervolgens de eerste eerdere datum wilde bedenken die geen weekend of feestdag was.

LuckyTemplates Dax-variabelen zijn constant: wat betekent dit?

Ik wil vooral focussen op dinsdag 15 oktober als het belangrijkste voorbeeld. Het gewenste resultaat was om naar die datum te kijken. Maandag was Columbus Day, dus het was een feestdag, daarna waren de volgende dagen zondag en zaterdag. En dus was de datum die we wilden hebben 11 oktober, wat de vrijdag was.

Als je daarvoor naar de kolom Vorige dag/Geen weekend/Geen feestdag kijkt, was dinsdag de 11e. Hetzelfde gold voor maandag, zondag en zaterdag. Dat is wat we als resultaat willen bereiken.

Naast de bovenstaande tabel staat de maatstaf die we voor dit casusscenario hebben gebruikt. We hebben een variabele gedeclareerd die de geselecteerde datum was ( VAR SelDate ), en dat was gewoon van de datum. Het zou 15 oktober oppikken in onze variabele en dat dan als een constante vasthouden tot de RETURN-instructie.

Vervolgens evalueren we de DAX van buiten naar binnen. Als we naar de filtervoorwaarde kijken, worden filters op datums verwijderd en vervolgens wordt een reeks aanvullende filters ingesteld. Het neemt die constant geselecteerde datum, 15 oktober, en het zegt: geef me alle data daarvoor. En zorg er vervolgens voor dat geen van die datums een zaterdag, zondag of feestdag is. Vervolgens is het van de datums nodig die zijn gefilterd.

Je kunt hier zien dat het hebben van geselecteerde gegevens als een constante een soort inzet in de grond is waarop alle andere datums ervoor of erna worden geëvalueerd.

We hebben onze geselecteerde datum en dan filteren we alles wat daarvoor is. We nemen het maximum van die gefilterde tabel. En dus, wat we krijgen is het maximum op de 15e als we al die andere voorwaarden eruit halen, is die vrijdag de 11e. Als we dan naar de RETURN-verklaring gaan, begint het opnieuw met de volgende dag, de 16e. Het gaat gewoon door met het doorlopen van de tabel totdat het aan het einde van de gegevens komt.

Zoals u in dit geval kunt zien, werkt het precies zoals gepland als we variabelen in het iteratorgedeelte plaatsen in plaats van het uitdrukkingsgedeelte. Het maakt gebruik van het feit dat variabelen constanten zijn.


Variabelen gebruiken in LuckyTemplates - Een gedetailleerd voorbeeld
Hoe u uitgebreide DAX-formules in LuckyTemplates kunt verwerken - Opmaaktips Inclusief
DAX-variabelen en opmerkingen om formules te vereenvoudigen

Conclusie

In deze blog heb ik je laten zien hoe je LuckyTemplates DAX-variabelen toepast in een meting en hoe het werkt wanneer variabelen in het iteratorgedeelte van een meting worden geplaatst.

Ik hoop dat deze voorbeelden de uitdrukking "variabelen zijn constant" verklaren, waardoor u misschien enig inzicht krijgt in waarom uw maatregelen lijken te werken en soms niet. Ik hoop dat dit u enig algemeen begrip geeft van wat dat belangrijke concept betekent.

Al het beste!


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