Vermijd het converteren van BLANK's naar values
Als gegevensmodelleur kun je bij het schrijven van measure uitdrukkingen gevallen tegenkomen waarin een betekenisvolle value niet kan worden geretourneerd. In deze gevallen kunt u in plaats daarvan een value—dat lijkt op een nul—retourneren. U wordt aangeraden zorgvuldig te bepalen of dit ontwerp efficiënt is and praktisch.
Houd rekening met de volgende measure definitie die expliciet BLANK resultaten converteert naar nul.
Sales (No Blank) =
IF(
ISBLANK([Sales]),
0,
[Sales]
)
Overweeg een andere measure definitie die ook BLANK resultaten converteert naar nul.
Profit Margin =
DIVIDE([Profit], [Sales], 0)
De functie DIVIDE verdeelt de Winstmeasure door de Verkoopmeasure. Als het resultaat nul is orBLANK, wordt het derde argument( het alternatieve resultaat (optioneel) geretourneerd. Omdat in dit voorbeeld nul wordt doorgegeven als alternatief resultaat, wordt gegarandeerd dat de measure altijd een valueretourneert.
Deze measure ontwerpen zijn inefficiënt en and leiden tot slechte rapporten.
Wanneer ze aan een rapportvisual worden toegevoegd, probeert Power BI all groeperingen op te halen binnen de filter context. De evaluatie and het ophalen van grote queryresultaten leidt vaak tot trage rapportweergave. Elk voorbeeld zet measure een sparse berekening effectief om in een dense berekening, waardoor Power BI gedwongen wordt meer geheugen te gebruiken dan nodig is.
Bovendien overweldigen te veel groeperingen uw rapportgebruikers vaak.
Laten we eens kijken wat er gebeurt wanneer de Winstmargemeasure wordt toegevoegd aan een tabelvisual, gegroepeerd op klant.
In de tabelvisual wordt een overweldigend aantal rijen weergegeven. (Er zijn in fact 18.484 klanten in het model, and dus de tabel probeert all ervan weer te geven.) U ziet dat de klanten in de weergave geen verkopen hebben behaald. Maar omdat de winstmargemeasure altijd een valueretourneert, worden ze weergegeven.
Notitie
Wanneer er te veel gegevenspunten zijn om in een visual weer te geven, kan Power BI strategieën voor gegevensreductie gebruiken om orsummarize grote queryresultaten te verwijderen. Zie Gegevenspuntlimieten and strategieën per visueel typevoor meer informatie.
Laten we eens kijken wat er gebeurt wanneer de definitie van de winstmargemeasure wordt verbeterd. Het now geeft alleen een value terug wanneer de verkopenmeasure niet gelijk aan BLANK (or nul) zijn.
Profit Margin =
DIVIDE([Profit], [Sales])
In de tabelweergave now worden alleen klanten weergegeven die verkoop hebben gedaan binnen de huidige filter context. De verbeterde measure resulteert in een efficiëntere and praktische ervaring voor uw rapportgebruikers.
Fooi
Indien nodig kunt u een visual zo configureren dat all groeperingen (die valuesorBLANKretourneren) in de context van de filter worden weergegeven door de optie Items zonder gegevens weergeven in te schakelen.
Aanbeveling
Het is aan te raden dat uw metingen BLANK retourneren wanneer een zinvolle value niet kan worden geretourneerd.
Deze ontwerpbenadering is efficiënt, waardoor Power BI sneller rapporten kan weergeven. Het retourneren van BLANK is ook beter omdat standaard rapportvisuals groeperingen elimineren wanneer de samenvattingen worden BLANK.
inhoud Related
- Leer path: Gebruik DAX in Power BI Desktop
- Vragen? Vraag het aan de Power BI-community
- Suggesties? Bijdragen aan ideeën om Power BI te verbeteren