Arbeta med DAX-funktioner
DAX-funktionsbiblioteket består av hundratals funktioner som var och en är utformad för att uppnå ett särskilt mål.
Eftersom DAX har sitt ursprung i Power Pivot-tillägget för Microsoft Excel 2010 är över 80 funktioner tillgängliga som också kan hittas i Excel. Det var en avsiktlig designstrategi från Microsoft för att se till att Excel-användare snabbt kan bli produktiva med DAX.
Det finns dock många funktioner som du inte hittar i Excel eftersom de är speciella för datamodellering:
- Relationsnavigeringsfunktioner
- Modifieringsfunktioner för att filtrera kontext
- Iteratorfunktioner
- Tidsinformationsfunktioner
- Sökvägsfunktioner
Tips
Om du vill söka efter dokumentation som är relaterad till en DAX-funktion anger du nyckelordet DAX i en webbsökning, följt av funktionsnamnet.
Mer information finns i DAX-funktionsreferens.
Funktioner som kommer från Excel
I följande avsnitt kan du se flera användbara funktioner som du kanske redan är bekant med eftersom de finns i Excel.
DAX-funktionen IF
testar om ett villkor som anges som det första argumentet uppfylls. Det returnerar ett värde om villkoret är TRUE och returnerar det andra värdet om villkoret är FALSE. Funktionens syntax är:
IF(<logical_test>, <value_if_true>[, <value_if_false>])
Tips
Ett funktionsargument är valfritt när dokumentationen visar det inom hakparenteser.
Om logical_test utvärderas till FALSE och value_if_false inte anges kommer funktionen att returnera BLANK.
Det finns många excel-sammanfattningsfunktioner, bland annat SUM
, COUNT
, AVERAGE
, MIN
, MAX
och många andra. Den enda skillnaden är att i DAX skickar du en kolumnreferens, medan du i Excel skickar in ett cellområde.
Många av Excels text-, datum-, tids- och informationsfunktioner samt logiska och matematiska funktioner är också tillgängliga. Ett litet exempel på Excel-funktioner som är tillgängliga i DAX är ABS
till exempel , ROUND
, SQRT
, LEN
, LEFT
, RIGHT
, UPPER
, DATE
YEAR
ISNUMBER
MONTH
NOW
, TRUE
, FALSE
, AND
, OR
, NOT
, och .IFERROR
Funktioner som inte kommer från Excel
Två användbara DAX-funktioner som inte är specifika för modellering och som inte kommer från Excel är DISTINCTCOUNT
och DIVIDE
.
Funktionen DISTINCTCOUNT
Du kan använda DISTINCTCOUNT
DAX-funktionen för att räkna antalet distinkta värden i en kolumn. Den här funktionen är särskilt kraftfull i en analyslösning. Tänk på att antalet kunder skiljer sig från antalet distinkta kunder. Den senare räknar inte upprepade kunder, så skillnaden är ”hur antal kunder” jämfört med ”antal olika kunder”.
Funktionen DIVIDE
Du kan använda DIVIDE
DAX-funktionen för att uppnå division. Du måste ange uttryck för täljare och nämnare. Alternativt kan du skicka in ett värde som representerar ett alternativ resultat. Funktionens DIVIDE
syntax är:
DIVIDE(<numerator>, <denominator>[, <alternate_result>])
Funktionen DIVIDE
hanterar automatiskt division med noll fall. Om ett alternativt resultat inte skickas och nämnaren är noll eller BLANK, returnerar funktionen BLANK. När ett alternativt resultat skickas returneras det istället för BLANK.
Den här funktionen är praktisk eftersom den gör att ditt uttryck inte först behöver testa värdet för nämnaren. Funktionen är också bättre optimerad för att testa nämnarvärdet än funktionen IF
. Prestandaökningen är stor eftersom det är kostsamt att kontrollera division med noll. Dessutom resulterar funktionen DIVIDE
i ett mer koncist och elegant uttryck.
Tips
Vi rekommenderar att du använder DIVIDE
funktionen när nämnaren är ett uttryck som kan returnera noll eller BLANK. Om nämnaren är ett konstant värde rekommenderar vi att du använder divisionsoperatorn (/), som introduceras senare i den här modulen. I det här fallet är divisionen garanterad att lyckas och ditt uttryck fungerar bättre eftersom det undviker onödig testning.