Logga in med Microsoft
Logga in eller skapa ett konto.
Hej,
Välj ett annat konto.
Du har flera konton
Välj det konto som du vill logga in med.
DAX (Data Analysis Expressions) i Power Pivot

DAX (Data Analysis Expressions) låter först lite irriterande, men låt inte namnet lura dig. Grunderna i DAX är mycket lätta att förstå. En bra början – DAX är INTE ett programmeringsspråk. DAX är ett formelspråk. Du kan använda DAX för att definiera anpassade beräkningar för beräknade kolumner och för mått (kallas även beräknade fält). DAX innehåller några av funktionerna som används i Excel-formler och ytterligare funktioner som är utformade för att fungera med relationsdata och utföra dynamisk aggregering.

Förstå DAX-formler

DAX-formler påminner mycket om Excel formler. Om du vill skapa ett likhetstecken skriver du ett likhetstecken följt av ett funktionsnamn eller uttryck och alla värden eller argument som krävs. Precis som Excel innehåller DAX en mängd olika funktioner som du kan använda för att arbeta med strängar, utföra beräkningar med datum och tider eller skapa villkorsstyrda värden.

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

  • Om du vill anpassa beräkningar rad för rad innehåller DAX funktioner som gör att du kan använda det aktuella radvärdet eller ett relaterat värde för att utföra beräkningar som varierar efter kontext.

  • DAX innehåller en typ av funktion som returnerar en tabell som resultat, i stället för ett enda värde. De här funktionerna kan användas för att ge indata till andra funktioner.

  • Tidsinformationsfunktioner i DAX tillåt beräkningar med datumintervall och jämför resultaten över parallella perioder.

Var DAX-formler ska användas

Du kan skapa formler i Power Pivotantingeni beräknade kolumnereller i beräknadeförsläsningar.

Beräknade kolumner

En beräknad kolumn är en kolumn som du lägger till i en Power Pivot befintlig 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 Power Pivot en pivottabell (eller en pivotdiagram) kan den beräknade kolumnen användas som vilken annan datakolumn som helst.

Formlerna i beräknade kolumner liknar de formler som du skapar i Excel. Till skillnad från Excel kan du däremot inte skapa en annan formel för olika rader i en tabell. I stället tillämpas DAX-formeln automatiskt på 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å fort du skapar formeln. Kolumnvärden beräknas bara om underliggande data uppdateras eller om manuella omberäkningar används.

Du kan skapa beräknade kolumner som baseras på mått och andra beräknade kolumner. Undvik dock att använda samma namn för en beräknad kolumn och ett mått, eftersom det kan leda till förvirrande resultat. När du refererar till en kolumn är det bäst att använda en fullt kvalificerad kolumnreferens, för att undvika att av misstag skapa ett mått.

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

Åtgärder

Ett mått är en formel som skapas specifikt för användning i en pivottabell (eller pivotdiagram) som använder Power Pivot data. Mått kan baseras på standardaggregeringsfunktioner som ANTAL eller SUMMA, eller så kan du 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 ett annat område i en pivottabell använder du en beräknad kolumn i stället.

När du definierar en formel för ett explicit mått händer inget förrän du lägger till måttet 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 kolumnrubriker kan resultatet för måttet vara olika i varje cell.

Definitionen av det mått du skapar sparas med dess källdatatabell. Den visas i listan Pivottabellfält och är tillgänglig för alla användare av arbetsboken.

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

Skapa formler med hjälp av formelfältet

Power Pivot, till exempel Excel, ett formelfält som gör det enklare att skapa och redigera formler och funktioner för Komplettera automatiskt, så att du inte behöver skriva eller använda syntaxfel.

Så här anger du namnet på en tabell   Börja skriva namnet på tabellen. Komplettera automatiskt för formel innehåller en listrutan med giltiga namn som börjar på de bokstäverna.

Så här anger du namnet på en kolumn   Skriv en hakparentes och välj sedan kolumnen i listan med kolumner i den aktuella tabellen. Börja skriva de första bokstäverna i tabellnamnet för en kolumn från en annan tabell och välj sedan kolumnen i listrutan Komplettera automatiskt.

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 Att använda Komplettera automatiskt

Du kan använda Komplettera automatiskt för formel mitt i en befintlig formel med kapslade funktioner. Texten direkt före insättningspunkten används för att visa värden i listrutan och all text efter insättningspunkten ändras inte.

Definierade namn som du skapar för konstanter visas inte i listrutan Komplettera automatiskt, men du kan fortfarande skriva dem.

Power Pivot lägger inte till avslutande parenteser för funktioner eller matchar automatiskt parenteser. Kontrollera att varje funktion är syntaktisk korrekt eller att du inte kan 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 ett argument i en annan funktion. Du kan kapsla upp till 64 funktionsnivåer i beräknade kolumner. Kapsling kan emellertid göra det svårt att skapa eller felsöka formler.

Många DAX-funktioner är utformade för att endast användas som kapslade funktioner. De här funktionerna returnerar en tabell som inte kan sparas direkt. Den bör tillhandahållas som indata till en tabellfunktion. Alla funktionerna SUMX, AVERAGEX och MINX kräver till exempel en tabell som det första argumentet.

Obs!: Det finns vissa begränsningar för kapsling av funktioner i mått, för att säkerställa att prestanda inte påverkas av de många beräkningar som krävs av beroenden mellan kolumner.

Jämförelse av DAX-funktioner Excel DAX-funktioner

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

  • Många DAX-funktioner har samma namn och samma allmänna beteende som Excel-funktioner men har ändrats för att använda olika typer av indata och kan i vissa fall returnera en annan datatyp. I allmänhet går det inte att använda DAX-funktioner i Excel-formler eller använda Excel i Power Pivot utan att göra några ändringar.

  • I DAX-funktioner används aldrig en cellreferens eller ett område som referens, men i stället används en kolumn eller tabell som referens i DAX-funktioner.

  • Datum- och tidsfunktioner i DAX returnerar datatypen datetime. Datum- Excel tidsfunktionerna returnerar däremot ett heltal som motsvarar ett datum som ett serienummer.

  • Många av de nya DAX-funktionerna returnerar antingen en tabell med värden eller gör beräkningar baserade på en tabell med värden som indata. Funktionen Excel inga funktioner som returnerar en tabell, men vissa funktioner kan fungera med matriser. Möjligheten att enkelt referera till fullständiga tabeller och kolumner är en ny funktion i Power Pivot.

  • DAX innehåller nya sökfunktioner som liknar matris- och vektoruppslagsfunktionerna i Excel. Dax-funktionerna kräver emellertid att en relation upprättas mellan tabellerna.

  • Data i en kolumn förväntas alltid vara av samma datatyp. Om data inte är av samma typ ändras hela kolumnen till den datatyp som bäst passar alla värden.

DAX-datatyper

Du kan importera data till en Power Pivot datamodell från många olika datakällor som kan ha stöd för 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 de Power Pivot datatyperna. En lista över datatyper finns i Datatyper i datamodeller.

Tabelldatatypen är en ny datatyp i DAX som används som in- eller utdata till många nya funktioner. Funktionen FILTER använder till exempel en tabell som indata och matar ut en annan tabell som bara innehåller de rader som uppfyller filtervillkoren. Genom att kombinera tabellfunktioner med aggregeringsfunktioner kan du utföra komplexa beräkningar över dynamiskt definierade datauppsättningar. Mer information finns i Aggregeringar i Power Pivot.

Formler och relationsmodell

Fönstret Power Pivot är ett område där du kan arbeta med flera tabeller med data och koppla ihop tabellerna i en relationsmodell. I den här datamodellen är tabeller kopplade till varandra genom relationer, så att du kan skapa korrelationer med kolumner i andra tabeller och skapa mer intressanta beräkningar. Du kan till exempel skapa formler som summerar värden för en relaterad tabell och sedan sparar värdet i en enskild cell. Om du vill styra raderna från den relaterade tabellen kan du använda filter på tabeller och kolumner. Mer information finns i Relationer mellan tabeller i en datamodell.

Eftersom du kan länka tabeller genom att använda relationer kan pivottabellerna även innehålla data från flera kolumner som kommer från olika tabeller.

Men eftersom formler kan fungera med hela tabeller och kolumner måste du utforma beräkningar på ett annat sätt än vad du gör i Excel.

  • I allmänhet tillämpas en DAX-formel i en kolumn alltid på hela uppsättningen värden i kolumnen (aldrig på bara 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 kopplas samman av en relation förväntas du kontrollera att de två kolumner som används som nycklar har värden som matchar, oftast. Eftersom Power Pivot referensintegritet är det möjligt att ha icke-matchande värden i en nyckelkolumn och fortfarande skapa en relation. Emellertid kan förekomsten av tomma eller icke-matchande värden påverka resultatet av formler och utseendet på pivottabeller. Mer information finns i Uppslag i PowerPivot-formler.

  • När du länkar tabeller med hjälp av relationer förstorar du omfattningen eller context där formlerna utvärderas. Till exempel kan formler i en pivottabell påverkas av eventuella filter eller kolumn- och radrubriker i pivottabellen. Du kan skriva formler som ändrar sammanhang, men sammanhang kan också ge upphov till att resultaten ändras på sätt som du kanske inte kommer att förutse. Mer information finns i Kontext i DAX-formler.

Uppdatera formelresultat

Data r efresh och omräkning är två separata men relaterade åtgärder som du bör förstå när du skapar en datamodell som innehåller komplexa formler, stora mängder data eller data som hämtas från externa datakällor.

När du uppdaterar data uppdaterar du data i arbetsboken med nya data från en extern datakälla. Du kan uppdatera data manuellt vid de intervall som du anger. Om du har publicerat arbetsboken på en annan SharePoint kan du schemalägga en automatisk uppdatering från externa källor.

Beräkning innebär att uppdatera formelresultatet för att återspegla eventuella ändringar i själva formlerna och återspegla ändringarna i underliggande data. Omberäkningar kan påverka prestanda på följande sätt:

  • För en beräknad kolumn ska resultatet av formeln alltid beräknas om för hela kolumnen, när du ändrar formeln.

  • För ett mått beräknas inte resultatet av en formel förrän måttet placeras i kontexten för pivottabellen eller pivotdiagram. Formeln beräknas också om när du ändrar en rad- eller kolumnrubrik som påverkar filter på data eller när du uppdaterar pivottabellen manuellt.

Felsökning av formler

Fel när du skriver formler

Om du får ett felmeddelande när du definierar en formel kan formeln innehålla antingen ett syntaksktfel, semantikfeleller beräkningsfel.

Syntaktiska fel är det enklaste sättet att lösa. De omfattar vanligtvis en saknad parentes eller kommatecken. Mer information om syntaxen för enskilda funktioner finns i Funktionsreferens för DAX.

Den andra typen av fel inträffar när syntaxen är korrekt, men värdet eller kolumnen som refereras till är inte meningsfullt i kontexten för formeln. Sådan semantik och beräkningsfel kan orsakas av något av följande problem:

  • Formeln refererar till en icke-befintlig kolumn, tabell eller funktion.

  • Formeln verkar vara rätt, men när datamotorn hämtar data hittas typfel, och ett fel uppstår.

  • Formeln skickar ett felaktigt antal eller typ av parametrar till en funktion.

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

  • Formeln refererar till en kolumn som inte har bearbetats, vilket innebär att den har metadata men inga faktiska data att använda för beräkningar.

I de första fyra fallen flaggar DAX hela kolumnen som innehåller den ogiltiga formeln. I det sista fallet tar DAX ned kolumnen för att ange att kolumnen är i statusen ej bearbetad.

Felaktiga eller ovanliga resultat när kolumnvärden rangordnas eller ordnas

När du rangordnar eller ordnar en kolumn som innehåller värdet NaN (inte ett tal) kan du få felaktiga eller oväntade resultat. Om en beräkning till exempel dividerar 0 med 0 returneras ett NaN-resultat.

Det beror på att formelmotorn utför ordnings- och rankning genom att jämföra numeriska värden. Men NaN kan inte jämföras med andra tal i kolumnen.

För att säkerställa rätt resultat kan du använda villkorssatser med funktionen OM för att testa efter NaN-värden och returnera ett numeriskt 0-värde.

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

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

  • Vissa DAX-formler kan ge olika resultat om du distribuerar modellen i DirectQuery-läge.

  • Vissa formler kan orsaka verifieringsfel när du distribuerar modellen till DirectQuery-läge, eftersom formeln innehåller en DAX-funktion som inte stöds mot en relationsdatakälla.

Mer information finns i dokumentationen för tabellmodellering i Analysis Services i SQL Server 2012 BooksOnline.

Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.

Communities hjälper dig att ställa och svara på frågor, ge feedback och få råd från experter med rika kunskaper.

Hade du nytta av den här informationen?

Hur nöjd är du med språkkvaliteten?
Vad påverkade din upplevelse?
Genom att trycka på skicka, kommer din feedback att användas för att förbättra Microsofts produkter och tjänster. IT-administratören kan samla in denna data. Sekretesspolicy.

Tack för din feedback!

×