Applies ToExcel för Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016 Power BI

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

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:

  • PARALLELPERIOD, funktion

    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

  1. Klicka på nedåtpilen i rubriken Radetiketter i pivottabellen.

  2. Välj Värdefilter> topp 10.

  3. I dialogrutan <<kolumnnamn> väljer du den kolumn som ska rangordnas och antalet värden enligt följande:

    1. Välj Överkant om du vill visa de celler som har de högsta värdena eller Nederkant för att visa de celler som har de lägsta värdena.

    2. Ange antalet högsta eller lägsta värden som du vill se. Standardvärdet är 10.

    3. Välj hur du vill att värdena ska visas:

Namn

Beskrivning

Objekt

Välj det här alternativet om du vill filtrera pivottabellen så att endast listan över de översta eller lägsta objekten visas efter deras värden.

Procent

Välj det här alternativet om du vill filtrera pivottabellen så att endast de objekt som adderas till det angivna procenttalet visas.

Summa

Välj det här alternativet om du vill visa summan av värdena för de översta eller lägsta objekten.

  1. Markera den kolumn som innehåller de värden du vill rangordna.

  2. Klicka på OK.

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.

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.