Det här avsnittet innehåller länkar till exempel som visar hur DAX-formler används i följande scenarier.
-
Utföra komplexa beräkningar
-
Arbeta med text och datum
-
Villkorsvärden och testning för fel
-
Använda tidsinformation
-
Rangordning och jämförelse av värden
I den här artikeln
Kom igång
Besök DAX Resource Center Wiki där du hittar all slags information om DAX, inklusive bloggar, exempel, whitepapers och videor som tillhandahålls av branschledande proffs och Microsoft.
Scenarier: Utföra komplexa beräkningar
DAX-formler kan utföra komplexa beräkningar som omfattar anpassade aggregeringar, filtrering och användning av villkorsstyrda värden. Det här avsnittet innehåller exempel på hur du kommer igång med anpassade beräkningar.
Skapa anpassade beräkningar för en pivottabell
CALCULATE och CALCULATETABLE är kraftfulla, flexibla funktioner som är användbara för att definiera beräknade fält. Med de här funktionerna kan du ändra i vilket sammanhang beräkningen ska utföras. Du kan också anpassa vilken typ av aggregering eller matematisk åtgärd som ska utföras. Se följande avsnitt för exempel.
Använda ett filter för en formel
På de flesta platser där en DAX-funktion använder en tabell som ett argument kan du vanligtvis passera i en filtrerad tabell i stället, antingen genom att använda funktionen FILTER i stället för tabellnamnet eller genom att ange ett filteruttryck som ett av funktionsargumenten. Följande avsnitt innehåller exempel på hur du skapar filter och hur filter påverkar resultatet av formler. Mer information finns i Filtrera data i DAX-formler.
Med funktionen FILTER kan du ange filtervillkor med hjälp av ett uttryck, medan de andra funktionerna är särskilt utformade för att filtrera bort tomma värden.
Ta bort filter selektivt för att skapa ett dynamiskt förhållande
Genom att skapa dynamiska filter i formler kan du enkelt svara på frågor som följande:
-
Vilket bidrag bidrog den aktuella produktens försäljning till årets totala försäljning?
-
Hur mycket har denna division bidragit till totalvinsten för alla verksamhetsår, jämfört med andra divisioner?
Formler som du använder i en pivottabell kan påverkas av pivottabellkontexten, men du kan selektivt ändra kontexten genom att lägga till eller ta bort filter. I exemplet i avsnittet ALL visas hur du gör detta. Om du vill ta reda på försäljningsförhållandet för en viss återförsäljare jämfört med försäljningen för alla återförsäljare skapar du ett mått som beräknar värdet för den aktuella kontexten dividerat med värdet för ALL-sammanhanget.
I avsnittet ALLEXCEPT finns ett exempel på hur du selektivt tar bort filter för en formel. I båda exemplen beskrivs hur resultaten ändras beroende på pivottabellens design.
Andra exempel på hur du beräknar proportioner och procentsatser finns i följande avsnitt:
Använda ett värde från en yttre slinga
Förutom att använda värden från det aktuella sammanhanget i beräkningar kan DAX använda ett värde från en tidigare loop för att skapa en uppsättning relaterade beräkningar. I följande avsnitt beskrivs hur du skapar en formel som refererar till ett värde från en yttre slinga. Funktionen TIDIGARE har stöd för upp till två nivåer av kapslade loopar.
Mer information om radkontext och relaterade tabeller och hur du använder det här konceptet i formler finns i Sammanhang i DAX-formler.
Scenarier: Arbeta med text och datum
Det här avsnittet innehåller länkar till DAX-referensavsnitt som innehåller exempel på vanliga scenarier som innefattar att arbeta med text, extrahera och skriva datum- och tidsvärden eller skapa värden baserat på ett villkor.
Skapa en nyckelkolumn genom sammanfogning
Power Pivot tillåter inte sammansatta nycklar. Om du har sammansatta nycklar i datakällan kan du därför behöva kombinera dem till en enda nyckelkolumn. Följande avsnitt innehåller ett exempel på hur du skapar en beräknad kolumn baserat på en sammansatt nyckel.
Skapa ett datum baserat på datumdelar som extraherats från ett textdatum
Power Pivot använder en datum-/tidsdatatyp för SQL Server för att arbeta med datum. Om dina externa data innehåller datum som är formaterade på ett annat sätt , till exempel om datumen är skrivna i ett regionalt datumformat som inte känns igen av Power Pivot datamotor, eller om dina data använder heltals surrogatnycklar , kan du behöva använda en DAX-formel för att extrahera datumdelarna och sedan skriva delarna till en giltig datum-/tidsrepresentation.
Om du till exempel har en kolumn med datum som har representerats som ett heltal och sedan importerats som en textsträng kan du konvertera strängen till ett datum-/tidsvärde med hjälp av följande formel:
=DATUM(HÖGER([Värde1],4);VÄNSTER([Värde1],2);EXTEXT([Värde1],2))
Värde1 |
Resultat |
---|---|
01032009 |
1/3/2009 |
12132008 |
12/13/2008 |
06252007 |
6/25/2007 |
Följande avsnitt innehåller mer information om de funktioner som används för att extrahera och skriva datum.
Definiera ett anpassat datum- eller talformat
Om dina data innehåller datum eller tal som inte representeras i något av Windows standardtextformat kan du definiera ett anpassat format för att säkerställa att värdena hanteras korrekt. De här formaten används när du konverterar värden till strängar eller från strängar. Följande avsnitt innehåller också en detaljerad lista över de fördefinierade format som är tillgängliga för arbete med datum och tal.
Ändra datatyper med hjälp av en formel
I Power Pivot bestäms datatypen för utdata av källkolumnerna och du kan inte uttryckligen ange resultatets datatyp, eftersom den optimala datatypen bestäms av Power Pivot. Du kan dock använda implicita datatypskonverteringar som utförs av Power Pivot för att ändra utdatatypen.
-
Om du vill konvertera ett datum eller en talsträng till ett tal multiplicerar du med 1,0. Följande formel beräknar till exempel dagens datum minus 3 dagar och matar sedan ut motsvarande heltalsvärde.
=(IDAG()-3)*1,0
-
Om du vill konvertera ett datum-, tal- eller valutavärde till en sträng sammanfogar du värdet med en tom sträng. Följande formel returnerar till exempel dagens datum som en sträng.
=""& IDAG()
Följande funktioner kan också användas för att säkerställa att en viss datatyp returneras:
Konvertera reella tal till heltal
-
Konvertera realtal, heltal eller datum till strängar
-
Konvertera strängar till reella tal eller datum
Scenario: Villkorsvärden och testning för fel
Precis som Excel har DAX funktioner som gör att du kan testa värden i data och returnera ett annat värde baserat på ett villkor. Du kan till exempel skapa en beräknad kolumn som etiketterar återförsäljare som föredragna eller värde beroende på det årliga försäljningsbeloppet. Funktioner som testar värden är också användbara för att kontrollera området eller typen av värden, för att förhindra att oväntade datafel bryter beräkningar.
Skapa ett värde baserat på ett villkor
Du kan använda kapslade OM-villkor för att testa värden och generera nya värden villkorligt. Följande avsnitt innehåller några enkla exempel på villkorsstyrd bearbetning och villkorsstyrda värden:
Test för fel i en formel
Till skillnad från Excel kan du inte ha giltiga värden på en rad i en beräknad kolumn och ogiltiga värden i en annan rad. Det innebär att om det finns ett fel i någon del av en Power Pivot kolumn flaggas hela kolumnen med ett fel, så att du alltid måste korrigera formelfel som resulterar i ogiltiga värden.
Om du till exempel skapar en formel som dividerar med noll kan du få oändlighetsresultatet eller ett fel. Vissa formler misslyckas också om funktionen påträffar ett tomt värde när ett numeriskt värde förväntas. När du utvecklar din datamodell är det bäst att låta felen visas så att du kan klicka på meddelandet och felsöka problemet. Men när du publicerar arbetsböcker bör du använda felhantering för att förhindra att oväntade värden orsakar att beräkningar misslyckas.
För att undvika att returnera fel i en beräknad kolumn använder du en kombination av logiska funktioner och informationsfunktioner för att testa fel och alltid returnera giltiga värden. Följande avsnitt innehåller några enkla exempel på hur du gör detta i DAX:
Scenarier: Använda tidsinformation
DAX-tidsinformationsfunktionerna innehåller funktioner som hjälper dig att hämta datum eller datumintervall från dina data. Du kan sedan använda dessa datum eller datumintervall för att beräkna värden över liknande perioder. Tidsinformationsfunktionerna omfattar också funktioner som fungerar med standarddatumintervall så att du kan jämföra värden mellan månader, år eller kvartal. Du kan också skapa en formel som jämför värden för det första och sista datumet i en viss period.
En lista över alla tidsinformationsfunktioner finns i Time Intelligence Functions (DAX). Tips om hur du använder datum och tider effektivt i en Power Pivot analys finns i Datum i Power Pivot.
Beräkna kumulativ försäljning
Följande avsnitt innehåller exempel på hur du beräknar stängnings- och öppningssaldon. Med exemplen kan du skapa löpande saldon över olika intervall, till exempel dagar, månader, kvartal eller år.
Jämföra värden över tid
Följande avsnitt innehåller exempel på hur du jämför summor över olika tidsperioder. Standardtidsperioder som stöds av DAX är månader, kvartal och år.
Beräkna ett värde över ett anpassat datumintervall
I följande avsnitt finns exempel på hur du hämtar anpassade datumintervall, till exempel de första 15 dagarna efter att en säljkampanj har påbörjats.
Om du använder tidsinformationsfunktioner för att hämta en anpassad uppsättning datum kan du använda den uppsättningen datum som indata till en funktion som utför beräkningar för att skapa anpassade mängder över tidsperioder. I följande avsnitt finns ett exempel på hur du gör detta:
-
Obs!: Om du inte behöver ange ett anpassat datumintervall, men arbetar med standardredovisningsenheter som månader, kvartal eller år, rekommenderar vi att du utför beräkningar med hjälp av tidsinformationsfunktionerna som utformats för detta ändamål, till exempel TOTALQTD, TOTALMTD, TOTALQTD osv.
Scenarier: Rangordning och jämförelse av värden
Om du bara vill visa det översta n antalet objekt i en kolumn eller pivottabell har du flera alternativ:
-
Du kan använda funktionerna i Excel för att skapa ett toppfilter. Du kan också välja ett antal högsta eller lägsta värden i en pivottabell. I den första delen av det här avsnittet beskrivs hur du filtrerar efter de 10 översta objekten i en pivottabell. Mer information finns i Excel-dokumentationen.
-
Du kan skapa en formel som dynamiskt rangordnar värden och sedan filtrera efter rangordningsvärden, eller använda rangordningsvärdet som utsnitt. I den andra delen av det här avsnittet beskrivs hur du skapar den här formeln och sedan använder rangordningen i ett utsnitt.
Det finns för- och nackdelar med varje metod.
-
Excel Top-filtret är enkelt att använda, men filtret är endast för visningsändamål. Om de underliggande data som ligger till grund för pivottabellen ändras måste du uppdatera pivottabellen manuellt för att ändringarna ska visas. Om du behöver arbeta dynamiskt med rankningar kan du använda DAX för att skapa en formel som jämför värden med andra värden i en kolumn.
-
DAX-formeln är kraftfullare. Genom att lägga till rangordningsvärdet i ett utsnitt kan du dessutom klicka på utsnittet för att ändra antalet toppvärden som visas. Beräkningarna är dock beräkningsmässigt dyra och den här metoden kanske inte passar för tabeller med många rader.
Visa endast de tio översta objekten i en pivottabell
Visa de högsta eller lägsta värdena i en pivottabell
|
Ordna objekt dynamiskt med hjälp av en formel
Följande avsnitt innehåller ett exempel på hur du använder DAX för att skapa en rangordning som lagras i en beräknad kolumn. Eftersom DAX-formler beräknas dynamiskt kan du alltid vara säker på att rangordningen är korrekt även om underliggande data har ändrats. Eftersom formeln används i en beräknad kolumn kan du också använda rangordningen i ett utsnitt och sedan välja de 5 högsta, 10 högsta eller till och med 100 högsta värdena.