Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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])
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.
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.
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:
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.
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.
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.
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:
- Filteren, sorteren of aggregaties wijzigen
- Zelfverwijzend (een berekening kan niet naar zichzelf verwijzen)
- Kopiëren en plakken of hergebruiken in visuele elementen
- Gegevenscategorieën, gegevenslimieten of items zonder gegevens weergeven
- Tekenreeksen met dynamische opmaak (kunnen niet worden ingesteld of gebruikt als opmaaktekenreeks)
- Personalisatie van visuele berekeningen of verborgen velden
- U kunt waarschuwingen instellen voor visuele berekeningen, maar wijzigingen in visuele berekeningswaarden activeren de waarschuwingen niet.
- Drill-through van records bekijken
- IntelliSense ingesloten in Power BI
Beperkingen voor publiceren en delen
- Kan niet vastzetten aan dashboards
- Kan publiceren op internet niet gebruiken
- Gegevensexport sluit visuele berekeningsresultaten uit; verborgen velden worden alleen weergegeven in onderliggende gegevensexports
Andere beperkingen
- Veldparameters werken met visuele berekeningen, maar hebben enkele beperkingen.
- Voor liveverbindingen met SQL Server Analysis Services is versie 2025 of hoger vereist.
Verwante inhoud
Zie de volgende bronnen voor meer informatie over het gebruik van visuele berekeningen:
- Visuele berekeningen maken
- Trainingsmodule: Visuele berekeningen maken in Power BI Desktop
- Berekeningsopties gebruiken in Power BI Desktop
- Metingen maken voor gegevensanalyse in Power BI Desktop
- Tabelvisualisaties maken en opmaken in Power BI- bevat aangepaste totalen, die worden mogelijk gemaakt door visuele berekeningen.