Visuella beräkningar

Gäller för:✅ Power BI Desktop och služba Power BI

En visuell beräkning är en DAX-beräkning som du definierar och kör direkt på ett visuellt objekt, i stället för att lägga till den i den semantiska modellen. Eftersom en visuell beräkning fungerar med de data som redan visas i det visuella objektet kan du uttrycka vanliga affärsberäkningar – t.ex. löpande summor, glidande medelvärden och jämförelser mellan tidsperioder – utan att navigera i filterkontexten eller modellrelationerna. Resultatet är vanligtvis kortare DAX som är enklare att underhålla och ofta presterar bättre än ett motsvarande mått.

Den här artikeln förklarar vad visuella beräkningar är, hur de fungerar i den visuella matrisen, hur parametrarna som styr dem fungerar och hur de skiljer sig från mått och beräknade kolumner, så att du kan bestämma när en visuell beräkning är rätt val.

Här är ett exempel på en visuell beräkning som definierar en löpande summa för Försäljningsbelopp. Den DAX som krävs är enkel:

Running sum = RUNNINGSUM([Sales Amount])

Skärmbild av DAX för visuella beräkningar.

En beräkning kan referera till vilka data som helst i visualen, inklusive kolumner, mått eller andra visuella beräkningar. Den här möjligheten tar bort komplexiteten i den semantiska modellen och förenklar processen med att skriva DAX. Du kan använda visuella beräkningar för att slutföra vanliga affärsberäkningar, till exempel löpande summor eller glidande medelvärden.

Visuella beräkningar skiljer sig från de andra beräkningsalternativen i DAX:

  • Visuella beräkningar lagras inte i modellen. I stället lagrar du dem i det visuella objektet. Den här begränsningen innebär att visuella beräkningar bara kan referera till det visuella objektet. Du måste lägga till något från modellen i visualiseringen innan den visuella beräkningen kan referera till det. Den här begränsningen frigör visuella beräkningar från att bry sig om komplexiteten i filterkontexten och modellen.
  • Visuella beräkningar kombinerar enkelheten i kontexten från beräknade kolumner med flexibiliteten i beräkningen på begäran från mått.
  • Jämfört med mått fungerar visuella beräkningar på aggregerade data i stället för detaljnivån, vilket ofta leder till prestandafördelar. När en beräkning kan uppnås antingen med ett nytt mått eller en visuell beräkning leder den senare ofta till bättre prestanda.
  • Eftersom visuella beräkningar är en del av det visuella objektet kan de referera till den visuella strukturen, vilket leder till mer flexibilitet.

En mer djupgående jämförelse av hur du lägger till beräkningar i Power BI finns i Använda beräkningsalternativ i Power BI Desktop.

Visuella tabell- och matrisobjekt exponerar även visuella beräkningar via den anpassade totalupplevelsen, vilket gör att du kan ändra vad den totala raden visar utan att skriva DAX. Mer information finns i artiklarna för tabell - och matrisvisualisering .

Information om hur du lägger till eller redigerar en visuell beräkning finns i Skapa visuella beräkningar.

Så här fungerar visuella beräkningar

Du skapar visuella beräkningar i redigeringsläge , som öppnas över det valda visuella objektet. Redigeringsytan har tre delar: en förhandsgranskning av det visuella objektet, ett formelfält för DAX-uttrycket och en visuell matris som visar resultat när du skriver.

Skärmbild som visar områden i redigeringsskärmen för visuella beräkningar.

Eftersom du lagrar en visuell beräkning i det visuella objektet kan den referera till vad som helst i det visuella objektet – kolumner, mått eller andra visuella beräkningar – men inget annat i modellen. De flesta visuella beräkningar utvärderar rad för rad mot den visuella matrisen, så sammansättningsfunktioner som SUM är vanligtvis onödiga. Du kan inte använda funktioner som är beroende av modellrelationer – USERELATIONSHIP, RELATED och RELATEDTABLE.

När du har lagt till en visuell beräkning visas den i fältlistan i det visuella objektet och återges på själva det visuella objektet.

Skärmbild av visuella beräkningar som visas.

DAX-funktioner som är tillgängliga i visuella beräkningar

Många befintliga DAX-funktioner fungerar i visuella beräkningar. Eftersom visuella beräkningar fungerar inom ramen för den visuella matrisen är funktioner som förlitar sig på modellrelationer som USERELATIONSHIP, RELATED eller RELATEDTABLE inte tillgängliga.

Visuella beräkningar introducerar också en uppsättning funktioner som är specifika för visuella beräkningar. Många av dessa funktioner är lättanvända genvägar till DAX-fönsterfunktioner.

Funktion beskrivning Exempel Genväg till
COLLAPSE Beräkningen utvärderas på en högre nivå av axeln. Procent av förälder = DIVIDE([Försäljningsbelopp], COLLAPSE([Försäljningsbelopp], ROWS)) Ej tillämpligt
COLLAPSEALL Beräkningen utvärderas på den totala nivån för axeln. Procent av totalsumma = DIVIDE([Försäljningsbelopp], COLLAPSEALL([Försäljningsbelopp], ROWS)) Ej tillämpligt
EXPAND Beräkningen utvärderas på en lägre nivå av axeln. Genomsnitt av barn = EXPAND(AVERAGE([Sales Amount]), ROWS) Ej tillämpligt
EXPANDALL Beräkningen utvärderas på axelns bladnivå. Medelvärde för bladnivå = EXPANDALL(AVERAGE([Sales Amount]), ROWS) Ej tillämpligt
FIRST Refererar till den första raden i en axel. ProfitVSFirst = [Profit] - FIRST([Profit]) INDEX(1)
ISATLEVEL Rapporterar om en angiven kolumn finns på den aktuella nivån. IsFiscalYearAtLevel = ISATLEVEL([Räkenskapsår]) Ej tillämpligt
LAST Refererar till den sista raden i en axel. ProfitVSLast = [Vinst] - LAST([Vinst]) INDEX(-1)
LOOKUP Utvärderar ett uttryck i den visuella matrisen med hjälp av den aktuella kontexten. LookupSalesFor2025WithContext = LOOKUP(SUM([Sales]), [Year], "2025") Ej tillämpligt
LOOKUPWITHTOTALS Utvärderar ett uttryck i en visuell matris med totaler. LookupSalesFor2025WithTotals = LOOKUPWITHTOTALS(SUM([Sales]), [Year], "2025") Ej tillämpligt
MOVINGAVERAGE Lägger till ett glidande medelvärde på en axel. RörligtGenomsnittFörsäljning = MOVINGAVERAGE([Försäljningsbelopp], 2) WINDOW
NEXT Refererar till nästa rad i en axel. ProfitVSNext = [Vinst] - NEXT([Vinst]) OFFSET(1)
PREVIOUS Refererar till en tidigare rad i en axel. ProfitVSPrevious = [Vinst] - PREVIOUS([Vinst]) OFFSET(-1)
RANGE Refererar till en skiva av rader på en axel. AverageSales = AVERAGEX(RANGE(1), [Försäljningsbelopp]) WINDOW
RUNNINGSUM Lägger till en löpande summa på en axel. RunningSumSales = RUNNINGSUM([Försäljningsbelopp]) WINDOW

Parametrar som styr beräkningsflödet

Vissa visuella beräkningsfunktioner accepterar valfria parametrar som styr hur beräkningen passerar den visuella matrisen:

  • Axis och Reset är specifika för visuella beräkningar. De refererar till den visuella strukturen snarare än specifika fält.
  • OrderBy och PartitionBy fungerar även i beräknade kolumner och mått. De refererar till fält direkt.

I följande avsnitt beskrivs varje parameter och när du ska använda en över en annan.

Axis

Många funktioner har en valfri Axis parameter som du bara kan använda i visuella beräkningar. Parametern Axis påverkar hur den visuella beräkningen passerar den visuella matrisen. Parametern Axis är som standard den första axeln i det visuella objektet. För många visuella objekt är ROWSden första axeln , vilket innebär att den visuella beräkningen utvärderas rad för rad i den visuella matrisen, uppifrån och ned. I följande tabell visas giltiga värden för parametern Axis :

Axis ikon Axis Namn beskrivning
ROWS Beräknar lodrätt över rader uppifrån och ned.
COLUMNS Beräknar vågrätt mellan kolumner från vänster till höger.
ROWS COLUMNS Beräknar lodrätt över rader uppifrån och ned och fortsätter kolumn för kolumn från vänster till höger.
COLUMNS ROWS Beräknar vågrätt över kolumner från vänster till höger och fortsätter rad för rad uppifrån och ned.

Kommentar

Om du anger en axel som inte finns i det visuella objektet ignorerar beräkningen den axeln.

Reset

Många funktioner innehåller en valfri Reset parameter som du bara kan använda i visuella beräkningar. Parametern Reset styr om och när funktionen återställer värdet till 0 eller växlar till ett annat omfång när den passerar den visuella matrisen. Det styr det här beteendet genom att partitionera målkolumnen. Eftersom beräkningar sker inom en partition avgör sättet som kolumnen delas upp i partitioner om en beräkning nollställs.

Standardvärdet för parametern Reset är NONE, vilket innebär att den visuella beräkningen aldrig startas om.

Parametern Reset accepterar olika typer av värden:

  • Heltal
  • Kolumnreferenser
  • Särskilda synonymer: HIGHESTPARENT, LOWESTPARENT, NONE

I varje fall anger parametern en enda nivå i den visuella beräkningshierarkin (målnivån). Hur beräkningen tolkar den här nivån kan dock variera.

Beteendet Reset fungerar i två olika lägen: absolut och relativ.

När du använder heltalsvärden för parametern eller deras motsvarigheter NONE, HIGHESTPARENT, och LOWESTPARENT, kan du välja mellan dessa två lägen efter heltalssignalen: positiva värden utför en återställning i absolut läge och negativa värden utför en återställning i relativt läge (och noll återställs inte alls, standardbeteendet).

Om du anger en kolumnreferens fungerar du också i absolut läge. Dessa värden avgör hur målkolumnen partitioneras och därför om den återställs. Följande avsnitt beskriver dessa två lägen:

Absolut återställningsläge

Absolut läge är ett beteende för parametern Reset i visuella beräkningar. Det här läget anger att beräkningen ska partitioneras efter målkolumnen och alla dessa kolumner ovanför den. Den här regeln gäller på alla nivåer i beräkningen. På nivåer ovanför målkolumnen (där målkolumnen inte finns och eventuellt andra kolumner) partitioneras beräkningspartitionerna efter de återstående tillgängliga kolumnerna. Det positiva heltalsvärdet identifierar målkolumnen från början (den översta kolumnen är 1, nästa är 2 och så vidare). Den går upp till N (antalet kolumner i hierarkin) och eventuella högre värden trimmas ned. Du kan också ange kolumnen direkt.

Du kan till exempel överväga en visuell beräkning med dessa hierarkinivåer: År, Kvartal, Månad och Dag. Följande tabell visar hur beräkningen delas upp på varje nivå beroende på värdet på Reset:

Nivå/värde Reset = 1 eller År Reset = 2 eller kvartal Reset = 3 eller månad Reset = 4 eller dag
Dagnivå År Kvartal och år Månad, kvartal och år Dag, månad, kvartal och år
Månadsnivå År Kvartal och år Månad, kvartal och år Månad, kvartal och år
Kvartalsnivå År Kvartal och år Kvartal och år Kvartal och år
Årsnivå År År År År
Sammanlagd totalnivå Ingen Ingen Ingen Ingen

Relativt återställningsläge

Relativt läge är ett beteende för parametern Reset i visuella beräkningar. Givet ett negativt heltalsvärde –X partitioneras beräkningen på varje nivå efter alla kolumner som ligger X nivåer eller fler ovanför den i hierarkin (eller partitioneras inte alls om det inte finns någon sådan nivå). Giltiga värden för det här läget är mellan -1 och -N+1 (där N är antalet kolumner i hierarkin) och eventuella lägre värden trimmas upp. Överväg återigen en visuell beräkning med dessa hierarkinivåer: År, Kvartal, Månad och Dag. Följande tabell visar hur beräkningspartitionerna ser ut på varje nivå beroende på värdet på Reset

Nivå/värde Reset = -1 Reset = -2 Reset = -3
Dagnivå Månad, kvartal och år Kvartal och år År
Månadsnivå Kvartal och år År Ingen
Kvartalsnivå År Ingen Ingen
Årsnivå Ingen Ingen Ingen
Sammanlagd totalnivå Ingen Ingen Ingen

Återställ parametersynonymer

Parametern Reset innehåller också följande synonymer:

  • NONE är standardvärdet. Den återställer inte beräkningen och motsvarar 0.
  • HIGHESTPARENT utför en absolut återställning på den högsta nivån och motsvarar 1.
  • LOWESTPARENT utför en relativ återställning av den närmaste föräldern och motsvarar -1.

Exempel på hur du använder parametern Återställ

Överväg en visuell beräkning med dessa hierarkinivåer: År, Kvartal, Månad och Dag. Följande visuella beräkningar är likvärdiga och returnerar summan av försäljningsbeloppet som startas om för varje år, oavsett vilken nivå beräkningen utvärderas på (se absolut återställningsläge):

RUNNINGSUM([Sales Amount], HIGHESTPARENT)
RUNNINGSUM([Sales Amount], 1)
RUNNINGSUM([Sales Amount], [Year])

Däremot returnerar följande visuella beräkningar både summan av försäljningsbeloppet som börjar från 0 för varje omedelbar överordnad, vilket beror på vilken nivå beräkningen utvärderas på (se relativt återställningsläge).

RUNNINGSUM([Sales Amount], LOWESTPARENT)
RUNNINGSUM([Sales Amount], -1)

Slutligen återställs inte den här visuella beräkningen och fortsätter att lägga till värdet Försäljningsbelopp för varje dag till föregående värden, utan att starta om.

RUNNINGSUM([Sales Amount])

OrderBy och PartitionBy

Parametern OrderBy accepterar ORDERBY, och parametern PartitionBy accepterar PARTITIONBY. Till skillnad från Axis och Resetkan du använda dessa parametrar i beräknade kolumner, mått och visuella beräkningar, och de refererar till fält direkt.

Alla funktioner tillhandahåller inte dessa parametrar. Funktioner som är exklusiva för visuella beräkningar har ingen parameter PartitionBy. Fönsterfunktioner ger bara en Reset parameter om du använder dem i en visuell beräkning. Parametern Relation för fönsterfunktioner är tillgänglig oavsett om du använder den i en visuell beräkning, men den accepterar bara en Axis om du använder den i en visuell beräkning.

Välj mellan dessa parametrar

Du behöver inte ange alla dessa parametrar och du kan kombinera dem. Så här bestämmer du vilken parameter som ska användas:

  • Föredrar Axis och Reset när du vill ha fältagnostiskt beteende som följer den visuella strukturen. Att referera till den visuella strukturen är mer flexibelt än att uttryckligen referera till fält.
  • Använd OrderBy och PartitionBy när du vill fästa beräkningen på specifika fält oavsett den visuella layouten.
  • Använd PartitionBy i stället för Reset när axeln bara har en nivå. Reset förväntar sig flera nivåer på axeln, så det fungerar inte när det bara finns ett fält eller när flera fält finns på en enda nivå på axeln.

Parameterväljare

Parameterväljare gör det enkelt att välja värden för parametrar i visuella beräkningsfunktioner. Till exempel ser du i bilden nedan att mallen Slå upp ett värde med summor har lästs in:

Skärmbild som visar parameterväljaren.

Du kan också aktivera parameterväljarna med hjälp av kortkommandot CTRL+SPACE .

Mallar för visuell beräkning

Visuella beräkningar innehåller mallar för att göra det enklare att skriva vanliga beräkningar. Knappen mall i redigeringsläget för visuella beräkningar öppnar en meny med tillgängliga mallar.

Skärmbild av hur du använder mallar för visuella beräkningar.

Följande mallar är tillgängliga:

  • Löpande summa. Beräknar summan av värden och lägger till det aktuella värdet i föregående värden. Använder RUNNINGSUM funktionen.
  • Glidande medelvärde. Beräknar ett medelvärde av en uppsättning värden i ett visst fönster genom att dividera summan av värdena med fönstrets storlek. Använder MOVINGAVERAGE funktionen.
  • Procent av förälder. Beräknar procentandelen av ett värde i förhållande till det överordnade elementet. Använder COLLAPSE funktionen.
  • Procent av totalsumman. Beräknar procentandelen av ett värde i förhållande till alla värden med hjälp av COLLAPSEALL funktionen .
  • Genomsnitt för barn. Beräknar det genomsnittliga värdet av barnvärdena. Använder EXPAND funktionen.
  • Jämfört med tidigare. Jämför ett värde med ett föregående värde med hjälp av PREVIOUS funktionen.
  • Mot nästa Jämför ett värde med ett efterföljande värde med hjälp av NEXT funktionen .
  • Jämfört med först. Jämför ett värde med det första värdet med hjälp av funktionen FIRST.
  • Jämfört med förra gången. Jämför ett värde med det sista värdet med hjälp av funktionen LAST.
  • Slå upp ett värde med kontext. Hitta ett värde eller utvärdera ett uttryck i den visuella matrisen i den aktuella kontexten med hjälp av LOOKUP funktionen.
  • Leta upp ett värde med totalsummor. Hitta ett värde eller utvärdera ett uttryck i den visuella matrisen med summor med hjälp av LOOKUPWITHTOTALS funktionen .

Dölj fält i det visuella objektet

I redigeringsläget för visuella beräkningar kan du dölja fält från det visuella objektet precis som du döljer kolumner och tabeller i modelleringsvyn. Om du till exempel bara vill visa den visuella beräkningen Vinst döljer du Försäljningsbelopp och Total produktkostnad från vyn.

Skärmbild av att dölja element i ett visuellt objekt.

Att dölja fält tar inte bort dem från det visuella objektet eller från den visuella matrisen, så dina visuella beräkningar kan fortfarande referera till dem och fortsätta att fungera. Ett dolt fält visas fortfarande i den visuella matrisen men visas inte i det resulterande visuella objektet. Inkludera endast dolda fält om de behövs för att dina visuella beräkningar ska fungera.

Formatera en visuell beräkning

Formatera en visuell beräkning med hjälp av datatyper och formateringsalternativ, eller med hjälp av en anpassad formatsträng på visuell nivå. Alternativen för dataformat i avsnittet Allmänt i formateringsfönstret styr formatet.

Skärmbild av redigeringsläget för visuella beräkningar som visar en visuell beräkning som returnerar en procentandel formaterad i procent.

Beaktanden och begränsningar

Visuella typer som inte stöds

Visuella beräkningar och dolda fält fungerar inte med följande visuella objekt:

  • Skivdelare, R-visualisering, Python-visualisering
  • Viktiga påverkare, nedbrytningsträd, Q&A, smart narrativ
  • Mått, paginerad rapport, Power Apps, Power Automate
  • Små multiplar, Uppspelningsaxel i spridningsdiagram
  • Anpassade bilder

Funktioner som inte stöds

Följande funktioner är inte tillgängliga med visuella beräkningar:

Begränsningar för publicering och delning

Andra begränsningar

  • Fältparametrar fungerar med visuella beräkningar men har vissa begränsningar.
  • Live-anslutningar till SQL Server Analysis Services kräver version 2025 eller senare.

Mer information om hur du använder visuella beräkningar finns i följande resurser: