Dela via


Undvik att omvandla tomma värden till värden

När du skriver måttuttryck som datamodellerare kan du stöta på fall där ett meningsfullt värde inte kan returneras. I dessa fall kan du vara frestad att returnera ett värde, till exempel noll, i stället. Vi föreslår att du noggrant avgör om den här designen är effektiv och praktisk.

Tänk på följande måttdefinition som uttryckligen konverterar BLANK-resultat till noll.

Sales (No Blank) =
IF(
    ISBLANK([Sales]),
    0,
    [Sales]
)

Överväg en annan måttdefinition som också konverterar BLANK-resultat till noll.

Profit Margin =
DIVIDE([Profit], [Sales], 0)

Funktionen DIVIDEra måttet Vinst med måttet Försäljning . Om resultatet blir noll eller BLANK returneras det tredje argumentet – det alternativa resultatet (som är valfritt). I det här exemplet, eftersom noll skickas som alternativt resultat, är måttet garanterat att alltid returnera ett värde.

Dessa måttdesign är ineffektiva och leder till dålig rapportdesign.

När de läggs till i ett visuellt rapportobjekt försöker Power BI hämta alla grupper i filterkontexten. Utvärdering och hämtning av stora frågeresultat leder ofta till långsam rapportåtergivning. Varje exempelmått omvandlar effektivt en gles beräkning till en tät beräkning, vilket tvingar Power BI att använda mer minne än nödvändigt.

Alltför många grupperingar överbelastar ofta dina rapportanvändare.

Nu ska vi se vad som händer när måttet Vinstmarginal läggs till i ett visuellt tabellobjekt och grupperas efter kund.

Screenshot of Power B I Desktop showing table visual of data with one row per customer. Sales values are BLANK and Profit Margin values are zero per cent.

Det visuella tabellobjektet visar ett överväldigande antal rader. (Det finns faktiskt 18 484 kunder i modellen, så tabellen försöker visa dem alla.) Observera att kunderna i vyn inte har uppnått någon försäljning. Men eftersom måttet Vinstmarginal alltid returnerar ett värde visas de.

Kommentar

När det finns för många datapunkter att visa i ett visuellt objekt kan Power BI använda strategier för dataminskning för att ta bort eller sammanfatta stora frågeresultat. Mer information finns i Datapunktsgränser och strategier efter visuell typ.

Nu ska vi se vad som händer när måttdefinitionen för vinstmarginal har förbättrats. Nu returneras bara ett värde när måttet Försäljning inte är BLANK (eller noll).

Profit Margin =
DIVIDE([Profit], [Sales])

Det visuella tabellobjektet visar nu endast kunder som har gjort försäljning inom den aktuella filterkontexten. Det förbättrade måttet ger en mer effektiv och praktisk upplevelse för rapportanvändarna.

Screenshot of Power BI Desktop showing table visual of data that has filtered content.

Dricks

Vid behov kan du konfigurera ett visuellt objekt för att visa alla grupper (som returnerar värden eller BLANK) i filterkontexten genom att aktivera alternativet Visa objekt utan data .

Rekommendation

Vi rekommenderar att dina mått returnerar BLANK när ett meningsfullt värde inte kan returneras.

Den här designmetoden är effektiv, vilket gör att Power BI kan återge rapporter snabbare. Dessutom är det bättre att returnera BLANK eftersom visuella rapportobjekt som standard eliminerar grupperingar när sammanfattningar är TOMMA.