Del via


DIVIDE funksjon kontra divideringsoperator (/)

Når du som datamodellerer skriver et DAX uttrykk for å dele en teller med en nevner, kan du velge å bruke DIVIDE-funksjonen eller deleoperatoren (/ - skråstrek).

Når du bruker DIVIDE-funksjonen, må du sende inn teller- og nevneruttrykk. Du kan eventuelt sende inn en verdi som representerer et alternativt resultat.

DIVIDE(<numerator>, <denominator> [,<alternateresult>])

Funksjonen DIVIDE ble utformet for automatisk å håndtere deling etter null tilfeller. Hvis et alternativt resultat ikke sendes inn, og nevneren er null eller BLANK, returnerer funksjonen BLANK. Når et alternativt resultat sendes inn, returneres det i stedet for BLANK.

Funksjonen DIVIDE er praktisk fordi den lagrer uttrykket fra å først teste nevnerverdien. Funksjonen er også bedre optimalisert for testing av nevnerverdien enn IF-funksjonen. Ytelsesgevinsten er betydelig siden det er dyrt å se etter divisjon med null. Videre bruk av DIVIDE resulterer i et mer konsis og elegant uttrykk.

Eksempel

Følgende måluttrykk produserer en sikker divisjon, men det innebærer å bruke fire DAX funksjoner.

Profit Margin =
IF(
    OR(
        ISBLANK([Sales]),
        [Sales] == 0
    ),
    BLANK(),
    [Profit] / [Sales]
)

Dette måluttrykket oppnår det samme resultatet, men likevel mer effektivt og elegant.

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

Anbefalinger

Det anbefales at du bruker DIVIDE-funksjonen når nevneren er et uttrykk som kan returnere null eller BLANK.

Hvis nevneren er en konstant verdi, anbefaler vi at du bruker deleoperatoren. I dette tilfellet er delingen garantert å lykkes, og uttrykket ditt vil fungere bedre fordi det vil unngå unødvendig testing.

Vurder nøye om DIVIDE-funksjonen skal returnere en alternativ verdi. For mål er det vanligvis en bedre utforming at de returnerer BLANK. Det er bedre å returnere BLANK fordi rapportvisualobjekter som standard eliminerer grupperinger når oppsummeringer er BLANK. Det gjør det mulig for visualobjektet å fokusere oppmerksomheten på grupper der det finnes data. Når det er nødvendig, kan du konfigurere visualobjektet til å vise alle grupper (som returnerer verdier eller BLANK) i filterkonteksten ved å aktivere alternativet Vis elementer uten data.