Denne delen inneholder koblinger til eksempler som demonstrerer bruken av DAX-formler i følgende scenarioer.
-
Utføre komplekse beregninger
-
Arbeide med tekst og datoer
-
Betingede verdier og testing for feil
-
Bruke tidsintelligens
-
Rangering og sammenligning av verdier
I denne artikkelen
Komme i gang
Gå til WIKI-en for DAX-ressurssenteret , der du kan finne all slags informasjon om DAX, inkludert blogger, eksempler, hvitbøker og videoer levert av bransjeledende fagfolk og Microsoft.
Scenarioer: Utføre komplekse beregninger
DAX-formler kan utføre komplekse beregninger som involverer egendefinerte aggregasjoner, filtrering og bruk av betingede verdier. Denne delen inneholder eksempler på hvordan du kommer i gang med egendefinerte beregninger.
Opprette egendefinerte beregninger for en pivottabell
CALCULATE og CALCULATETABLE er kraftige, fleksible funksjoner som er nyttige for å definere beregnede felt. Med disse funksjonene kan du endre konteksten som beregningen skal utføres i. Du kan også tilpasse typen aggregasjon eller matematisk operasjon som skal utføres. Se følgende emner for eksempler.
Bruke et filter på en formel
De fleste steder der en DAX-funksjon tar en tabell som et argument, kan du vanligvis sende inn en filtrert tabell i stedet, enten ved hjelp av FILTER-funksjonen i stedet for tabellnavnet, eller ved å angi et filteruttrykk som ett av funksjonsargumentene. Emnene nedenfor inneholder eksempler på hvordan du oppretter filtre og hvordan filtre påvirker resultatene av formler. Hvis du vil ha mer informasjon, kan du se Filtrere data i DAX-formler.
FILTER-funksjonen lar deg angi filtervilkår ved hjelp av et uttrykk, mens de andre funksjonene er utformet spesielt for å filtrere ut tomme verdier.
Fjern filtre selektivt for å opprette et dynamisk forhold
Ved å opprette dynamiske filtre i formler kan du enkelt svare på spørsmål som følgende:
-
Hva var bidraget fra det gjeldende produktets salg til totalt salg for året?
-
Hvor mye har denne divisjonen bidratt til total fortjeneste for alle driftsår, sammenlignet med andre divisjoner?
Formler du bruker i en pivottabell, kan påvirkes av pivottabellkonteksten, men du kan selektivt endre konteksten ved å legge til eller fjerne filtre. Eksemplet i ALL-emnet viser deg hvordan du gjør dette. Hvis du vil finne salgsforholdet for en bestemt forhandler over salgene for alle forhandlere, oppretter du et mål som beregner verdien for gjeldende kontekst delt på verdien for ALL-konteksten.
ALLEXCEPT-emnet inneholder et eksempel på hvordan du selektivt fjerner filtre på en formel. Begge eksemplene veileder deg gjennom hvordan resultatene endres avhengig av utformingen av pivottabellen.
Hvis du vil ha andre eksempler på hvordan du beregner forhold og prosenter, kan du se følgende emner:
Bruke en verdi fra en ytre løkke
I tillegg til å bruke verdier fra gjeldende kontekst i beregninger, kan DAX bruke en verdi fra en tidligere løkke til å opprette et sett med relaterte beregninger. Følgende emne gir en gjennomgang av hvordan du bygger en formel som refererer til en verdi fra en ytre løkke. EARLIER-funksjonen støtter opptil to nivåer med nestede løkker.
Hvis du vil lære mer om radkontekst og relaterte tabeller, og hvordan du bruker dette konseptet i formler, kan du se Kontekst i DAX-formler.
Scenarioer: Arbeide med tekst og datoer
Denne delen inneholder koblinger til DAX-referanseemner som inneholder eksempler på vanlige scenarioer som involverer å arbeide med tekst, trekke ut og skrive ut dato- og klokkeslettverdier, eller opprette verdier basert på en betingelse.
Opprette en nøkkelkolonne ved å kjede sammen
Power Pivot tillater ikke sammensatte nøkler. Hvis du har sammensatte nøkler i datakilden, må du kanskje kombinere dem i én enkelt nøkkelkolonne. Følgende emne inneholder ett eksempel på hvordan du oppretter en beregnet kolonne basert på en sammensatt nøkkel.
Skrive en dato basert på datodeler som er trukket ut fra en tekstdato
Power Pivot bruker en datatype for dato/klokkeslett for SQL Server til å arbeide med datoer. Hvis de eksterne dataene inneholder datoer som er formatert annerledes , for eksempel hvis datoene er skrevet i et regionalt datoformat som ikke gjenkjennes av Power Pivot-datamotoren, eller hvis dataene bruker surrogatnøkler for heltall - må du kanskje bruke en DAX-formel til å trekke ut datodelene og deretter skrive ut delene til en gyldig dato/klokkeslett-representasjon.
Hvis du for eksempel har en kolonne med datoer som er representert som et heltall og deretter importert som en tekststreng, kan du konvertere strengen til en dato/klokkeslett-verdi ved hjelp av følgende formel:
=DATO(HØYRE([Verdi1],4),VENSTRE([Verdi1],2),DELTEKST([Verdi1],2))
Verdi1 |
Resultat |
---|---|
01032009 |
1/3/2009 |
12132008 |
12/13/2008 |
06252007 |
6/25/2007 |
Emnene nedenfor gir mer informasjon om funksjonene som brukes til å trekke ut og skrive ut datoer.
Definere et egendefinert dato- eller tallformat
Hvis dataene inneholder datoer eller tall som ikke er representert i et av standard Windows-tekstformatene, kan du definere et egendefinert format for å sikre at verdiene håndteres på riktig måte. Disse formatene brukes når du konverterer verdier til strenger, eller fra strenger. Emnene nedenfor inneholder også en detaljert liste over de forhåndsdefinerte formatene som er tilgjengelige for å arbeide med datoer og tall.
Endre datatyper ved hjelp av en formel
I Power Pivot bestemmes datatypen for utdataene av kildekolonnene, og du kan ikke eksplisitt angi datatypen for resultatet, fordi den optimale datatypen bestemmes av Power Pivot. Du kan imidlertid bruke de implisitte datatypekonverteringene som utføres av Power Pivot til å manipulere datatypen for utdata.
-
Hvis du vil konvertere en dato eller en tallstreng til et tall, multipliserer du med 1,0. Formelen nedenfor beregner for eksempel gjeldende dato minus 3 dager, og sender deretter ut den tilsvarende heltallsverdien.
=(IDAG()-3)*1,0
-
Hvis du vil konvertere en dato-, tall- eller valutaverdi til en streng, kjeder du sammen verdien med en tom streng. Formelen nedenfor returnerer for eksempel dagens dato som en streng.
=""& I DAG()
Følgende funksjoner kan også brukes til å sikre at en bestemt datatype returneres:
Konverter reelle tall til heltall
-
Konvertere reelle tall, heltall eller datoer til strenger
-
Konvertere strenger til reelle tall eller datoer
Scenario: Betingede verdier og testing for feil
I likhet med Excel har DAX funksjoner som lar deg teste verdier i dataene og returnere en annen verdi basert på en betingelse. Du kan for eksempel opprette en beregnet kolonne som merker forhandlere enten som Foretrukket eller Verdi , avhengig av det årlige salgsbeløpet. Funksjoner som tester verdier er også nyttige for å kontrollere området eller verditypen, for å hindre uventede datafeil i å bryte beregninger.
Opprette en verdi basert på en betingelse
Du kan bruke nestede HVIS-betingelser til å teste verdier og generere nye verdier betinget. Følgende emner inneholder noen enkle eksempler på betinget behandling og betingede verdier:
Test for feil i en formel
I motsetning til Excel kan du ikke ha gyldige verdier i én rad i en beregnet kolonne og ugyldige verdier i en annen rad. Det vil si at hvis det er en feil i en del av en Power Pivot kolonne, flagges hele kolonnen med en feil, slik at du alltid må rette formelfeil som resulterer i ugyldige verdier.
Hvis du for eksempel oppretter en formel som dividerer med null, kan du få uendeligresultatet eller en feil. Noen formler vil også mislykkes hvis funksjonen støter på en tom verdi når den forventer en numerisk verdi. Når du utvikler datamodellen, er det best å la feilene vises, slik at du kan klikke på meldingen og feilsøke problemet. Når du publiserer arbeidsbøker, bør du imidlertid inkludere feilhåndtering for å hindre uventede verdier fra å forårsake at beregninger mislykkes.
Hvis du vil unngå å returnere feil i en beregnet kolonne, bruker du en kombinasjon av logiske funksjoner og informasjonsfunksjoner til å teste for feil og alltid returnere gyldige verdier. Følgende emner inneholder noen enkle eksempler på hvordan du gjør dette i DAX:
Scenarioer: Bruke tidsintelligens
DAX-funksjonene for tidsintelligens inkluderer funksjoner som hjelper deg med å hente datoer eller datointervaller fra dataene. Deretter kan du bruke disse datoene eller datointervallene til å beregne verdier på tvers av lignende perioder. Tidsintelligensfunksjonene inkluderer også funksjoner som fungerer med standard datointervaller, slik at du kan sammenligne verdier på tvers av måneder, år eller kvartaler. Du kan også opprette en formel som sammenligner verdier for første og siste dato i en angitt periode.
Hvis du vil ha en liste over alle tidsintelligensfunksjoner, kan du se Time Intelligence Functions (DAX). Hvis du vil ha tips om hvordan du bruker datoer og klokkeslett effektivt i en Power Pivot analyse, kan du se Datoer i Power Pivot.
Beregn akkumulert salg
Emnene nedenfor inneholder eksempler på hvordan du beregner avslutnings- og åpningssaldoer. Eksemplene lar deg opprette løpende saldoer på tvers av ulike intervaller, for eksempel dager, måneder, kvartaler eller år.
Sammenligne verdier over tid
Emnene nedenfor inneholder eksempler på hvordan du sammenligner summer på tvers av ulike tidsperioder. Standard tidsperioder som støttes av DAX, er måneder, kvartaler og år.
Beregne en verdi over et egendefinert datointervall
Se følgende emner for eksempler på hvordan du henter egendefinerte datointervaller, for eksempel de første 15 dagene etter starten av en salgskampanje.
Hvis du bruker tidsintelligensfunksjoner til å hente et egendefinert sett med datoer, kan du bruke dette settet med datoer som inndata til en funksjon som utfører beregninger, til å opprette egendefinerte aggregater på tvers av tidsperioder. Se følgende emne for et eksempel på hvordan du gjør dette:
-
Obs!: Hvis du ikke trenger å angi et egendefinert datointervall, men arbeider med standard regnskapsenheter som måneder, kvartaler eller år, anbefaler vi at du utfører beregninger ved hjelp av tidsintelligensfunksjonene som er utformet for dette formålet, for eksempel TOTALQTD, TOTALMTD, TOTALQTD osv.
Scenarioer: Rangering og sammenligning av verdier
Hvis du bare vil vise det øverste antallet elementer i en kolonne eller pivottabell, har du flere alternativer:
-
Du kan bruke funksjonene i Excel til å opprette et toppfilter. Du kan også velge et antall topp- eller bunnverdier i en pivottabell. Den første delen av denne delen beskriver hvordan du filtrerer etter de 10 øverste elementene i en pivottabell. Hvis du vil ha mer informasjon, kan du se Excel-dokumentasjonen.
-
Du kan opprette en formel som rangerer verdier dynamisk, og deretter filtrere etter rangeringsverdiene, eller bruke rangeringsverdien som en slicer. Den andre delen av denne delen beskriver hvordan du oppretter denne formelen og deretter bruker denne rangeringen i en slicer.
Det finnes fordeler og ulemper ved hver metode.
-
Toppfilteret i Excel er enkelt å bruke, men filteret er utelukkende til visningsformål. Hvis dataene under pivottabellen endres, må du oppdatere pivottabellen manuelt for å se endringene. Hvis du trenger å arbeide dynamisk med rangeringer, kan du bruke DAX til å opprette en formel som sammenligner verdier med andre verdier i en kolonne.
-
DAX-formelen er kraftigere. Ved å legge til rangeringsverdien i en slicer, kan du også klikke sliceren for å endre antallet toppverdier som vises. Beregningene er imidlertid beregningsmessig dyre, og denne metoden er kanskje ikke egnet for tabeller med mange rader.
Vis bare de ti øverste elementene i en pivottabell
Vise de øverste eller nederste verdiene i en pivottabell
|
Ordne elementer dynamisk ved hjelp av en formel
Følgende emne inneholder et eksempel på hvordan du bruker DAX til å opprette en rangering som er lagret i en beregnet kolonne. Siden DAX-formler beregnes dynamisk, kan du alltid være sikker på at rangeringen er riktig selv om de underliggende dataene er endret. Fordi formelen brukes i en beregnet kolonne, kan du også bruke rangeringen i en slicer og deretter velge topp 5, topp 10 eller til og med topp 100 verdier.