Jobbe med DAX-funksjoner
DAX-funksjonsbiblioteket består av hundrevis av funksjoner, som hver er utformet for å oppnå et bestemt mål.
Siden DAX kom med Power Pivot-tillegget for Microsoft Excel 2010, er over 80 funksjoner tilgjengelige som også finnes i Excel. Det var en bevisst utformingsstrategi av Microsoft for å sikre at Excel-brukere raskt kan bli produktive med DAX.
Det finnes imidlertid funksjoner som du ikke finner i Excel fordi de spesifikke for datamodellering:
- Funksjoner for relasjonsnavigering
- Funksjoner for endring av filterkontekst
- Gjentakelsesfunksjoner
- Tidsintelligensfunksjoner
- Banefunksjoner
Tips
For å søke etter dokumentasjon relatert til en DAX-funksjon, skriver du inn nøkkelordet DAX etter fulgt av funksjonsnavnet når du søker på nettet.
For mer informasjon, kan du se referanse for DAX-funksjon.
Funksjoner som stammer fra Excel
Følgende deler tar for seg flere nyttige funksjoner du kanskje allerede kjenner til fordi de finnes i Excel.
IF
DAX-funksjonen tester om en betingelse som er angitt som det første argumentet er oppfylt. Den returnerer én verdi hvis betingelsen er SANN, og returnerer den andre verdien hvis betingelsen er USANN. Funksjonssyntaksen er:
IF(<logical_test>, <value_if_true>[, <value_if_false>])
Tips
Et funksjonsargument er valgfritt når dokumentasjonen viser det i hakeparenteser.
Hvis logical_test evalueres til USANN og value_if_false ikke er angitt, returnerer funksjonen BLANK.
Mange sammendragsfunksjoner i Excel er tilgjengelige, inkludert SUM
, COUNT
, AVERAGE
, MIN
, MAX
og mange andre. Den eneste forskjellen er at i DAX sender du inn en kolonnereferanse, mens i Excel sender du inn et celleområde.
Mye av matematikken, teksten, dato og klokkeslett, informasjon og logiske funksjoner i Excel er også tilgjengelige. Et lite utvalg av Excel-funksjoner som er tilgjengelige i DAX ABS
inkluderer for eksempel , , ROUND
, SQRT
, LEN
LEFT
, , RIGHT
, UPPER
, DATE
, YEAR
, MONTH
, NOW
ISNUMBER
, , TRUE
, FALSE
, AND
, , OR
NOT
, og IFERROR
.
Funksjoner som ikke stammer fra Excel
To nyttige DAX-funksjoner som ikke er spesifikke for modellering, og som ikke kommer fra Excel, er DISTINCTCOUNT
og DIVIDE
.
DISTINCTCOUNT-funksjonen
Du kan bruke DISTINCTCOUNT
DAX-funksjonen til å telle antall distinkte verdier i en kolonne. Denne funksjonen er spesielt nyttig i en analyseløsning. Vurder at antallet kunder er forskjellig fra antallet spesifikke kunder. Sistnevnte teller ikke gjentakende kunder, så forskjellen er “Hvor mange kunder” sammenlignet med “Hvor mange forskjellige kunder.”
DIVIDE-funksjonen
Du kan bruke DAX-funksjonen DIVIDE
til å oppnå divisjon. Du må sende inn uttrykk for tellere og nevnere. Du kan eventuelt sende inn en verdi som representerer et alternativt resultat. Syntaksen DIVIDE
for funksjonen er:
DIVIDE(<numerator>, <denominator>[, <alternate_result>])
Funksjonen DIVIDE
håndterer automatisk deling med null tilfeller. Hvis et alternativt resultat ikke sendes inn, og nevneren er null eller BLANK, returnerer funksjonen BLANK. Når et alternativt resultat sendes inn, blir det returnert i stedet for BLANK.
Denne funksjonen er nyttig fordi den lagrer uttrykket ved å først teste nevnerverdien. Funksjonen er også bedre optimalisert for testing av nevnerverdien enn IF
funksjonen. Ytelsesforbedringen er viktig fordi det er dyrt å se etter deling på null. I tillegg resulterer bruk av DIVIDE
funksjonen i et mer konsis og elegant uttrykk.
Tips
Vi anbefaler at du bruker DIVIDE
funksjonen når nevneren er et uttrykk som kan returnere null eller BLANK. Hvis nevneren er en konstant verdi, anbefaler vi at du bruker divisjonsoperatoren (/) som blir introdusert senere i denne modulen. I dette tilfelle er divisjon garantert vellykket, og uttrykket vil fungere bedre fordi det unngår unødvendig testing.