DAX (Data Analysis Expressions) i Power Pivot

DAX (Data Analysis Expressions) i Power Pivot

Viktigt!: Den här artikeln är maskinöversatt, se ansvarsfriskrivningen. Den engelska versionen av den här artikeln finns här för din referens.

Data Analysis Expressions (DAX) låter lite generande först, men låta inte namnet lura dig. Grunderna i DAX är egentligen är lätta att förstå. Första saker först - DAX inte är ett programmeringsspråk. DAX är en formel språk. Du kan använda DAX för att definiera anpassade beräkningar för Beräknade kolumner och mått (kallas även beräknade fält). DAX innehåller några funktioner som används i Excel-formler och ytterligare funktioner för att arbeta med relaterade data och utföra dynamisk aggregering.

Så här fungerar DAX-formler

DAX-formler påminner mycket om Excel-formler. Du skriver ett likhetstecken följt av ett funktionsnamn eller uttryck och de värden eller argument som behövs. På samma sätt som Excel innehåller DAX en mängd funktioner som du använder när du vill arbeta med strängar, utföra beräkningar med datum och tider eller skapa villkorsvärden.

DAX-formler skiljer sig emellertid på följande sätt:

  • Om du vill anpassa beräkningarna för specifika rader innehåller DAX funktioner som gör att du kan använda den aktuella radens värde eller ett relaterat värde för att utföra beräkningar som varierar beroende på kontext.

  • I DAX finns en typ av funktion som returnerar en tabell, i stället för ett enskilt värde, som resultat. Dessa funktioner kan användas för att förse andra funktioner med indata.

  • Tidsinformationsfunktioneri DAX möjliggör beräkningar baserade på datumintervall och jämförelser av resultaten för parallella perioder.

Var används DAX-formlerna?

Du kan skapa formler i Power Pivot i beräknade ckolumner eller beräknade fegenskapsfält.

Beräknade kolumner

En beräknad kolumn är en kolumn som du lägger till i en befintlig Power Pivot-tabell. I stället för att klistra in eller importera värden i kolumnen skapar du en DAX-formel som definierar kolumnvärdena. Om du tar med Power Pivot-tabellen i en pivottabell (eller ett pivotdiagram) kan den beräknade kolumnen användas på samma sätt som andra datakolumner.

Formlerna i beräknade kolumner påminner mycket om de formler du skapar i Excel. Till skillnad från i Excel kan du emellertid inte skapa olika formler för olika rader i en tabell. I stället används DAX-formeln automatiskt för hela kolumnen.

När en kolumn innehåller en formel beräknas värdet för varje rad. Resultaten beräknas för kolumnen så snart du har skapat formeln. Kolumnvärden beräknas endast om när bakomliggande data uppdateras eller om manuell omberäkning används.

Du kan skapa beräknade kolumner som baseras på åtgärder och andra beräknade kolumner. Dock undvika att använda samma namn för en beräknad kolumn och ett mått enligt detta kan leda till förvirrande resultat. När du refererar till en kolumn, är det bäst att använda en fullständigt kvalificerade kolumnreferens för att undvika av misstag anropa ett mått.

Mer detaljerad information finns i Beräknade kolumner i Power Pivot.

Åtgärder

Ett mått är en formel som skapas som ska användas i en pivottabell eller ett pivotdiagram) som använder Power Pivot data. Åtgärder kan baseras på standardmängdfunktioner, till exempel antal eller summa, eller definiera en egen formel med hjälp av DAX. Ett mått används i området värden i en pivottabell. Om du vill placera beräknade resultat i en annan del av en pivottabell kan du använda en beräknad kolumn i stället.

När du definierar en formel för en explicit åtgärd händer ingenting tills du har lagt till mått i en pivottabell. När du lägger till måttet utvärderas formeln för varje cell i området värden i pivottabellen. Eftersom ett resultat skapas för varje kombination av rad- och kolumnrubrikerna kan resultatet för åtgärden skilja sig i varje cell.

Definition av den åtgärd som du skapar sparas till dess källtabell data. Det visas i listan PivotTable Fields och är tillgänglig för alla användare av arbetsboken.

Mer detaljerad information finns i mått i Power Pivot.

Skapa formler med hjälp av formelfältet

Precis som Excel innehåller Power Pivot ett formelfält som gör det lättare att skapa och redigera formler, samt en funktion för automatisk komplettering av formler som minimerar risken för skriv- och syntaxfel.

Ange namnet på en tabell   Skriv de första bokstäverna i namnet på tabellen. Funktionen för automatisk komplettering av formler visar en listruta med giltiga namn som börjar med de bokstäver du skrivit.

Ange namnet på en kolumn   Skriv en parentes och välj sedan kolumnen i listan med kolumner i den aktuella tabellen. Om du vill använda en kolumn från en annan tabell skriver du de första bokstäverna i tabellnamnet och väljer sedan kolumnen i listrutan.

Mer information och en genomgång av hur du skapar formler finns i Skapa formler för beräkningar i Power Pivot.

Tips för automatisk komplettering av formler

Du kan använda automatisk komplettering av formler i mitten av en befintlig formel med kapslade funktioner. Texten omedelbart före insättningspunkten används för att visa värden i listrutan, och all text efter insättningspunkten förblir oförändrad.

De definierade namn som du skapar för konstanter visas inte i listrutan med automatiskt kompletterade formler, men du kan ändå skriva dem.

I Power Pivot infogas inte avslutande parenteser automatiskt för funktioner, och parenteser matchas inte automatiskt. Du måste kontrollera att varje funktion har rätt syntax, annars kan du inte spara eller använda formeln. 

Använda flera funktioner i en formel

Du kan kapsla funktioner, vilket innebär att du använder resultatet från en funktion som argument till en annan funktion. Du kan kapsla upp till 64 nivåer med funktioner i beräknade kolumner. Kapsling kan emellertid göra det svårt att skapa eller felsöka formler.

Många DAX-funktioner kan bara användas som kapslade funktioner. Dessa funktioner returnerar en tabell, som inte kan sparas direkt som ett resultat , utan som måste användas som indata för en tabellfunktion. Funktionerna SUMX, AVERAGEX och MINX kräver till exempel en tabell som första argument.

Obs!: Vissa begränsningar på grund av funktioner finns i åtgärder som säkerställer att prestanda inte påverkas av de många beräkningarna som krävs av beroendena mellan kolumnerna.

Jämföra DAX-funktioner och Excel-funktioner

DAX-funktionsbiblioteket baseras på Excel-funktionsbiblioteket, men det finns många skillnader. I det här avsnittet sammanfattas skillnaderna och likheterna mellan Excel-funktioner och DAX-funktioner.

  • Många DAX-funktioner har samma namn och samma allmänna beteende som Excel-funktionerna, men har ändrats så att de kan använda andra typer av indata och i vissa fall returnera en annan datatyp. Normalt sett kan du inte använda DAX-funktioner i en Excel-formel eller använda Excel-formler i Power Pivot utan viss redigering.

  • DAX-funktioner använder aldrig cellreferenser eller ett område som referens, utan använder i stället en kolumn eller tabell som referens.

  • DAX-funktioner för datum och tid returnerar datatypen datetime. Datum- och tidsfunktionerna i Excel returnerar däremot ett heltal som representerar ett datum som ett serienummer.

  • Många av de nya DAX-funktionerna returnerar en tabell med värden eller utför beräkningar baserat på en tabell med värden som indata. Excel har däremot inga funktioner som returnerar en tabell, även om vissa funktioner kan fungera med matriser. Möjligheten att på ett enkelt sätt referera till fullständiga tabeller och kolumner är en ny funktion i Power Pivot.

  • DAX innehåller nya uppslagsfunktioner, som påminner om matris- och vektoruppslagsfunktionerna i Excel. DAX-funktionerna kräver emellertid att en relation har skapats mellan tabellerna.

  • Alla data i en kolumn förväntas alltid tillhöra samma datatyp. Om data inte hör till samma typ ändrar DAX hela kolumnen till den datatyp som bäst passar alla värdena.

DAX-datatyper

Du kan importera data till en Power Pivot-datamodell från många olika datakällor som stöder olika datatyper. När du importerar eller läser in data, och sedan använder data i beräkningar eller i pivottabeller, konverteras data till någon av Power Pivot-datatyperna. En lista med datatyperna finns i Datatyper i datamodeller.

Datatypen tabell är en ny datatyp i DAX som används som indata eller utdata för många nya funktioner. Funktionen FILTER använder till exempel en tabell som indata och returnerar en tabell som bara innehåller raderna som uppfyller filtervillkoren. Genom att kombinera tabellfunktioner med mängdfunktioner kan du utföra komplexa beräkningar med dynamiskt definierade datamängder. Mer information finns i Aggregeringar i Power Pivot.

Formler och relationsmodellen

Fönstret Power Pivot är ett område där du kan arbeta med flera tabeller med data och ansluter tabellerna i en relationsmodellen. I den här datamodell anslutna tabeller till varandra med relationer, som gör att du kan skapa samband med kolumner i andra tabeller och skapa mer intressant beräkningar. Du kan till exempel skapa formler för att summera värden för en relaterad tabell och sedan sparar det värdet i en cell. Eller för att styra rader från den relaterade tabellen, kan du använda filter i tabeller och kolumner. Mer information finns i relationer mellan tabeller i en datamodell.

Eftersom du kan länka tabeller med hjälp av relationer kan pivottabellerna innehålla data från flera kolumner som kommer från olika tabeller.

Eftersom formler kan fungera med hela tabeller och kolumner kan du emellertid inte skapa beräkningarna på samma sätt som i Excel.

  • Vanligtvis tillämpas en DAX-formel i en kolumn alltid på hela uppsättningen värden i kolumnen (aldrig bara på några rader eller celler).

  • Tabeller i Power Pivot måste alltid ha samma antal kolumner på varje rad, och alla rader i en kolumn måste innehålla samma datatyp.

  • När tabeller är kopplade till varandra med en relation förväntas du kontrollera att de två kolumnerna som används som nycklar har värden som matchar i stora drag. Eftersom Power Pivot inte framtvingar referensintegritet kan du skapa en relation även om det finns icke-matchande värden i en nyckelkolumn. Tomma värden eller icke matchande värden kan emellertid påverka resultatet från formler och pivottabellernas utseende. Mer information finns i Uppslag i Power Pivot-formler.

  • När du länkar tabeller med hjälp av relationer förstora omfattning eller context som formler utvärderas. Formler i en pivottabell kan till exempel påverkas av eventuella filter eller kolumn- och radrubriker i pivottabellen. Du kan skriva formler som ändrar kontexten men kontext kan också göra dina resultat så här ändrar du på ett sätt som inte kanske kommer att ske. Mer information finns i kontext i DAX-formler.

Uppdatera resultatet från formler

Data r Uppdatera formdata och omräkning finns två separata men relaterade åtgärder som du bör känna till när du utformar en datamodell som innehåller komplexa formler, stora mängder data eller data som hämtas från externa datakällor.

Uppdatera data syftar på att uppdatera data i arbetsboken med nya data från en extern datakälla. Du kan uppdatera data manuellt enligt de intervall du anger. Om du har publicerat arbetsboken på en SharePoint-webbplats kan du också schemalägga en automatisk uppdatering från externa källor.

Omberäkning syftar på att uppdatera resultatet från formler så att eventuella ändringar i själva formlerna och ändringarna i underliggande data återspeglas. Omberäkningar kan påverka prestanda på följande sätt:

  • För en beräknad kolumn måste resultatet från formeln alltid beräknas om för hela kolumnen om du ändrar formeln.

  • Resultatet av en formel beräknas inte för ett mått tills måttet placeras i kontexten för pivottabell eller pivotdiagram. Formeln beräknas även när du ändrar rad- eller kolumnrubriken som påverkar filter på fliken data, eller om du manuellt uppdatera pivottabellen.

Felsökning av formler

Fel när formler skrivs

Om det uppstår ett fel när du skriver in en formel kan den innehålla ett syntaxfel, semantiskt fel eller beräkningsfel.

Syntaxfel är enklast att åtgärda. De handlar vanligtvis en parentes eller ett kommatecken som saknas. Det finns hjälpinformation om de enskilda funktionernas syntax i DAX-funktionsreferensen.

Vid de andra typerna av fel är syntaxen korrekt, men det refererade värdet eller kolumnen fungerar inte i formeln. Sådana semantiska fel eller beräkningsfel kan orsakas av något av följande:

  • Formeln refererar till en kolumn, tabell eller funktion som inte finns.

  • Formeln verkar vara riktig, men när data hämtas med datamotorn identifieras en icke matchande datatyp och ett fel registreras.

  • I formeln används ett felaktigt värde eller fel datatyp som parameter till en funktion.

  • Formeln refererar till en annan kolumn som innehåller ett fel och därför blir dess värden ogiltiga.

  • Formeln refererar till en kolumn som inte har bearbetats, vilket innebär att den innehåller metadata men inga faktiska data som kan användas i beräkningar.

I de första fyra fallen flaggas hela kolumnen som innehåller den ogiltiga formeln i DAX. I det sista fallet är kolumnen nedtonad i DAX för att visa att den inte har bearbetats.

Felaktigt eller avvikande resultat vid rankning eller sortering av kolumnvärden

Du kan få ett felaktigt eller avvikande resultat om du rankar eller sorterar en kolumn som innehåller värdet NaN (Not a Number).Till exempel returneras NaN som resultat om 0 divideras med 0 i en beräkning.

Det beror på att rankning och sortering utförs genom jämförelse av numeriska värden i formelmotorn. NaN kan dock inte jämföras med andra tal i kolumnen.

Du kan säkerställa ett korrekt resultat genom att använda villkorssatser med OM-funktion för att identifiera eventuella NaN-värden och returnera ett numeriskt 0-värde.

Kompatibilitet med Analysis Services-tabellmodeller och DirectQuery-läge

DAX-formlerna som du skapar i Power Pivot är i allmänhet helt kompatibla med Analysis Services-tabellmodellerna. Men om du migrerar en Power Pivot-modell till en Analysis Services-instans och sedan distribuerar modellen i DirectQuery-läge finns det en del begränsningar.

  • En del DAX-formler kan returnera andra resultat om du distribuerar modellen i DirectQuery-läge.

  • En del formler kan orsaka verifieringsfel när du distribuerar modellen till DirectQuery-läge, eftersom formeln innehåller en DAX-funktion som inte kan användas av en relationsdatakälla.

Mer information finns i dokumentationen om tabellmodellering i Analysis Services i SQL Server 2012 Books Online.

Obs!: Ansvarsfriskrivning för maskinöversättning: Den här artikeln har översatts av ett datorsystem utan mänsklig inblandning. Microsoft erbjuder dessa maskinöversättningar för att hjälpa icke engelskspråkiga användare att ta del av information om Microsofts produkter, tjänster och tekniker. Eftersom artikeln är maskinöversatt kan den innehålla fel i ordval, syntax och grammatik.

Utöka dina kunskaper
Utforska utbildning
Få nya funktioner först
Anslut till Office Insiders

Hade du nytta av den här informationen?

Tack för din feedback!

Tack för din feedback! Det låter som att det kan vara bra att koppla dig till en av våra Office-supportrepresentanter.

×