Dette afsnit indeholder links til eksempler, der demonstrerer brugen af DAX-formler i følgende scenarier.
-
Udførelse af komplekse beregninger
-
Arbejde med tekst og datoer
-
Betingede værdier og test for fejl
-
Brug af tidsintelligens
-
Rangering og sammenligning af værdier
I denne artikel
Introduktion
Besøg wikien DAX Resource Center , hvor du kan finde alle mulige oplysninger om DAX, herunder blogs, eksempler, whitepapers og videoer, der leveres af brancheførende fagfolk og Microsoft.
Scenarier: Udførelse af komplekse beregninger
DAX-formler kan udføre komplekse beregninger, der involverer brugerdefinerede sammenlægninger, filtrering og brug af betingede værdier. Dette afsnit indeholder eksempler på, hvordan du kommer i gang med brugerdefinerede beregninger.
Oprette brugerdefinerede beregninger for en pivottabel
CALCULATE og CALCULATETABLE er effektive og fleksible funktioner, der er nyttige til at definere beregnede felter. Med disse funktioner kan du ændre den kontekst, som beregningen udføres i. Du kan også tilpasse den type sammenlægning eller matematisk handling, der skal udføres. Se følgende emner for at få eksempler.
Anvend et filter på en formel
De fleste steder, hvor en DAX-funktion tager en tabel som argument, kan du normalt overføre i en filtreret tabel i stedet, enten ved hjælp af funktionen FILTRER i stedet for tabelnavnet eller ved at angive et filterudtryk som et af funktionsargumenterne. Følgende emner indeholder eksempler på, hvordan du opretter filtre, og hvordan filtre påvirker resultaterne af formler. Du kan få mere at vide under Filtrer data i DAX-formler.
Med funktionen FILTRER kan du angive filterkriterier ved hjælp af et udtryk, mens de andre funktioner er designet specifikt til at filtrere tomme værdier fra.
Fjern filtre selektivt for at oprette et dynamisk forhold
Ved at oprette dynamiske filtre i formler kan du nemt besvare spørgsmål som følgende:
-
Hvad var bidraget fra det aktuelle produkts salg til det samlede salg for året?
-
Hvor meget har denne division bidraget til det samlede overskud for alle driftsår sammenlignet med andre divisioner?
Formler, du bruger i en pivottabel, kan blive påvirket af pivottabelkonteksten, men du kan selektivt ændre konteksten ved at tilføje eller fjerne filtre. I eksemplet i EMNET ALLE kan du se, hvordan du gør dette. Hvis du vil finde forholdet mellem salg for en bestemt forhandler og salg for alle forhandlere, skal du oprette en måling, der beregner værdien for den aktuelle kontekst divideret med værdien for ALLE-konteksten.
Emnet ALLEXCEPT er et eksempel på, hvordan du selektivt rydder filtre på en formel. Begge eksempler fører dig gennem, hvordan resultaterne ændres, afhængigt af designet af pivottabellen.
Du kan se andre eksempler på, hvordan du beregner nøgletal og procentdele, i følgende emner:
Brug af en værdi fra en ydre løkke
Ud over at bruge værdier fra den aktuelle kontekst i beregninger kan DAX bruge en værdi fra en tidligere løkke til at oprette et sæt relaterede beregninger. Følgende emne indeholder en gennemgang af, hvordan du opbygger en formel, der refererer til en værdi fra en ydre løkke. Funktionen TIDLIGERE understøtter op til to niveauer af indlejrede løkker.
Du kan få mere at vide om rækkekontekst og relaterede tabeller, og hvordan du bruger dette koncept i formler, under Kontekst i DAX-formler.
Scenarier: Arbejde med tekst og datoer
Dette afsnit indeholder links til DAX-referenceemner, der indeholder eksempler på almindelige scenarier, der involverer at arbejde med tekst, udtrække og skrive dato- og klokkeslætsværdier eller oprette værdier baseret på en betingelse.
Opret en nøglekolonne ved sammenkædning
Power Pivot tillader ikke sammensatte nøgler. Hvis du har sammensatte nøgler i datakilden, kan det derfor være nødvendigt at kombinere dem i en enkelt nøglekolonne. Følgende emne indeholder et eksempel på, hvordan du opretter en beregnet kolonne baseret på en sammensat nøgle.
Opret en dato baseret på datodele, der er udtrukket fra en tekstdato
Power Pivot bruger en SQL Server-datatype for dato/klokkeslæt til at arbejde med datoer. Hvis dine eksterne data indeholder datoer, der er formateret anderledes – f.eks. hvis dine datoer er skrevet i et regionalt datoformat, der ikke genkendes af det Power Pivot dataprogram, eller hvis dine data bruger heltals surrogatnøgler – kan det være nødvendigt at bruge en DAX-formel til at udtrække datodelene og derefter skrive delene til en gyldig repræsentation af dato/klokkeslæt.
Hvis du f.eks. har en kolonne med datoer, der er blevet repræsenteret som et heltal og derefter importeret som en tekststreng, kan du konvertere strengen til en dato/klokkeslæt-værdi ved hjælp af følgende formel:
=DATO(HØJRE([Værdi1],4),VENSTRE([Værdi1],2),MIDT([Værdi1],2))
Værdi1 |
Resultat |
---|---|
01032009 |
1/3/2009 |
12132008 |
12/13/2008 |
06252007 |
6/25/2007 |
Følgende emner indeholder flere oplysninger om de funktioner, der bruges til at udtrække og skrive datoer.
Definer et brugerdefineret dato- eller talformat
Hvis dine data indeholder datoer eller tal, der ikke er repræsenteret i et af Windows-standardtekstformaterne, kan du definere et brugerdefineret format for at sikre, at værdierne håndteres korrekt. Disse formater bruges, når du konverterer værdier til strenge eller fra strenge. Følgende emner indeholder også en detaljeret liste over de foruddefinerede formater, der er tilgængelige til at arbejde med datoer og tal.
Ændre datatyper ved hjælp af en formel
I Power Pivotbestemmes datatypen for outputtet af kildekolonnerne, og du kan ikke eksplicit angive datatypen for resultatet, fordi den optimale datatype bestemmes af Power Pivot. Du kan dog bruge de implicitte datatypekonverteringer, der udføres af Power Pivot , til at manipulere outputdatatypen.
-
Hvis du vil konvertere en dato eller en talstreng til et tal, skal du multiplicere med 1,0. Følgende formel beregner f.eks. dags dato minus 3 dage og angiver derefter den tilsvarende heltalsværdi.
=(IDAG()-3)*1,0
-
Hvis du vil konvertere en dato-, tal- eller valutaværdi til en streng, skal du sammenkæde værdien med en tom streng. Følgende formel returnerer f.eks. dags dato som en streng.
=""& IDAG()
Følgende funktioner kan også bruges til at sikre, at en bestemt datatype returneres:
Konvertér reelle tal til heltal
-
Konvertér reelle tal, heltal eller datoer til strenge
-
Konvertere strenge til reelle tal eller datoer
Scenarie: Betingede værdier og test for fejl
Ligesom Excel har DAX funktioner, der gør det muligt at teste værdier i dataene og returnere en anden værdi baseret på en betingelse. Du kan f.eks. oprette en beregnet kolonne, der etiketterer forhandlere enten som Foretrukken eller Værdi afhængigt af det årlige salgsbeløb. Funktioner, der tester værdier, er også nyttige til at kontrollere området eller typen af værdier for at forhindre uventede datafejl i at bryde beregninger.
Oprette en værdi baseret på en betingelse
Du kan bruge indlejrede HVIS-betingelser til at teste værdier og generere nye værdier betinget. Følgende emner indeholder nogle enkle eksempler på betinget behandling og betingede værdier:
Test for fejl i en formel
I modsætning til Excel kan du ikke have gyldige værdier i én række i en beregnet kolonne og ugyldige værdier i en anden række. Hvis der er en fejl i en del af en Power Pivot kolonne, markeres hele kolonnen med flag med en fejl, så du altid skal rette formelfejl, der medfører ugyldige værdier.
Hvis du f.eks. opretter en formel, der dividerer med nul, kan du få uendelighedsresultatet eller en fejl. Nogle formler mislykkes også, hvis funktionen støder på en tom værdi, når den forventer en numerisk værdi. Mens du udvikler din datamodel, er det bedst at tillade, at fejlene vises, så du kan klikke på meddelelsen og foretage fejlfinding af problemet. Men når du publicerer projektmapper, skal du medtage fejlhåndtering for at forhindre uventede værdier i at medføre, at beregninger mislykkes.
Hvis du vil undgå at returnere fejl i en beregnet kolonne, skal du bruge en kombination af logiske funktioner og oplysningsfunktioner til at teste for fejl og altid returnere gyldige værdier. Følgende emner indeholder nogle enkle eksempler på, hvordan du gør dette i DAX:
Scenarier: Brug af Time Intelligence
Funktionerne DAX-tidsintelligens omfatter funktioner, der kan hjælpe dig med at hente datoer eller datointervaller fra dine data. Du kan derefter bruge disse datoer eller datointervaller til at beregne værdier på tværs af lignende perioder. Funktionerne til tidsintelligens omfatter også funktioner, der fungerer med standarddatointervaller, så du kan sammenligne værdier på tværs af måneder, år eller kvartaler. Du kan også oprette en formel, der sammenligner værdier for første og sidste dato i en bestemt periode.
Du kan se en liste over alle tidsintelligensfunktioner i Time Intelligence-funktioner (DAX). Du kan finde tip til, hvordan du bruger datoer og klokkeslæt effektivt i en Power Pivot analyse, under Datoer i Power Pivot.
Beregn akkumuleret salg
Følgende emner indeholder eksempler på, hvordan du beregner slut- og åbningssaldi. I eksemplerne kan du oprette løbende saldi på tværs af forskellige intervaller, f.eks. dage, måneder, kvartaler eller år.
Sammenlign værdier over tid
Følgende emner indeholder eksempler på, hvordan du sammenligner summer på tværs af forskellige tidsperioder. De standardtidsperioder, der understøttes af DAX, er måneder, kvartaler og år.
Beregne en værdi over et brugerdefineret datointerval
Se følgende emner for at få eksempler på, hvordan du henter brugerdefinerede datointervaller, f.eks. de første 15 dage efter starten på en salgskampagne.
Hvis du bruger time intelligence-funktioner til at hente et brugerdefineret sæt datoer, kan du bruge dette sæt datoer som input til en funktion, der udfører beregninger, til at oprette brugerdefinerede aggregater på tværs af tidsperioder. Se følgende emne for at få et eksempel på, hvordan du gør dette:
-
Bemærk!: Hvis du ikke har brug for at angive et brugerdefineret datointerval, men arbejder med standardregnskabsenheder, f.eks. måneder, kvartaler eller år, anbefaler vi, at du udfører beregninger ved hjælp af de time intelligence-funktioner, der er udviklet til dette formål, f.eks. TOTALQTD, TOTALMTD, TOTALQTD osv.
Scenarier: Rangering og sammenligning af værdier
Hvis du kun vil have vist det øverste n antal elementer i en kolonne eller pivottabel, har du flere muligheder:
-
Du kan bruge funktionerne i Excel til at oprette et topfilter. Du kan også vælge et antal øverste eller nederste værdier i en pivottabel. Den første del af dette afsnit beskriver, hvordan du filtrerer efter de øverste 10 elementer i en pivottabel. Du kan få mere at vide i dokumentationen til Excel.
-
Du kan oprette en formel, der dynamisk rangerer værdier, og derefter filtrere efter rangeringsværdierne, eller du kan bruge rangeringsværdien som et udsnitsværktøj. I anden del af dette afsnit beskrives det, hvordan du opretter denne formel og derefter bruger rangeringen i et udsnitsværktøj.
Der er fordele og ulemper ved hver metode.
-
Excel Top-filteret er nemt at bruge, men filteret er udelukkende til visningsformål. Hvis de data, der ligger til grund for pivottabellen, ændres, skal du opdatere pivottabellen manuelt for at se ændringerne. Hvis du har brug for dynamisk at arbejde med rangering, kan du bruge DAX til at oprette en formel, der sammenligner værdier med andre værdier i en kolonne.
-
DAX-formlen er mere effektiv. Desuden kan du ved at føje rangeringsværdien til et udsnitsværktøj blot klikke på udsnittet for at ændre antallet af de øverste værdier, der vises. Beregningerne er dog beregningsmæssigt dyre, og denne metode er muligvis ikke egnet til tabeller med mange rækker.
Vis kun de ti øverste elementer i en pivottabel
Sådan får du vist de øverste eller nederste værdier i en pivottabel
|
Bestil elementer dynamisk ved hjælp af en formel
Følgende emne indeholder et eksempel på, hvordan du bruger DAX til at oprette en rangering, der er gemt i en beregnet kolonne. Da DAX-formler beregnes dynamisk, kan du altid være sikker på, at rangeringen er korrekt, selvom de underliggende data er ændret. Da formlen bruges i en beregnet kolonne, kan du også bruge rangeringen i et udsnitsværktøj og derefter vælge de øverste 5, de øverste 10 eller endda de øverste 100 værdier.