Visuele berekeningen

Van toepassing op:✅ Power BI Bureaublad en Power BI-service

Een visuele berekening is een DAX-berekening die u definieert en rechtstreeks uitvoert op een visual, in plaats van deze toe te voegen aan het semantische model. Omdat een visuele berekening werkt met de gegevens die al in de visual worden weergegeven, kunt u algemene bedrijfsberekeningen uitdrukken, zoals lopende totalen, zwevende gemiddelden en vergelijkingen tussen perioden, zonder te navigeren in filtercontext of modelrelaties. Het resultaat is meestal kortere DAX die gemakkelijker te onderhouden is en vaak beter presteert dan een equivalente meting.

In dit artikel wordt uitgelegd wat visuele berekeningen zijn, hoe ze zich gedragen in de visualmatrix, hoe de parameters die deze beheren en hoe ze verschillen van metingen en berekende kolommen, zodat u kunt bepalen wanneer een visuele berekening de juiste keuze is.

Hier volgt een voorbeeld van een visuele berekening waarmee een lopende som voor Verkoopbedrag wordt gedefinieerd. De vereiste DAX is eenvoudig:

Running sum = RUNNINGSUM([Sales Amount])

Schermopname van DAX voor visuele berekeningen.

Een berekening kan verwijzen naar alle gegevens in de visual, inclusief kolommen, metingen of andere visuele berekeningen. Deze mogelijkheid verwijdert de complexiteit van het semantische model en vereenvoudigt het schrijven van DAX. U kunt visuele berekeningen gebruiken om algemene bedrijfsberekeningen te voltooien, zoals lopende sommen of zwevende gemiddelden.

Visuele berekeningen verschillen van de andere berekeningsopties in DAX:

  • Visuele berekeningen worden niet opgeslagen in het model. In plaats daarvan slaat u ze op in de visual. Deze beperking betekent dat visuele berekeningen alleen kunnen verwijzen naar wat zich in de visual voordeed. U moet alles uit het model aan de visual toevoegen voordat de visuele berekening ernaar kan verwijzen. Met deze beperking kunnen visuele berekeningen niet worden beïnvloed door de complexiteit van filtercontext en het model.
  • Visuele berekeningen combineren de eenvoud van context van berekende kolommen met de flexibiliteit van berekeningen op aanvraag van metingen.
  • In vergelijking met metingen worden visuele berekeningen uitgevoerd op geaggregeerde gegevens in plaats van op detailniveau, wat vaak leidt tot prestatievoordelen. Wanneer een berekening kan worden bereikt door een nieuwe meting of een visuele berekening, leidt dit vaak tot betere prestaties.
  • Omdat visuele berekeningen deel uitmaken van de visuele structuur, kunnen ze daarnaar verwijzen, wat leidt tot meer flexibiliteit.

Zie Berekeningsopties gebruiken in Power BI Bureaublad voor een uitgebreidere vergelijking van manieren om berekeningen toe te voegen in Power BI.

Tabel- en matrixvisuals maken ook visuele berekeningen beschikbaar via de aangepaste totalenervaring, waarmee u kunt wijzigen wat de totaalrij weergeeft zonder DAX te schrijven. Zie de artikelen over de visualisaties tabel en matrix voor meer informatie.

Zie Visuele berekeningen maken voor meer informatie over het toevoegen of bewerken van een visuele berekening.

Hoe visuele berekeningen werken

U maakt visuele berekeningen in de bewerkingsmodus, die wordt geopend voor de geselecteerde visual. Het bewerkingsoppervlak heeft drie delen: een voorbeeld van de visual, een formulebalk voor de DAX-expressie en een visuele matrix die resultaten weergeeft terwijl u typt.

Schermopname van gebieden van het bewerkingsscherm voor visuele berekeningen.

Omdat u een visuele berekening opslaat in de visual, kan deze verwijzen naar alles in de visual, kolommen, metingen of andere visuele berekeningen, maar niets anders in het model. De meeste visuele berekeningen evalueren rij-per-rij ten opzichte van de visualmatrix, dus aggregatiefuncties zoals SUM zijn meestal niet nodig. U kunt geen functies gebruiken die afhankelijk zijn van modelrelaties: USERELATIONSHIP, RELATED en RELATEDTABLE.

Nadat u een visuele berekening hebt toegevoegd, wordt deze weergegeven in de lijst met velden in de visual en wordt deze weergegeven op de visual zelf.

Schermopname van visuele berekeningen die in de visual worden weergegeven.

DAX-functies die beschikbaar zijn in visuele berekeningen

Veel bestaande DAX-functies werken in visuele berekeningen. Omdat visuele berekeningen binnen de grenzen van de visualmatrix werken, zijn functies die afhankelijk zijn van modelrelaties zoals USERELATIONSHIP, RELATED of RELATEDTABLE niet beschikbaar.

Visuele berekeningen introduceren ook een set functies die specifiek zijn voor visuele berekeningen. Veel van deze functies zijn eenvoudiger te gebruiken snelkoppelingen naar DAX-vensterfuncties.

Functie Beschrijving Voorbeeld Snelkoppeling naar
COLLAPSE De berekening wordt geëvalueerd op een hoger niveau van de as. Percentage van bovenliggende waarde = DIVIDE([Verkoopbedrag], COLLAPSE([Verkoopbedrag], ROWS)) N.v.t.
COLLAPSEALL De berekening wordt geëvalueerd op het totale niveau van de as. Percentage eindtotaal = DIVIDE([Verkoopbedrag]; COLLAPSEALL([Verkoopbedrag]; ROWS)) N.v.t.
EXPAND De berekening wordt geëvalueerd op een lager niveau van de as. Gemiddelde van kinderen = EXPAND(GEMIDDELDE([Verkoopbedrag]), ROWS) N.v.t.
EXPANDALL De berekening wordt geëvalueerd op het bladniveau van de as. Gemiddelde van bladniveau = EXPANDALL(GEMIDDELDE([Verkoopbedrag]), ROWS) N.v.t.
FIRST Verwijst naar de eerste rij van een as. ProfitVSFirst = [Winst] - FIRST([Winst]) INDEX(1)
ISATLEVEL Rapporteert of een opgegeven kolom aanwezig is op het huidige niveau. IsFiscalYearAtLevel = ISATLEVEL([Fiscaal jaar]) N.v.t.
LAST Verwijst naar de laatste rij van een as. ProfitVSLast = [Winst] - LAST([Winst]) INDEX(-1)
LOOKUP Evalueert een expressie in de visualmatrix met behulp van de huidige context. LookupSalesFor2025WithContext = LOOKUP(SUM([Sales]), [Year], "2025") N.v.t.
LOOKUPWITHTOTALS Evalueert een expressie in de visuele matrix, inclusief totalen. LookupSalesFor2025WithTotals = LOOKUPWITHTOTALS(SOM([Verkoop]), [Jaar], "2025") N.v.t.
MOVINGAVERAGE Hiermee wordt een zwevend gemiddelde op een as toegevoegd. MovingAverageSales = MOVINGAVERAGE([Verkoopbedrag], 2) WINDOW
NEXT Verwijst naar een volgende rij van een as. ProfitVSNext = [Winst] - NEXT([Winst]) OFFSET(1)
PREVIOUS Verwijst naar een vorige rij van een as. ProfitVSPrevious = [Winst] - PREVIOUS([Winst]) OFFSET(-1)
RANGE Verwijst naar een deel van de rijen van een as. AverageSales = AVERAGEX(RANGE(1), [Verkoopbedrag]) WINDOW
RUNNINGSUM Hiermee voegt u een lopende som toe op een as. RunningSumSales = RUNNINGSUM([Verkoopbedrag]) WINDOW

Parameters waarmee de berekeningsstroom wordt beheerd

Sommige visuele berekeningsfuncties accepteren optionele parameters die bepalen hoe de berekening de visualmatrix doorkruist:

  • Axis en Reset zijn specifiek voor visuele berekeningen. Ze verwijzen naar de visuele structuur in plaats van naar specifieke velden.
  • OrderBy en PartitionBy werkt ook in berekende kolommen en metingen. Ze verwijzen rechtstreeks naar velden.

In de volgende secties wordt elke parameter beschreven en wanneer u de ene parameter boven de andere gebruikt.

Axis

Veel functies hebben een optionele Axis parameter, die u alleen kunt gebruiken in visuele berekeningen. De Axis parameter beïnvloedt hoe de visuele berekening de visualmatrix doorkruist. De Axis parameter wordt standaard ingesteld op de eerste as in de visual. Voor veel visuals is de eerste as ROWS, wat betekent dat de visualberekening rij voor rij wordt geëvalueerd in de visuele matrix, van boven naar beneden. In de volgende tabel ziet u de geldige waarden voor de Axis parameter:

Axis pictogram Axis naam Beschrijving
ROWS Berekent verticaal tussen rijen van boven naar beneden.
COLUMNS Hiermee wordt horizontaal over kolommen van links naar rechts berekend.
ROWS COLUMNS Berekent verticaal over rijen heen van boven naar beneden en vervolgens kolom voor kolom van links naar rechts.
COLUMNS ROWS Berekeningen worden horizontaal over kolommen van links naar rechts uitgevoerd, en rij voor rij van boven naar beneden voortgezet.

Notitie

Als u een as opgeeft die niet aanwezig is in de visual, negeert de berekening die as.

Reset

Veel functies bevatten een optionele Reset parameter die u alleen kunt gebruiken in visuele berekeningen. De Reset parameter bepaalt of en wanneer de functie de waarde opnieuw instelt op 0 of overschakelt naar een ander bereik tijdens het doorlopen van de visualmatrix. Dit gedrag wordt bepaald door de doelkolom te partitioneren. Wanneer berekeningen plaatsvinden binnen een partitie, bepaalt hoe de kolom wordt onderverdeeld in partities of een berekening opnieuw wordt ingesteld.

De standaardwaarde voor de parameter Reset is NONE, wat betekent dat de visuele berekening nooit opnieuw wordt gestart.

De Reset parameter accepteert verschillende typen waarden:

  • Gehele getallen
  • Kolomverwijzingen
  • Speciale synoniemen: HIGHESTPARENT, LOWESTPARENTNONE

In elk geval geeft de parameter één niveau op in de hiërarchie van de visuele berekening (het doelniveau). Hoe de berekening dit niveau interpreteert, kan echter variëren.

Het Reset gedrag werkt in twee verschillende modi: absoluut en relatief.

Wanneer u gehele getallen gebruikt voor de parameter of de equivalenten daarvan NONE, HIGHESTPARENT en LOWESTPARENT, kunt u op basis van het teken van het gehele getal tussen deze twee modi kiezen: positieve waarden zorgen voor een reset in de absolute modus en negatieve waarden zorgen voor een reset in de relatieve modus (en nul voert helemaal geen reset uit; dat is het standaardgedrag).

Als u een kolomverwijzing opgeeft, werkt u ook in de absolute modus. Deze waarden bepalen hoe de doelkolom wordt gepartitioneerd en daarom als deze opnieuw wordt ingesteld. In de volgende secties worden deze twee modi beschreven:

Absolute resetstand

Absolute modus is een gedrag van de Reset parameter in visuele berekeningen. Deze modus geeft aan dat de berekening moet worden gepartitioneerd door de doelkolom en al die kolommen erboven. Deze regel is van toepassing op elk niveau in de berekening. Op niveaus boven de doelkolom (waar de doelkolom, en mogelijk ook andere kolommen, niet aanwezig is) wordt de berekening gepartitioneerd op basis van de overige beschikbare kolommen. De positieve geheel getalwaarde identificeert de doelkolom die begint vanaf de bovenkant (de bovenste kolom is 1, de volgende is 2, enzovoort). Het gaat omhoog naar N (het aantal kolommen in de hiërarchie) en eventuele hogere waarden worden ingekort. U kunt de kolom ook rechtstreeks opgeven.

Denk bijvoorbeeld aan een visuele berekening met deze hiërarchieniveaus: Year, Quarter, Month en Day. In de volgende tabel ziet u hoe de berekening op elk niveau wordt opgedeeld, afhankelijk van de waarde van Reset:

Niveau/waarde Reset = 1 of jaar Reset = 2 ofwel kwartaal Reset = 3 of maand Reset = 4 of dag
Dagniveau Jaar Kwartaal en jaar Maand, kwartaal en jaar Dag, Maand, Kwartaal en Jaar
Maandniveau Jaar Kwartaal en jaar Maand, kwartaal en jaar Maand, kwartaal en jaar
Kwartaalniveau Jaar Kwartaal en jaar Kwartaal en jaar Kwartaal en jaar
Jaarniveau Jaar Jaar Jaar Jaar
Eindtotaalniveau Geen Geen Geen Geen

Relatieve resetmodus

Relatieve modus is een gedrag van de Reset parameter in visuele berekeningen. Bij een negatieve geheel getalwaarde –X wordt de berekening op elk niveau gepartitioneerd op basis van alle kolommen die zich X of meer niveaus hoger in de hiërarchie bevinden (of helemaal niet als zo'n niveau niet bestaat). Geldige waarden voor deze modus liggen tussen -1 en -N+1 (waarbij N het aantal kolommen in de hiërarchie is) en eventuele lagere waarden worden bijgesneden. Overweeg nogmaals een visuele berekening met deze hiërarchieniveaus: Jaar, Kwartaal, Maand en Dag. De volgende tabel laat zien hoe de berekening op elk niveau wordt onderverdeeld, afhankelijk van de waarde van Reset

Niveau/waarde Reset = -1 Reset = -2 Reset = -3
Dagniveau Maand, kwartaal en jaar Kwartaal en jaar Jaar
Maandniveau Kwartaal en jaar Jaar Geen
Kwartaalniveau Jaar Geen Geen
Jaarniveau Geen Geen Geen
Eindtotaalniveau Geen Geen Geen

Parameter-synoniemen resetten

De Reset parameter bevat ook de volgende synoniemen:

  • NONE is de standaardwaarde. De berekening wordt niet opnieuw ingesteld en is gelijk aan 0.
  • HIGHESTPARENT voert een absolute reset op het hoogste niveau uit en is gelijk aan 1.
  • LOWESTPARENT voert een relatieve reset uit door de directe bovenliggende ouder, wat gelijk is aan -1.

Voorbeelden van het gebruik van de parameter Reset

Overweeg een visuele berekening met deze hiërarchieniveaus: Jaar, Kwartaal, Maand en Dag. De volgende visuele berekeningen zijn gelijkwaardig en retourneren de som van het verkoopbedrag dat elk jaar opnieuw wordt opgestart, ongeacht het niveau waarop de berekening wordt geëvalueerd (zie de absolute resetmodus):

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

De volgende visuele berekeningen retourneren daarentegen de som van het verkoopbedrag dat begint vanaf 0 voor elke directe bovenliggende instantie, afhankelijk van het niveau waarop de berekening wordt geëvalueerd (zie de relatieve resetmodus).

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

Ten slotte wordt deze visuele berekening niet opnieuw ingesteld en wordt de waarde verkoopbedrag voor elke dag toegevoegd aan de vorige waarden, zonder opnieuw op te starten.

RUNNINGSUM([Sales Amount])

OrderBy en PartitionBy

De parameter OrderBy accepteert ORDERBY, en de parameter PartitionBy accepteert PARTITIONBY. In tegenstelling tot Axis en Reset, kunt u deze parameters gebruiken in berekende kolommen, metingen en visuele berekeningen, en ze verwijzen rechtstreeks naar velden.

Niet alle functies bieden deze parameters. Functies die uitsluitend voor visuele berekeningen zijn, bieden geen parameter PartitionBy. Vensterfuncties bieden alleen een Reset parameter als u deze gebruikt in een visuele berekening. De Relation parameter voor vensterfuncties is beschikbaar, ongeacht of u deze in een visuele berekening gebruikt, maar accepteert alleen een Axis als u deze gebruikt in een visuele berekening.

Kiezen tussen deze parameters

U hoeft niet al deze parameters op te geven en u kunt ze combineren. Bepalen welke parameter u wilt gebruiken:

  • Geef de voorkeur aan Axis en Reset wanneer u veldonafhankelijk gedrag wilt dat de visuele structuur volgt. Het verwijzen naar de visuele structuur is flexibeler dan expliciet verwijzen naar velden.
  • Gebruik OrderBy en PartitionBy wanneer u de berekening wilt vastmaken aan specifieke velden, ongeacht de visuele indeling.
  • Gebruik PartitionBy in plaats van Reset wanneer de as slechts één niveau heeft. Reset verwacht meerdere niveaus op de as, dus dit werkt niet wanneer er slechts één veld is of wanneer er meerdere velden op één niveau op de as aanwezig zijn.

Parameterkiezers

Met parameterkiezers kunt u eenvoudig waarden selecteren voor parameters in visuele berekeningsfuncties. In de volgende afbeelding ziet u bijvoorbeeld dat de sjabloon Een waarde opzoeken met totalen is geladen:

Schermopname van de parameterkiezer.

U kunt de parameterkiezers ook activeren met behulp van de sneltoets Ctrl+SPATIEBALK .

Visuele berekeningssjablonen

Visuele berekeningen bevatten sjablonen, zodat u eenvoudiger algemene berekeningen kunt schrijven. Met de knop Sjabloon in de bewerkingsmodus voor visuele berekeningen wordt een menu met beschikbare sjablonen geopend.

Schermopname van het gebruik van sjablonen voor visuele berekeningen.

De volgende sjablonen zijn beschikbaar:

  • Lopende som. Berekent de som van waarden, waarbij de huidige waarde wordt toegevoegd aan de voorgaande waarden. Maakt gebruik van de RUNNINGSUM functie.
  • Voortschrijdend gemiddelde Berekent een gemiddelde van een set waarden in een bepaald venster door de som van de waarden te delen door de grootte van het venster. Maakt gebruik van de MOVINGAVERAGE functie.
  • Percentage ouder. Berekent het percentage van een waarde in relatie tot zijn ouder. Maakt gebruik van de COLLAPSE functie.
  • Percentage eindtotaal. Berekent het percentage van een waarde ten opzichte van alle waarden, met behulp van de COLLAPSEALL functie.
  • Gemiddeld van kinderen. Berekent een gemiddelde waarde van een reeks subwaarden. Maakt gebruik van de EXPAND functie.
  • Ten opzichte van de vorige. Vergelijkt een waarde met een voorgaande waarde met behulp van de PREVIOUS functie.
  • Versus volgende. Vergelijkt een waarde met een volgende waarde met behulp van de NEXT functie.
  • Versus eerst. Vergelijkt een waarde met de eerste waarde met behulp van de functie FIRST.
  • Versus laatste. Vergelijkt een waarde met de laatste waarde met behulp van de functie LAST.
  • Zoek een waarde op met context. Zoek een waarde of evalueer een expressie in de visualmatrix binnen de huidige context met behulp van de LOOKUP functie.
  • Zoek een waarde op inclusief totalen. Zoek een waarde of evalueer een expressie in de visualmatrix met totalen met behulp van de LOOKUPWITHTOTALS functie.

Velden verbergen in de visualisatie

In de bewerkingsmodus voor visuele berekeningen kunt u velden verbergen in de visual, net zoals u kolommen en tabellen in de modelweergave verbergt. Als u bijvoorbeeld alleen de visuele berekening Winst wilt weergeven, verbergt u Omzetbedrag en Totale productkosten uit de weergave.

Schermopname van het verbergen van elementen uit de weergave van een visual.

Als u velden verbergt, worden ze niet verwijderd uit de visual of uit de visualmatrix, zodat uw visuele berekeningen er nog steeds naar kunnen verwijzen en blijven werken. Er wordt nog steeds een verborgen veld weergegeven in de visualmatrix, maar wordt niet weergegeven in de resulterende visual. Voeg alleen verborgen velden toe als deze nodig zijn om uw visuele berekeningen te laten werken.

Een visuele berekening opmaken

Een visuele berekening opmaken met behulp van gegevenstypen en opmaakopties, of met een aangepaste indelingsreeks op visualniveau. De opties voor gegevensindeling in de sectie Algemeen van het opmaakvenster bepalen de opmaak.

Schermopname van de bewerkingsmodus voor visuele berekeningen met een visuele berekening die een percentage retourneert dat is opgemaakt als een percentage.

Overwegingen en beperkingen

Niet-ondersteunde visualtypen

Visuele berekeningen en verborgen velden werken niet met de volgende visuals:

  • Slicer, R-visual, Python-visual
  • Belangrijkste beïnvloeders, decompositieboom, Q&A, Smart Narrative
  • Metrische gegevens, gepagineerd rapport, Power Apps, Power Automate
  • Kleine veelvouden, afspeel-as in spreidingsgrafiek
  • Visuals op maat

Niet-ondersteunde functies

De volgende functies zijn niet beschikbaar voor visuele berekeningen:

Beperkingen voor publiceren en delen

Andere beperkingen

  • Veldparameters werken met visuele berekeningen, maar hebben enkele beperkingen.
  • Voor liveverbindingen met SQL Server Analysis Services is versie 2025 of hoger vereist.

Zie de volgende bronnen voor meer informatie over het gebruik van visuele berekeningen: