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 det inte går att returnera något meningsfullt värde. Då kan det vara lockande att istället returnera ett neutralt värde, som noll. Vi föreslår att du noggrant fastställer om den här designen är effektiv och praktisk.

Titta på följande måttdefinition som explicit omvandlar tomma resultat till noll.

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

Titta på en annan måttdefinition som också omvandlar tomma resultat till noll.

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

Funktionen DIVIDE delar måttet Profit med måttet Sales. Om resultatet är noll eller tomt returneras det tredje argumentet, det alternativa resultatet (som är valfritt). Eftersom noll skickas som alternativt resultat i exemplet så returnerar måttet alltid ett värde.

En sådan måttdesign är ineffektiv och leder till dåligt fungerande rapporter.

När de läggs till i ett visuellt rapportobjekt försöker Power BI hämta alla grupperingar inom filterkontexten. Utvärdering och hämtning av stora frågeresultat gör ofta att rapportåtergivningen tar lång tid. Varje mått i exemplet gör en gles beräkning till en tät, så att Power BI måste använda mer minne än nödvändigt.

För många grupperingar kan också vara förvirrande för användarna.

Nu ska vi se vad som händer när måttet Profit Margin läggs till i ett visuellt tabellobjekt med gruppering efter kund.

Skärmbild av Power B I Desktop med tabellvisuella data med en rad per kund. Försäljningsvärdena är BLANK och Profit Margin-värdena är noll procent.

Det visuella tabellobjektet har ett orimligt stort antal rader. (Det finns i själva verket 18 484 kunder i modellen, och tabellen försöker visa samtliga.) Observera att kunderna i vyn inte har någon försäljning. Men eftersom måttet Profit Margin alltid returnerar ett värde så visas de ändå.

Anteckning

När det finns för många datapunkter att visa i ett visuellt objekt kan Power BI använda strategier för datareducering till att ta bort eller sammanfatta stora frågeresultat. Läs mer om det här i Datapunktsbegränsningar och strategier efter visuell typ.

Nu ska vi se vad som händer med en bättre definition av måttet Profit Margin. Nu returneras bara ett värde när måttet Sales inte är tomt (eller noll).

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

Nu visas bara kunder som har en försäljning i den aktuella filterkontexten i det visuella tabellobjektet. Det förbättrade måttet gör rapportmiljön mer effektiv och praktisk för användarna.

Skärmbild av Power BI Desktop som visar tabellvisuellt data som har filtrerat innehåll.

Tips

Om det behövs kan du konfigurera det visuella objektet så att alla grupperingar visas (de som returnerar värden eller är tomma) i filterkontexten genom att aktivera alternativet Visa poster 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 och gör att Power BI kan återge rapporter snabbare. Det är också bättre att returnera BLANK eftersom visuella rapportobjekt som standard eliminerar grupperingar med tomma summor.

Se även