Visuelle beregninger

Gjelder for:✅ Power BI Skrivebord og Power Bi-tjeneste

En visuell beregning er en DAX-beregning som du definerer og kjører direkte på et visualobjekt, i stedet for å legge det til i den semantiske modellen. Fordi en visuell beregning fungerer med dataene som allerede vises i visualobjektet, kan du uttrykke vanlige forretningsberegninger , for eksempel løpende totaler, glidende gjennomsnitt og sammenligninger av periodeover periode - uten å navigere filterkontekst eller modellrelasjoner. Resultatet er vanligvis kortere DAX som er enklere å vedlikeholde og ofte utfører bedre enn et tilsvarende mål.

Denne artikkelen forklarer hva visuelle beregninger er, hvordan de fungerer i den visuelle matrisen, hvordan parameterne som styrer dem fungerer, og hvordan de skiller seg fra mål og beregnede kolonner, slik at du kan bestemme når en visuell beregning er det riktige valget.

Her er et eksempel på en visuell beregning som definerer en løpende sum for Salgsbeløp. DAX-en som kreves, er enkel:

Running sum = RUNNINGSUM([Sales Amount])

Skjermbilde av DAX for visuelle beregninger.

En beregning kan referere til alle data i visualobjektet, inkludert kolonner, mål eller andre visuelle beregninger. Denne muligheten fjerner kompleksiteten til den semantiske modellen og forenkler prosessen med å skrive DAX. Du kan bruke visuelle beregninger til å fullføre vanlige forretningsberegninger, for eksempel løpende summer eller glidende gjennomsnitt.

Visuelle beregninger skiller seg fra de andre beregningsalternativene i DAX:

  • Visuelle beregninger lagres ikke i modellen. I stedet lagrer du dem på visualobjektet. Denne begrensningen betyr at visuelle beregninger bare kan referere til hva som er på visualobjektet. Du må legge til hva som helst i modellen i visualobjektet før beregningen av visualobjektet kan referere til den. Denne begrensningen frigjør visuelle beregninger fra å være opptatt av kompleksiteten i filterkonteksten og modellen.
  • Visuelle beregninger kombinerer kontekstens enkelhet fra beregnede kolonner med den behovsbetingede beregningsfleksibilitet fra mål.
  • Sammenlignet med mål opererer visuelle beregninger på aggregerte data i stedet for detaljnivået, noe som ofte fører til ytelsesfordeler. Når en beregning kan oppnås enten ved et nytt mål eller en visuell beregning, fører sistnevnte ofte til bedre ytelse.
  • Siden visuelle beregninger er en del av visualobjektet, kan de referere til den visuelle strukturen, noe som fører til mer fleksibilitet.

Hvis du vil ha en mer detaljert sammenligning av måter å legge til beregninger i Power BI på, kan du se Bruke beregningsalternativer i Power BI Desktop.

Tabell- og matrisevisualobjekter viser også visuelle beregninger gjennom den egendefinerte totalopplevelsen, som lar deg endre hva den totale raden viser uten å skrive DAX. Hvis du vil ha mer informasjon, kan du se visualartiklene for tabeller og matriser .

Hvis du vil lære hvordan du legger til eller redigerer en visuell beregning, kan du se Opprette visuelle beregninger.

Slik fungerer visuelle beregninger

Du oppretter visuelle beregninger i redigeringsmodus , som åpnes over det valgte visualobjektet. Redigeringsoverflaten har tre deler: en forhåndsvisning av visualobjektet, en formellinje for DAX-uttrykket og en visuell matrise som viser resultater mens du skriver.

Skjermbilde som viser områder av redigeringsskjermen for visuelle beregninger.

Fordi du lagrer en visuell beregning på visualobjektet, kan det referere til hva som helst på visualobjektet – kolonner, mål eller andre visuelle beregninger – men ingenting annet i modellen. De fleste visuelle beregninger evaluerer rad for rad mot den visuelle matrisen, så aggregasjonsfunksjoner som SUMMER er vanligvis unødvendige. Du kan ikke bruke funksjoner som avhenger av modellrelasjoner – USERELATIONSHIP, RELATED og RELATEDTABLE.

Når du har lagt til en visuell beregning, vises den i feltlisten på visualobjektet og gjengis på selve visualobjektet.

Skjermbilde av visuelle beregninger som vises på visualobjektet.

DAX-funksjoner som er tilgjengelige i visuelle beregninger

Mange eksisterende DAX-funksjoner fungerer i visuelle beregninger. Siden visuelle beregninger fungerer innenfor rammen av den visuelle matrisen, er ikke funksjoner som er avhengige av modellrelasjoner som USERELATIONSHIP, RELATED eller RELATEDTABLE tilgjengelige.

Visuelle beregninger introduserer også et sett med funksjoner som er spesifikke for visuelle beregninger. Mange av disse funksjonene er enklere å bruke snarveier til DAX-vindusfunksjoner.

Function Description Example Snarvei til
COLLAPSE Beregningen evalueres på et høyere nivå av aksen. Prosent av overordnet = DIVIDE([Salgsbeløp], COLLAPSE([Salgsbeløp], ROWS)) N/A
COLLAPSEALL Beregningen evalueres på det totale nivået på aksen. Prosent av totalsum = DIVIDE([Salgsbeløp], COLLAPSEALL([Salgsbeløp], ROWS)) N/A
EXPAND Beregningen evalueres på et lavere nivå av aksen. Gjennomsnitt av underordnede = EXPAND(GJENNOMSNITT([Salgsbeløp]), ROWS) N/A
EXPANDALL Beregningen evalueres på bladnivå på aksen. Gjennomsnitt av bladnivå = EXPANDALL(GJENNOMSNITT([Salgsbeløp]), ROWS) N/A
FIRST Refererer til den første raden i en akse. ProfitVSFirst = [Fortjeneste] - FIRST([Fortjeneste]) INDEX(1)
ISATLEVEL Rapporterer om en angitt kolonne finnes på gjeldende nivå. IsFiscalYearAtLevel = ISATLEVEL([Regnskapsår]) N/A
LAST Refererer til den siste raden i en akse. ProfitVSLast = [Fortjeneste] - LAST([Fortjeneste]) INDEX(-1)
LOOKUP Evaluerer et uttrykk i den visuelle matrisen ved hjelp av gjeldende kontekst. LookupSalesFor2025WithContext = LOOKUP(SUM([Sales]), [Year], "2025") N/A
LOOKUPWITHTOTALS Evaluerer et uttrykk i den visuelle matrisen med totalsummer. LookupSalesFor2025WithTotals = LOOKUPWITHTOTALS(SUM([Salg]), [År], "2025") N/A
MOVINGAVERAGE Legger til et glidende gjennomsnitt på en akse. MovingAverageSales = MOVINGAVERAGE([Salgsbeløp], 2) WINDOW
NEXT Refererer til en neste rad i en akse. ProfitVSNext = [Fortjeneste] - NEXT([Fortjeneste]) OFFSET(1)
PREVIOUS Refererer til en tidligere rad i en akse. ProfitVSPrevious = [Fortjeneste] - PREVIOUS([Fortjeneste]) OFFSET(-1)
RANGE Refererer til en rad i en akse. Gjennomsnittsalg = GJENNOMSNITTX(RANGE(1), [Salgsbeløp]) WINDOW
RUNNINGSUM Legger til en løpende sum på en akse. RunningSumSales = RUNNINGSUM([Salgsbeløp]) WINDOW

Parametere som styrer beregningsflyten

Noen visuelle beregningsfunksjoner godtar valgfrie parametere som styrer hvordan beregningen krysser den visuelle matrisen:

  • Axis og Reset er spesifikke for visuelle beregninger. De refererer til den visuelle strukturen i stedet for bestemte felt.
  • OrderBy og PartitionBy arbeid også i beregnede kolonner og mål. De refererer til felt direkte.

Avsnittene nedenfor beskriver hver parameter og når du skal bruke en over en annen.

Axis

Mange funksjoner har en valgfri Axis parameter, som du bare kan bruke i visuelle beregninger. Parameteren Axis påvirker hvordan den visuelle beregningen krysser den visuelle matrisen. Parameteren Axis er standard på den første aksen i visualobjektet. For mange visualobjekter er ROWSden første aksen , noe som betyr at beregningen av visualobjektet evalueres rad for rad i den visuelle matrisen, fra topp til bunn. Tabellen nedenfor viser gyldige verdier for parameteren Axis :

Axis ikon Axis navn Description
ROWS Beregner loddrett på tvers av rader fra topp til bunn.
COLUMNS Beregner vannrett på tvers av kolonner fra venstre mot høyre.
ROWS COLUMNS Beregner loddrett på tvers av rader fra topp til bunn, og fortsetter kolonnen etter kolonne fra venstre mot høyre.
COLUMNS ROWS Beregner vannrett på tvers av kolonner fra venstre mot høyre, og fortsetter rad for rad fra topp til bunn.

Note

Hvis du angir en akse som ikke finnes på visualobjektet, ignorerer beregningen denne aksen.

Reset

Mange funksjoner inkluderer en valgfri Reset parameter som du bare kan bruke i visuelle beregninger. Parameteren Reset kontrollerer om og når funksjonen tilbakestiller verdien til 0 eller bytter til et annet omfang mens du krysser den visuelle matrisen. Den styrer denne virkemåten ved å partisjonere målkolonnen. Når beregninger skjer i en partisjon, bestemmer hvordan kolonnen er delt inn i partisjoner om en beregning tilbakestilles.

Standardverdien for parameteren Reset er NONE, noe som betyr at visualobjektberegningen aldri starter på nytt.

Parameteren Reset godtar ulike typer verdier:

  • Heltall
  • Kolonnereferanser
  • Spesielle synonymer: HIGHESTPARENT, LOWESTPARENT, NONE

I alle tilfeller angir parameteren ett nivå i beregningshierarkiet for visualobjekter (målnivået). Hvordan beregningen tolker dette nivået, kan imidlertid variere.

Atferden Reset fungerer i to forskjellige moduser: absolutt og relativ.

Når du bruker heltallsverdier for parameteren eller tilsvarende NONEverdier , HIGHESTPARENTog LOWESTPARENT, kan du velge mellom disse to modusene etter heltallets signal: Positive verdier utfører en tilbakestilling i absolutt modus, og negative verdier utfører en tilbakestilling i relativ modus (og null tilbakestilles ikke i det hele tatt, standardvirkemåten).

Hvis du angir en kolonnereferanse, opererer du også i absolutt modus. Disse verdiene bestemmer hvordan målkolonnen partisjoneres, og derfor hvis den tilbakestilles. Følgende inndelinger beskriver disse to modusene:

Absolutt tilbakestillingsmodus

Absolutt modus er en virkemåte for parameteren Reset i visuelle beregninger. Denne modusen angir at beregningen skal partisjoneres etter målkolonnen og alle kolonnene over den. Denne regelen gjelder på alle nivåer i beregningen. På nivåer over målkolonnen (der målkolonnen ikke finnes, og muligens andre kolonner), blir beregningspartisjonene av de gjenværende kolonnene tilgjengelige. Den positive heltallsverdien identifiserer målkolonnen fra toppen (den øverste kolonnen er 1, den neste er 2 og så videre). Den går opp til N (antall kolonner i hierarkiet), og eventuelle høyere verdier trimmes ned. Du kan også angi kolonnen direkte.

Vurder for eksempel en visuell beregning med disse hierarkinivåene: År, Kvartal, Måned og Dag. Tabellen nedenfor viser hvordan beregningspartisjonene på hvert nivå, avhengig av verdien av Reset:

Nivå/verdi Reset = 1 eller år Reset = 2 eller kvartal Reset = 3 eller måned Reset = 4 eller dag
Dagnivå Year Kvartal og år Måned, kvartal og år Dag, måned, kvartal og år
Månedlig nivå Year Kvartal og år Måned, kvartal og år Måned, kvartal og år
Kvartalsnivå Year Kvartal og år Kvartal og år Kvartal og år
Årsnivå Year Year Year Year
Totalnivå None None None None

Relativ tilbakestillingsmodus

Relativ modus er en virkemåte for parameteren Reset i visuelle beregninger. Gitt en negativ heltallsverdi –X, på hvert nivå, blir beregningspartisjonene sortert etter alle kolonne X-nivåer eller mer over den i hierarkiet (eller partisjonerer ikke i det hele tatt hvis det ikke finnes noe slikt nivå). Gyldige verdier for denne modusen er mellom -1 og -N+1 (der N er antall kolonner i hierarkiet), og eventuelle lavere verdier trimmes opp. Vurder på nytt en visuell beregning med disse hierarkinivåene: År, Kvartal, Måned og Dag. Tabellen nedenfor viser hvordan beregningspartisjonene på hvert nivå, avhengig av verdien til Reset

Nivå/verdi Reset = -1 Reset = -2 Reset = -3
Dagnivå Måned, kvartal og år Kvartal og år Year
Månedlig nivå Kvartal og år Year None
Kvartalsnivå Year None None
Årsnivå None None None
Totalnivå None None None

Tilbakestill parameter-synonymer

Parameteren Reset inneholder også følgende synonymer:

  • NONE er standardverdien. Den tilbakestiller ikke beregningen og tilsvarer 0.
  • HIGHESTPARENT utfører en absolutt tilbakestilling med det høyeste nivået og tilsvarer 1.
  • LOWESTPARENT utfører en relativ tilbakestilling av den nærmeste overordnede og tilsvarer -1.

Eksempler på bruk av tilbakestillingsparameteren

Vurder en visuell beregning med disse hierarkinivåene: År, Kvartal, Måned og Dag. Følgende visuelle beregninger tilsvarer og returnerer summen av salgsbeløpet som starter på nytt for hvert år, uavhengig av nivået beregningen evalueres på (se absolutt tilbakestillingsmodus):

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

Derimot returnerer følgende visuelle beregninger både summen av salgsbeløpet som starter fra 0 for hver nærmeste overordnede, som avhenger av hvilket nivå beregningen evalueres på (se relativ tilbakestillingsmodus).

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

Til slutt tilbakestilles ikke denne visuelle beregningen, og fortsetter å legge til Salgsbeløp-verdien for hver dag i de forrige verdiene, uten å starte på nytt.

RUNNINGSUM([Sales Amount])

OrderBy Og PartitionBy

Parameteren OrderBy godtar ORDERBY, og parameteren PartitionBy godtar PARTITIONBY. I motsetning til Axis og Resetkan du bruke disse parameterne i beregnede kolonner, mål og visuelle beregninger, og de refererer direkte til felt.

Ikke alle funksjoner inneholder disse parameterne. Visuelle beregningsfunksjoner gir ikke en PartitionBy parameter. Vindusfunksjoner gir bare en Reset parameter hvis du bruker dem i en visuell beregning. Parameteren Relation for vindusfunksjoner er tilgjengelig uansett om du bruker den i en visuell beregning, men den godtar bare en Axis hvis du bruker den i en visuell beregning.

Velg mellom disse parameterne

Du trenger ikke å angi alle disse parameterne, og du kan kombinere dem. Slik bestemmer du hvilken parameter som skal brukes:

  • Foretrekker Axis og Reset når du vil ha feltagnostisk virkemåte som følger den visuelle strukturen. Å referere til den visuelle strukturen er mer fleksibel enn eksplisitt å referere til felt.
  • Bruk OrderBy og PartitionBy når du vil feste beregningen til bestemte felt uavhengig av det visuelle oppsettet.
  • Bruk PartitionBy i stedet Reset for når aksen bare har ett nivå. Reset forventer flere nivåer på aksen, slik at det ikke fungerer når det bare er ett felt eller når det finnes flere felt i ett enkelt nivå på aksen.

Parametervelgere

Parametervelgere gjør det enkelt å velge verdier for parametere i beregningsfunksjoner for visualobjekter. I bildet nedenfor ser du for eksempel slå opp en verdi med totaler-malen lastet inn:

Skjermbilde som viser parametervelgeren.

Du kan også aktivere parametervelgerne ved hjelp av hurtigtasten CTRL+MELLOMROM .

Visuelle beregningsmaler

Visuelle beregninger inkluderer maler for å gjøre det enklere å skrive vanlige beregninger. Malknappen i redigeringsmodus for visuelle beregninger åpner en meny med tilgjengelige maler.

Skjermbilde av bruk av maler for visuelle beregninger.

Følgende maler er tilgjengelige:

  • Løpende sum. Beregner summen av verdier, og legger til gjeldende verdi i de foregående verdiene. RUNNINGSUM Bruker funksjonen.
  • Glidende gjennomsnitt. Beregner et gjennomsnitt av et sett med verdier i et gitt vindu ved å dele summen av verdiene med størrelsen på vinduet. MOVINGAVERAGE Bruker funksjonen.
  • Prosent av overordnet. Beregner prosentandelen av en verdi i forhold til den overordnede verdien. COLLAPSE Bruker funksjonen.
  • Prosent av totalsummen. Beregner prosentandelen av en verdi i forhold til alle verdier ved hjelp av COLLAPSEALL funksjonen.
  • Gjennomsnitt av barn. Beregner gjennomsnittsverdien for settet med underordnede verdier. EXPAND Bruker funksjonen.
  • Kontra forrige. Sammenligner en verdi med en foregående verdi ved hjelp av PREVIOUS funksjonen.
  • Versus neste. Sammenligner en verdi med en etterfølgende verdi ved hjelp av NEXT funksjonen.
  • Versus først. Sammenligner en verdi med den første verdien ved hjelp av FIRST-funksjonen.
  • Versus sist. Sammenligner en verdi med den siste verdien ved hjelp av LAST-funksjonen.
  • Slå opp en verdi med kontekst. Finn en verdi eller evaluer et uttrykk på den visuelle matrisen i gjeldende kontekst ved hjelp av LOOKUP funksjonen.
  • Slå opp en verdi med totalsummer. Finn en verdi eller evaluer et uttrykk på den visuelle matrisen med totalsummer, ved hjelp av LOOKUPWITHTOTALS funksjonen.

Skjule felt i visualobjektet

I redigeringsmodus for visuelle beregninger kan du skjule felt fra visualobjektet akkurat som du skjuler kolonner og tabeller i modelleringsvisningen. Hvis du for eksempel bare vil vise beregningen av fortjenestevisualobjektet , skjuler du salgsbeløp og totale produktkostnader fra visningen.

Skjermbilde av hvordan du skjuler elementer fra visningen til et visualobjekt.

Hvis du skjuler felt, fjernes de ikke fra visualobjektet eller fra den visuelle matrisen, slik at de visuelle beregningene fremdeles kan referere til dem og fortsette å fungere. Et skjult felt vises fremdeles i den visuelle matrisen, men vises ikke på det resulterende visualobjektet. Bare inkluder skjulte felt hvis de er nødvendige for at de visuelle beregningene skal fungere.

Formatere en visuell beregning

Formater en visuell beregning ved hjelp av datatyper og formateringsalternativer, eller ved hjelp av en egendefinert formatstreng på visualobjektnivå. Alternativene for dataformat i Generelt-delen i formateringsruten styrer formatet.

Skjermbilde av redigeringsmodusen for visuelle beregninger som viser en visuell beregning som returnerer en prosentdel formatert som en prosentdel.

Hensyn og begrensninger

Ustøttede visuelle typer

Visuelle beregninger og skjulte felt fungerer ikke med følgende visuelle effekter:

  • Slicer, R-visualisering, Python-visualisering
  • Nøkkelinfluensere, dekomponeringstre, spørsmål og svar, smart fortelling
  • Målinger, paginert rapport, Power Apps, Power Automate
  • Små multipler, spill aksen på spredningsdiagrammet
  • Egendefinerte visualobjekter

Funksjoner som ikke støttes

Følgende funksjoner er ikke tilgjengelige med visuelle beregninger:

Begrensninger ved publisering og deling

Andre begrensninger

  • Feltparametrene fungerer med visuelle beregninger, men har noen begrensninger.
  • Live-tilkoblinger til SQL Server Analysis Services krever versjon 2025 eller nyere.

Hvis du vil ha mer informasjon om hvordan du bruker visuelle beregninger, kan du se følgende ressurser: