DAX-frågor som använder variabler och viktiga funktioner

Denna handledning kommer att diskutera variabler, inklusiveochfunktioner. Du kommer att förstå hur dessa hjälper till att öka prestandan för dina DAX-frågor och ger korrekta resultat.

Variabler bör användas så mycket som möjligt eftersom de lätt kan hitta koder för optimering. De förhindrar att du får felaktiga utdata och sparar tid på att leta efter felet. Variabler hindrar dock ibland att ett värde räknas om. Så när de väl har definierats med ett värde kan det värdet inte ändras, inte ens med CALCULATE .

Det är viktigt att veta var du ska definiera och använda variabler eftersom att använda dem i och utanför en iteration kommer att generera olika resultat. De bör definieras nära där de ska användas. Detta hjälper också till att bryta ner långa koder, vilket gör dem lättare att förstå och felsöka.

Innehållsförteckning

Skapa DAX-frågor med BERÄKNA och FILTER

Det finns olika metoder för att få resultat och svar i DAX. Du måste utveckla din egen stil och flöde när du skapar din rapport så att du kan känna dig bekväm med det du arbetar med. Även om du har din egen stil måste du fortfarande följa de specifika riktlinjerna, som inkluderar att använda BERÄKNA över olika metoder som till exempel FILTER .

FILTER kan skicka mycket okomprimerad data till formelmotorn och kan potentiellt utlösa ett CallBackDataID. Mått kommer att användas här för att visa resultaten av BERÄKNA och FILTRERA . Detta har också ett definierat mått som är lokalt för frågan. Definierade mått kan inte hittas i datamodellen men de kan utveckla och felsöka dina koder snabbare.

DAX-frågor som använder variabler och viktiga funktioner

På den första raden kan du se ett mått som definierar en variabel för datumet. Det betyder att den filtrerar faktatabellen för de datum som inträffar den 31 mars 2016 eller senare. Du kan också se ett enkelt mått på den totala försäljningen som itererar tabellen Faktaförsäljning och multiplicerar kvantitet och aktuellt pris.

Nästa mått är att användainuti. Om du återkallar från CallBackDataID- modulen kommer ett CallBackDataID att skapas genom att använda ett IF i SUMX-funktionen .

DAX-frågor som använder variabler och viktiga funktioner

Detta mått filtrerar hela tabellen Faktaförsäljning. Det tar bort filtren som kommer från datumtabellen.

DAX-frågor som använder variabler och viktiga funktioner

Du måste vara försiktig när du filtrerar en hel tabell eftersom den också kommer att filtrera alla kolumner som finns på ena sidan av en-till-många-relationen.

Detta mått är detsamma som föregående mått; den enda skillnaden är att den inte filtrerar hela tabellen. Den använder SUMX för att bara iterera en filtrerad tabell.

DAX-frågor som använder variabler och viktiga funktioner

Detta är ytterligare ett mått som filtrerar tabellen Faktaförsäljning, men den här gången är det bara i kolumnen där det finns.

DAX-frågor som använder variabler och viktiga funktioner

Det sista måttet är att använda CALCULATE och datamodellen för att filtrera och hämta data.

DAX-frågor som använder variabler och viktiga funktioner

Kör och kontrollera varje åtgärd

Kör först IF- måttet. Se till att rensa cacheminnet innan du kör frågan och aktiverar Server Timings och Query Plan.

DAX-frågor som använder variabler och viktiga funktioner

DAX-frågor som använder variabler och viktiga funktioner

Även om det ger rätt data, är prestandan långsam på grund av CallBackDataID och de 3 varaktigheterna.

Om du kör måttet som filtrerar hela tabellen Faktaförsäljning kan du fortfarande se CallBackDataID . Det kommer också att generera 15 003 rader och ge felaktiga resultat.

DAX-frågor som använder variabler och viktiga funktioner

DAX-frågor som använder variabler och viktiga funktioner

När du kör åtgärden som inte filtrerar hela tabellen Faktaförsäljning får du rätt resultat. Du kommer dock fortfarande att se CallBackDataID och de materialiserade 15 003 raderna, men har bara 7 rader med utdata.

DAX-frågor som använder variabler och viktiga funktioner

DAX-frågor som använder variabler och viktiga funktioner

Kör nästa mått som filtrerar på en kolumn. Du får rätt resultat och eliminerar CallBackDataID . Men du kan fortfarande se att det materialiserades många rader.

DAX-frågor som använder variabler och viktiga funktioner

DAX-frågor som använder variabler och viktiga funktioner

Kör måttet BERÄKNA . Du kan se att det bara materialiserades 10 rader och genererade rätt data på 5 millisekunder.

DAX-frågor som använder variabler och viktiga funktioner

DAX-frågor som använder variabler och viktiga funktioner

Det är den snabbaste av alla mått ovan eftersom den inte har den och drog bara 10 rader. Detta visar hur imponerande CALCULATE är när det gäller att få snabba och exakta resultat.

Om du kör alla DAX-frågor eller -mått kan du se vilken som är långsammast och snabbast baserat på varaktigheten. Du kan också se resultatet av varje åtgärd.

DAX-frågor som använder variabler och viktiga funktioner

DAX-frågor som använder variabler och viktiga funktioner

Slutsats

Genom att flytta filtren till CALCULATE sparar du tid och materialisering eftersom CallBackDataID kommer att elimineras. Du behöver inte upprepa data två gånger. Detta kommer också att maximera din DAX:s prestanda och hjälpa dig att förbättra dina utvecklingsfärdigheter.


Vad är Power Query & M Language: En detaljerad översikt

Vad är Power Query & M Language: En detaljerad översikt

Denna handledning ger en översikt över Power Query Editor och M-språket på LuckyTemplates-skrivbordet.

Skapa en paginerad rapport: Lägga till texter och bilder

Skapa en paginerad rapport: Lägga till texter och bilder

Lär dig hur du skapar en sidnumrerad rapport, lägger till texter och bilder och sedan exporterar din rapport till olika dokumentformat.

SharePoint Automate-funktionen | En introduktion

SharePoint Automate-funktionen | En introduktion

Lär dig hur du använder SharePoint-automatiseringsfunktionen för att skapa arbetsflöden och hjälpa dig att mikrohantera SharePoint-användare, bibliotek och listor.

Lös en dataanalysutmaning med LuckyTemplates Accelerator

Lös en dataanalysutmaning med LuckyTemplates Accelerator

Finslipa dina färdigheter i rapportutveckling genom att gå med i en dataanalysutmaning. Acceleratorn kan hjälpa dig att bli en LuckyTemplates superanvändare!

Löpande summor i LuckyTemplates med DAX

Löpande summor i LuckyTemplates med DAX

Lär dig hur du beräknar löpande summor i LuckyTemplates med DAX. Löpande summor låter dig inte fastna i ett individuellt resultat.

LuckyTemplates Dax-variabler är konstanta: Vad betyder detta?

LuckyTemplates Dax-variabler är konstanta: Vad betyder detta?

Förstå konceptet med variabler i DAX inom LuckyTemplates och konsekvenserna av variabler för hur dina mått beräknas.

LuckyTemplates Slope Chart: En översikt

LuckyTemplates Slope Chart: En översikt

Lär dig mer om den anpassade visual som kallas LuckyTemplates Slope-diagram, som används för att visa ökning/minskning för en enstaka eller flera mätvärden.

LuckyTemplates färgteman för enhetliga visualiseringar

LuckyTemplates färgteman för enhetliga visualiseringar

Upptäck färgteman i LuckyTemplates. Dessa är viktiga för att dina rapporter och visualiseringar ska se ut och fungera sömlöst.

Beräkna medelvärde i LuckyTemplates: Isolera veckodags- eller helgresultat med DAX

Beräkna medelvärde i LuckyTemplates: Isolera veckodags- eller helgresultat med DAX

Att beräkna ett genomsnitt i LuckyTemplates kan göras på många sätt för att ge dig exakt information för dina affärsrapporter.

LuckyTemplates Theming | LuckyTemplates Desktop Standard Theming

LuckyTemplates Theming | LuckyTemplates Desktop Standard Theming

Låt oss fördjupa oss i Standard LuckyTemplates-teman och granska några av funktionerna som är inbyggda i själva LuckyTemplates Desktop-applikationen.