DAX (Data Analysis Expressions) i Power Pivot

Vigtigt: Denne artikel er maskinoversat. Se ansvarsfraskrivelsen. Du kan finde den engelske version af denne artikel her til din orientering.

Data Analysis Expressions (DAX) lyder lidt mærkelig ud i første omgang, men lad ikke navnet narre dig. Grundlæggende DAX-funktioner er faktisk ret nemt at forstå. Første ting først - DAX ikke er et programmeringssprog. DAX er en formelsprog. Du kan bruge DAX til at definere brugerdefinerede beregninger for Beregnede kolonner og målinger (også kaldet beregnede felter). DAX indeholder nogle af de funktioner, der bruges i formler i Excel og andre funktioner, der er udviklet til at arbejde med relationelle data og udføre dynamisk sammenlægning.

Om DAX-formler

DAX-formler ligner meget Excel-formler. Hvis du vil oprette en DAX-formel, skal du skrive et lighedstegn efterfulgt af et funktionsnavn eller et udtryk og eventuelle obligatoriske værdier eller argumenter. Ligesom Excel indeholder DAX en række funktioner, som du kan bruge til at arbejde med strenge, udføre beregninger ved hjælp af datoer og klokkeslæt eller oprette betingede værdier.

Men DAX-formler er forskellige på følgende vigtige måder:

  • Hvis du vil tilpasse beregningerne rækkevis, indeholder DAX funktioner, der giver mulighed for at bruge den aktuelle rækkeværdi eller en relateret værdi til at udføre beregninger, der varierer efter konteksten.

  • DAX omfatter en type funktion, der som resultat returnerer en tabel i stedet for en enkelt værdi. Disse funktioner kan bruges til at levere input til andre funktioner.

  • Intelligence-funktioneri DAX tillader beregninger ved brug af datoområder og sammenligning af resultaterne på tværs af parallelle perioder.

Her kan du bruge DAX-formler

Du kan oprette formler i enten beregnede columns eller beregnede fieldsPower Pivot.

Beregnede kolonner

En beregnet kolonne er en kolonne, som du føjer til en eksisterende Power Pivot-tabel. I stedet for at indsætte eller importere værdier i kolonnen opretter du en DAX-formel, der definerer kolonneværdierne. Hvis du medtager Power Pivot-tabellen i en pivottabel eller et pivotdiagram, kan du bruge den beregnede kolonne, som du bruger enhver anden datakolonne.

Formlerne i beregnede kolonner ligner meget de formler, du opretter i Excel. I modsætning til Excel kan du dog ikke oprette forskellige formler til forskellige rækker i en tabel. DAX-formlen anvendes automatisk på hele kolonnen.

Når en kolonne indeholder en formel, beregnes værdien for hver enkelt række. Resultaterne beregnes for kolonnen, så snart du opretter formlen. Kolonneværdierne genberegnes kun, hvis de underliggende data opdateres, eller hvis der bruges manuel genberegning.

Du kan oprette beregnede kolonner, der er baseret på mål og andre beregnede kolonner. Dog undgå at bruge det samme navn til en beregnet kolonne og en måling, da det kan føre til forvirrende resultater. Når der henvises til en kolonne, er det bedst at bruge en fuldt kvalificeret kolonnereference, for at undgå ved et uheld aktivering af en måling.

Du finder flere oplysninger under Beregnede kolonner i Power Pivot.

Mål

Et mål er en formel, der er udviklet specielt til brug i pivottabellen (eller pivotdiagrammet), der bruger Power Pivot data. Mål kan være baseret på standardsammenlægningsfunktioner, såsom COUNT eller SUM, eller du kan oprette din egen formel ved hjælp af DAX. Et mål bruges i området værdier i en pivottabel. Hvis du vil placere beregnede resultater i et andet område i en pivottabel, skal du bruge en beregnet kolonne i stedet.

Når du definerer en formel til en eksplicit mål, der sker ingenting, indtil du har tilføjet målingen i en pivottabel. Når du tilføjer målingen, evalueres formlen for hver celle i området værdier i pivottabellen. Da et resultat er oprettet for hver kombination af række- og kolonneoverskrifter, kan resultatet for målingen være anderledes i hver celle.

Definitionen af målingen, som du opretter gemmes sammen med dens kildetabel data. Det vises på listen PivotTable Fields og er tilgængelige for alle brugere af projektmappen.

Du kan finde mere detaljerede oplysninger målinger i Power Pivot.

Oprette formler vha. formellinjen

Power Pivot indeholder  ligesom Excel en formellinje, der gør det nemmere at oprette og redigere formler, og funktioner til autofuldførelse, for at minimere skrive- og syntaksfejl.

Sådan angives navnet på en tabel   Start med at skrive tabellens navn. Autofuldførelse for formler viser en rulleliste, der indeholder gyldige navne, som starter med disse bogstaver.

Sådan angives navnet på en kolonne   Skriv en kantet parentes, og vælg derefter kolonnen på listen over kolonner i den aktuelle tabel. Hvis du ønsker en kolonne fra en anden tabel, skal du starte med at skrive de første bogstaver i tabellens navn og derefter vælge kolonnen på rullelisten for autofuldførelse.

Du kan finde flere detaljer og en gennemgang af, hvordan du opretter formler, under Oprette formler til beregninger i Power Pivot.

Tip til brug af autofuldførelse

Du kan bruge autofuldførelse for formler midt i en eksisterende formel med indlejrede funktioner. Teksten umiddelbart før indsætningspunktet bruges til at vise værdier på rullelisten, og al tekst efter indsætningspunktet forbliver uændret.

Definerede navne, som du opretter til konstanter, vises ikke på rullelisten for autofuldførelse, men du kan stadig skrive navnene.

Power Pivot tilføjer ikke slutparentesen for funktioner og matcher heller ikke automatisk parenteser. Du skal sørge for, at syntaksen i alle funktioner er korrekt. Ellers kan du ikke gemme eller bruge formlen. 

Bruge flere funktioner i en formel

Du kan indlejre funktioner. Det betyder, at du kan bruge resultaterne fra én funktion som argument for en anden funktion. Du kan indlejre op til 64 niveauer af funktioner i beregnede kolonner. Men indlejring kan gøre det vanskeligt at oprette formler og foretage fejlfinding i dem.

Mange DAX-funktioner er designet til udelukkende at blive brugt som indlejrede funktioner. Disse funktioner returnerer en tabel, som ikke kan gemmes direkte som et resultat. Den skal leveres som input til en tabelfunktion. Eksempelvis kræver funktionerne SUMX, AVERAGEX og MINX alle en tabel som første argument.

Bemærk: Der findes nogle begrænsninger for indlejring af funktioner i foranstaltninger, for at sikre, at ydelsen ikke påvirkes af de mange beregninger, der er nødvendige ved afhængigheder blandt kolonner.

Sammenligne DAX-funktioner og Excel-funktioner

DAX-funktionsbiblioteket er baseret på Excel-funktionsbiblioteket, men bibliotekerne har mange forskelle. I dette afsnit gives et overblik over forskellene og lighederne mellem Excel-funktioner og DAX-funktioner.

  • Mange DAX-funktioner har samme navn og samme generelle virkemåde som Excel-funktioner, men er ændret, så de benytter andre typer af input og i nogle tilfælde returnerer en anden datatype. Generelt kan du ikke bruge DAX-funktioner i en Excel-formel eller bruge Excel-formler i Power Pivot uden at foretage ændringer.

  • DAX-funktioner bruger aldrig en cellereference eller et område som reference. I stedet bruger DAX-funktioner en kolonne eller en tabel som reference.

  • Dato- og klokkeslætsfunktioner i DAX returnerer en datetime-datatype. Dato- og klokkeslætsfunktioner i Excel returnerer derimod et heltal, der repræsenterer en dato som et serienummer.

  • Mange af de nye DAX-funktioner returnerer enten en tabel med værdier eller foretager beregninger baseret på en tabel med værdier som input. I modsætning hertil har Excel ingen funktioner, der returnerer en tabel, men nogle funktioner kan fungere med matricer. Muligheden for nemt at referere til hele tabeller og kolonner er en ny funktion i Power Pivot.

  • DAX indeholder nye opslagsfunktioner, der ligner matrix- og vektoropslagsfunktionerne i Excel. Men DAX-funktionerne kræver, at der er etableret en relation mellem tabellerne.

  • Dataene i en kolonne forventes altid at have samme type. Hvis dataene ikke har samme type, ændrer DAX hele kolonnen til den datatype, der bedst kan rumme alle værdier.

DAX-datatyper

Du kan importere data til en Power Pivot-datamodel fra mange forskellige datakilder, som kan understøtte forskellige datatyper. Når du importerer eller indlæser dataene og derefter bruger dataene i beregninger eller i pivottabeller, konverteres dataene til en af Power Pivot-datatyperne. Du finder en liste over datatyper i Datatyper i datamodeller.

Tabeldatatypen er en ny datatype i DAX, der bruges som input eller output for mange nye funktioner. Funktionen FILTER benytter f.eks. en tabel som input og leverer en anden tabel, der kun indeholder de rækker, som opfylder filterbetingelserne, som output. Ved at kombinere tabelfunktioner med sammenlægningsfunktioner kan du udføre komplekse beregninger over dynamisk definerede datasæt. Du kan finde flere oplysninger under Sammenlægninger i Power Pivot.

Formler og relationsmodellen

Vinduet Power Pivot er et område, hvor du kan arbejde med flere tabeller med data og oprette forbindelse tabellerne i en relationel model. I denne datamodel er tabeller forbundet til hinanden via relationer, som gør det muligt at oprette korrelationer med kolonner i andre tabeller og oprette mere interessant beregninger. For eksempel kan du oprette formler, der sumværdierne for en relateret tabel og derefter gemmer den pågældende værdi i en enkelt celle. Eller du kan styre rækker fra den relaterede tabel, kan du anvende filtre til tabeller og kolonner. Se relationer mellem tabeller i en datamodel, kan finde flere oplysninger.

Muligheden for at sammenkæde tabeller ved hjælp af relationer betyder, at dine pivottabeller også kan omfatte data fra flere kolonner fra forskellige tabeller.

Men da formler kan fungere med hele tabeller og kolonner, skal du designe beregningerne anderledes, end du gør i Excel.

  • En DAX-formel i en kolonne anvendes normalt altid på hele sættet af værdier i kolonnen (aldrig på blot nogle få rækker eller celler).

  • Tabeller i Power Pivot skal altid have det samme antal kolonner i hver række, og alle rækker i en kolonne skal indeholde den samme datatype.

  • Når tabeller forbindes i en relation, skal du sikre dig, at de to kolonner, der bruges som nøgler, for størstedelens vedkommende har matchende værdier. Da Power Pivot ikke gennemtvinger referentiel integritet, er det muligt at have værdier, der ikke matcher, i en nøglekolonne og stadig oprette en relation. Men tilstedeværelsen af tomme værdier eller værdier, der ikke matcher, kan påvirke resultatet af formler og udseendet af pivottabeller. Du finder flere oplysninger under Opslag i Power Pivot-formler.

  • Når du sammenkæder tabeller ved hjælp af relationer, kan du forstørre omfang eller context , som dine formler skal evalueres. Formler i en pivottabel kan for eksempel påvirkes af enhver filtre eller kolonne- og rækkeoverskrifter i pivottabellen. Du kan skrive formler, der manipulerer kontekst, men kontekst kan også medføre dine resultater til at ændre på måder, som du ikke kan forventer at skulle. Du kan finde flere oplysninger under kontekst i DAX-formler.

Opdatere formelresultater

Data r dater og genberegning er to separat, men relateret operationer, skal du vide, når du designer en datamodel, der indeholder komplekse formler, store mængder data eller data, der er hentet fra eksterne datakilder.

Dataopdatering er den proces, hvor dataene i projektmappen opdateres med nye data fra en ekstern datakilde. Du kan opdatere data manuelt med intervaller, som du angiver. Eller hvis du har publiceret projektmappen på et SharePoint-websted, kan du planlægge en automatisk opdatering fra eksterne kilder.

Genberegning er den proces, hvor resultaterne af formler opdateres, så de afspejler eventuelle ændringer af selve formlerne og af de underliggende data. Genberegning kan påvirke ydelsen på følgende måder:

  • Når det drejer sig om en beregnet kolonne, skal formelresultatet altid genberegnes for hele kolonnen, hver gang du ændrer formlen.

  • For en måling beregnes resultaterne af en formel ikke, før mål er placeret i forbindelse med pivottabellen eller pivotdiagrammet. Formlen genberegnes også, når du ændrer en hvilken som helst række- eller kolonneoverskrift, der påvirker filtre på dataene, eller når du manuelt opdatere pivottabellen.

Udføre fejlfinding i formler

Fejl, når der skrives formler

Hvis du får en fejl, når der angives en formel, indeholder formlen muligvis enten en syntaktisk fejl, semantisk fejl eller en beregningsfejl.

Syntaktiske fejl er de nemmeste at løse. De skyldes normalt, at der mangler en parentes eller et komma. Du kan få hjælp til syntaksen i de enkelte funktioner under Funktionsreferencen DAX.

Den anden type fejl opstår, når syntaksen er korrekt, men den værdi eller den kolonne, der refereres til, ikke giver mening i formlens kontekst. Sådanne semantiske fejl og beregningsfejl kan skyldes et af følgende problemer:

  • Formlen refererer til en kolonne, tabel eller funktion, der ikke findes.

  • Formlen ser ud til at være korrekt, men når dataprogrammet henter dataene, finder det en typeuoverensstemmelse og viser en fejlmeddelelse.

  • Formlen sender et forkert antal eller en forkert type parametre til en funktion.

  • Formlen refererer til en anden kolonne, der indeholder en fejl, og derfor er værdierne ugyldige.

  • Formlen refererer til en kolonne, som ikke er blevet behandlet, hvilket betyder, at den indeholder metadata, men ingen faktiske data til brug i beregninger.

I de første fire tilfælde markerer DAX hele den kolonne, der indeholder den ugyldige formel. I det sidste tilfælde vises kolonnen som nedtonet for at angive, at den ikke er behandlet.

Forkerte eller usædvanlige resultater ved rangering eller ordning af kolonneværdier

Når du rangerer eller ordner en kolonne, som indeholder værdien NaN (Not a Number – ikke et tal), kan du få forkerte eller uventede resultater. Når f.eks. en beregning dividerer 0 med 0, returneres der et NaN-resultat.

Dette skyldes, at formelprogrammet udfører ordning og rangering ved at sammenligne nummerværdierne, men NaN kan ikke sammenlignes med tallene i kolonnen.

Hvis du vil sikre dig korrekte resultater, kan du bruge betingede udtryk vha. funktionen HVIS for at afprøve for NaN-værdier og returnere den numeriske værdi 0.

Kompatibilitet med tabelmodeller og DirectQuery-tilstand i Analysis Services

Generelt er de DAX-formler, som du opretter i Power Pivot, fuldstændig kompatible med tabelmodeller i Analysis Services. Men hvis du overfører en Power Pivot-model til en Analysis Services-forekomst og derefter udruller modellen i DirectQuery-tilstand, er der nogle begrænsninger.

  • Nogle DAX-formler kan returnere andre resultater, hvis du udruller modellen i DirectQuery-tilstand.

  • Nogle formler kan medføre valideringsfejl, når du udruller modellen i DirectQuery-tilstand, fordi formlen indeholder en DAX-funktion, der ikke understøttes imod en relationel datakilde.

Du finder flere oplysninger i dokumentationen til tabelmodellering i Analysis Services i SQL Server 2012 BooksOnline.

Bemærk: Ansvarsfraskrivelse for maskinoversættelse: Denne artikel er blevet oversat af et computersystem uden menneskelig indgriben. Microsoft tilbyder disse maskinoversættelse for at hjælpe ikke-engelsktalende brugere til at kunne nyde indhold om Microsofts produkter, tjenester og teknologier. Da artiklen er maskinoversat, kan den indeholde forkerte ord eller syntaks- eller grammatikfejl.

Del Facebook Facebook Twitter Twitter Mail Mail

Var disse oplysninger nyttige?

Fantastisk! Har du mere feedback?

Hvordan kan vi forbedre det?

Tak for din feedback!

×