Unngå å konvertere BLANK-er til verdier

Når du skriver måluttrykk, kan du som datamodellerer komme over tilfeller der en meningsfull verdi ikke kan returneres. I disse tilfellene kan du bli fristet til å returnere en verdi, for eksempel null, i stedet. Det foreslås at du nøye fastslår om denne utformingen er effektiv og praktisk.

Vurder følgende måldefinisjon som eksplisitt konverterer BLANK-resultater til null.

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

Vurder en annen måldefinisjon som også konverterer BLANK-resultater til null.

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

DIVIDE-funksjonen deler fortjenestemålet med salgsmålet. Skulle resultatet være null eller BLANK, returneres det tredje argumentet – det alternative resultatet (som er valgfritt). I dette eksemplet, fordi null sendes som det alternative resultatet, er målet garantert å alltid returnere en verdi.

Disse målutformingene er ineffektive og fører til dårlige rapportutforminger.

Når de legges til i et visualobjekt for rapporter, prøver Power BI å hente alle grupperinger i filterkonteksten. Evaluering og henting av store spørringsresultater fører ofte til treg rapportgjengivelse. Hvert eksempelmål gjør effektivt en sparsom beregning til en tett en, noe som tvinger Power BI til å bruke mer minne enn nødvendig.

For mange grupperinger overvelder også ofte rapportbrukerne.

La oss se hva som skjer når mål for fortjenestemargin legges til i et tabellvisualobjekt og grupperer etter kunde.

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.

Tabellvisualobjektet viser et overveldende antall rader. (Det er faktisk 18 484 kunder i modellen, og derfor forsøker tabellen å vise alle.) Legg merke til at kundene i visningen ikke har oppnådd noen salg. Likevel, fordi mål for fortjenestemargin alltid returnerer en verdi, vises de.

Merk

Når det er for mange datapunkter å vise i et visualobjekt, kan Power BI bruke strategier for datareduksjon til å fjerne eller oppsummere store spørringsresultater. Hvis du vil ha mer informasjon, kan du se Datapunktgrenser og strategier etter visuell type.

La oss se hva som skjer når måldefinisjonen for fortjenestemargin er forbedret. Den returnerer nå bare en verdi når salgsmålet ikke er BLANK (eller null).

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

Tabellvisualobjektet viser nå bare kunder som har gjort salg i gjeldende filterkontekst. Den forbedrede målingen gir en mer effektiv og praktisk opplevelse for rapportbrukerne.

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

Tips

Når det er nødvendig, kan du konfigurere et visualobjekt til å vise alle grupperinger (som returnerer verdier eller BLANK) i filterkonteksten ved å aktivere alternativet Vis elementer uten data .

Anbefaling

Det anbefales at målene returnerer BLANK når en meningsfull verdi ikke kan returneres.

Denne utformingstilnærmingen er effektiv, slik at Power BI kan gjengi rapporter raskere. Det er også bedre å returnere BLANK fordi rapportvisualobjekter, som standard, eliminerer grupperinger når oppsummeringer er BLANK.