DAX (Data Analysis Expressions) i Power Pivot

DAX (Data Analysis Expressions) i Power Pivot

Data analys uttryck (DAX) låter lite upplever komplicerat först, men låter inte namnet lura dig. Det är enkelt att förstå DAX-grunderna. Först-DAX är inte ett programmeringsspråk. DAX är ett formel språ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 inkluderar vissa funktioner som används i Excel-formler och ytterligare funktioner avsedda att fungera med relations data och utföra dynamisk agg regering.

Förstå DAX-formler

DAX-formler liknar Excel-formler. Om du vill skapa en skriver du ett likhets tecken följt av ett funktions namn eller ett uttryck, samt eventuella värden eller argument som krävs. 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 är emellertid olika på följande sätt:

  • Om du vill anpassa beräkningar baserat på rad-för-rader inkluderar 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 beroende på sammanhanget.

  • DAX inkluderar en typ av funktion som returnerar en tabell som resultat, i stället för ett enskilt värde. De här funktionerna kan användas för att ange indata för andra funktioner.

  • Tidsinformations funktioneri DAX tillåter beräkningar med datum intervall och jämför resultaten med olika perioder.

Använda DAX-formler

Du kan skapa formler i Power Pivot antingen i beräknade c-olumns eller i beräknade f-ields.

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 och 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 som en annan data kolumn.

Formlerna i beräknade kolumner liknar de formler som du skapar i Excel. Till skillnad från Excel kan du inte skapa en annan formel 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å fort du skapar formeln. Kolumn värden beräknas bara om underliggande data uppdateras eller om manuell beräkning används.

Du kan skapa beräknade kolumner som baseras på mått och andra beräknade kolumner. Undvik 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 kolumn referens, för att undvika att oavsiktligt anropar en åtgärd.

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

Åtgärder

Ett mått är en formel som är särskilt skapad för användning i en pivottabell (eller ett pivotdiagram) som använder Power Pivot data. Mått kan baseras på vanliga mängd funktioner, till exempel antal eller summa, eller så kan du definiera en egen formel genom att använda 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 kan du använda en beräknad kolumn i stället.

När du definierar en formel för ett explicit mått händer ingenting förrän du lägger till måttet i en pivottabell. När du lägger till måttet beräknas formeln för varje cell i området värden i pivottabellen. Eftersom ett resultat skapas för varje kombination av rad-och kolumn rubriker kan måttet vara olika i varje cell.

Definitionen av det mått som du skapar sparas tillsammans med käll data tabellen. Den visas i listan pivottabellfält och är tillgänglig för alla användare av arbets boken.

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

Skapa formler med Formel fältet

Power Pivot, som Excel, ger ett formel fält som gör det lättare att skapa och redigera formler och funktionen Komplettera automatiskt för att minimera Skriv-och syntaxfel.

Ange namnet på en tabell   Börja skriva namnet på tabellen. Med funktionen Komplettera automatiskt för formel får du en listruta som innehåller giltiga namn som börjar med dessa bokstäver.

Ange namnet på en kolumn   Skriv en hak paren tes och välj sedan kolumnen från listan med kolumner i den aktuella tabellen. För en kolumn från en annan tabell börjar du skriva de första bokstäverna i tabell namnet och väljer sedan kolumnen i list rutan komplettera automatiskt.

Mer information och en genom gå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 i mitten av en befintlig formel med kapslade funktioner. Texten omedelbart före insättnings punkten används för att visa värden i den nedrullningsbara listan och all text när insättnings punkten är oförändrad.

Definierade namn som du skapar för konstanter visas inte i list rutan komplettera automatiskt, men du kan ändå skriva dem.

Power Pivot lägger inte till slut paren tes för funktionerna eller matchar automatiskt parenteser. Du bör se till att varje funktion är syntaktiskt korrekt eller inte 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 resultaten från en funktion som argument för en annan funktion. Du kan kapsla upp till 64 funktioner i beräknade kolumner. Däremot kan kapsling vara svårt att skapa eller felsöka formler.

Många DAX-funktioner är avsedda att enbart användas som kapslade funktioner. De här funktionerna returnerar en tabell som inte kan sparas direkt som resultat. den ska tillhandahållas som indata för en tabell funktion. Funktionerna SUMX, AVERAGEX, och Minx, kräver till exempel att en tabell är det första argumentet.

Obs!: Vissa begränsningar för kapslade funktioner finns 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 kolumnerna.

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

DAX-funktionen baseras på funktions biblioteket i Excel, men biblioteken har många skillnader. I det här avsnittet sammanfattas skillnaderna och likheter mellan Excel-funktioner och DAX-funktioner.

  • Många DAX-funktioner har samma namn och samma allmänna beteende som Excel-funktioner men har ändrats för olika typer av indata, och i vissa fall kan en annan datatyp returneras. Vanligt vis kan du inte använda DAX-funktioner i en Excel-formel eller använda Excel-formler i Power Pivot utan någon ändring.

  • DAX-funktioner tar aldrig en cell referens eller ett område som referens, men i stället DAX-funktioner tas en kolumn eller tabell som referens.

  • DAX-datum-och tids funktioner returnerar data typen datetime. Datum-och tids funktioner i Excel returnerar däremot ett heltal som representerar ett datum som ett serie nummer.

  • Många av de nya DAX-funktionerna returnerar antingen en tabell med värden eller beräkningar baserat på en tabell med värden som indata. Excel har däremot inga funktioner som returnerar en tabell, men vissa funktioner kan arbeta med matriser. Det är enkelt att referera till färdiga tabeller och kolumner är en ny funktion i Power Pivot.

  • DAX innehåller nya uppslags funktioner som liknar funktionerna för matris-och vektor uppslag i Excel. DAX-funktionerna kräver emellertid att en relation upprättas mellan tabellerna.

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

DAX-datatyper

Du kan importera data till en Power Pivot data modell från många olika data källor som kan ha stöd för olika typer av data. När du importerar eller läser in data och sedan använder data i beräkningar eller pivottabeller konverteras data till en av de Power Pivot data typerna. En lista med data typer finns i data typer i data modeller.

Tabell data typen är en ny datatyp i DAX som används som indata eller utdata för många nya funktioner. FILTER-funktionen tar till exempel en tabell som indata och matar ut en annan tabell som bara innehåller de rader som uppfyller filter villkoren. Genom att kombinera tabell funktioner med mängd funktioner kan du utföra komplexa beräkningar för dynamiskt definierade data uppsättningar. Mer information finns i agg regeringar i Power Pivot.

Formler och Relations modellen

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

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

Men eftersom formler kan arbeta med hela tabeller och kolumner måste du utforma beräkningar annorlunda än i Excel.

  • I allmänhet tillämpas en DAX-formel i en kolumn alltid på hela uppsättningen med värden i kolumnen (aldrig bara till 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 ansluts med en relation förväntas du kontrol lera att de två kolumnerna som används som nycklar har värden som matchar. Eftersom Power Pivot inte tillämpar referens integritet är det möjligt att använda icke matchande värden i en Key-kolumn och ändå skapa en relation. Förekomsten av tomma eller icke-matchande värden kan påverka resultatet av formler och utseendet på pivottabeller. Mer information finns i uppslag iPowerPivot-formler.

  • När du länkar tabeller med hjälp av relationer förminskar du omfattningen eller context där formlerna utvärderas. Formler i en pivottabell kan till exempel påverkas av eventuella filter eller kolumn-och rad rubriker i pivottabellen. Du kan skriva formler som hanterar kontext, men sammanhang kan även göra att resultaten ändras på ett sätt som du inte kan förutse. Mer information finns i kontext i DAX-formler.

Uppdatera resultatet av formler

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

Om du uppdaterar data i arbets boken uppdateras data från en extern data källa. Du kan uppdatera data manuellt med tidsintervall som du anger. Om du har publicerat arbets boken på en SharePoint-webbplats kan du schemalägga en automatisk uppdatering från externa källor.

Beräkning är en process för att uppdatera resultaten av formler så att de återspeglar ändringar i själva formlerna och för att återspegla ändringarna i underliggande data. Beräkning kan påverka prestanda på följande sätt:

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

  • För ett mått beräknas inte resultatet av en formel tills måttet placeras i pivottabellens eller pivotdiagrammets kontext. Formeln kommer att räknas om när du ändrar rad-eller kolumn rubrik som påverkar filter för data eller när du uppdaterar pivottabellen manuellt.

Felsöka formler

Fel när formler skrivs

Om du får ett fel meddelande när du definierar en formel kan formeln innehålla ett syntaktiskt fel, semantiskt feleller ett beräknings fel.

Syntaktiska fel är det enklaste sättet att lösa. De inkluderar normalt en parentes eller ett kommatecken. Mer information om syntaxen för enskilda funktioner finns i referens för DAX-funktionen.

Den andra typen av fel inträffar när syntaxen är korrekt men värdet eller kolumnen som refereras till stämmer inte med formeln. Sådana semantiska fel och beräknings problem kan orsakas av något av följande:

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

  • Formeln ser ut att vara korrekt, men när data motorn hämtar data för ett typfel och meddelar ett fel.

  • Formeln skickar ett felaktigt nummer eller parameter typ 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 innehåller metadata men inga faktiska data som används för beräkningar.

I de första fyra fallen flaggar DAX hela kolumnen som innehåller den ogiltiga formeln. I det sista fallet gråter DAX bort kolumnen för att visa att kolumnen är i ett obearbetade tillstånd.

Felaktiga eller ovanliga resultat vid rangordning eller sortering av kolumn värden

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

Det beror på att formel motorn utför beställning och rangordning genom att jämföra de numeriska värdena; NaN kan dock inte jämföras med andra nummer i kolumnen.

För att få rätt resultat kan du använda villkors uttryck med funktionen om för att testa NaN-värden och returnera ett numeriskt 0-värde.

Kompatibilitet med tabell modeller och DirectQuery-läge i Analysis Services

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

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

  • Vissa formler kan orsaka validerings fel när modellen distribueras till DirectQuery-läge, eftersom formeln innehåller en DAX-funktion som inte stöds för en Relations data källa.

Mer information finns i dokumentationen för analys tjänsterna i SQL Server 2012 BooksOnline.

Obs!:  Den här sidan har översatts automatiskt och kan innehålla grammatiska fel och andra felaktigheter. Vår avsikt är att innehållet ska vara användbart för dig. Skulle du vilja svara på om informationen var till hjälp? Här är den engelska artikeln som en referens.

Utöka dina Office-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.

×