Arbeta med DAX-funktioner

Slutförd

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, MAXoch 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 ABStill exempel , ROUND, SQRT, LEN, LEFT, RIGHT, UPPER, DATEYEARISNUMBERMONTHNOW, 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.