Dela via


DIVIDE function vs. divide operator (/)

Som datamodellerare, när du skriver ett DAX-uttryck för att dela en täljare med en nämnare kan du välja att använda funktionen DIVIDE eller operatorn för division (/ - snedstreck).

När du använder funktionen DIVIDE måste du skicka in täljar- och nämnaruttryck. Du kan också skicka in ett värde som representerar ett alternativt resultat.

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

Funktionen DIVIDE har utformats för att automatiskt hantera fall av division med noll. Om ett alternativt resultat inte skickas och nämnaren är noll eller BLANKreturnerar funktionen BLANK. När ett alternativt resultat skickas in returneras det i stället för BLANK.

Funktionen DIVIDE är praktisk eftersom den sparar uttrycket från att först behöva testa nämnarens värde. Funktionen är också bättre optimerad för att testa nämnarens värde än funktionen IF. The performance gain is significant since checking for division by zero is expensive. Ytterligare användning av DIVIDE resulterar i ett mer koncist och elegant uttryck.

Exempel

Följande måttuttryck skapar en säker division, men det innebär att du använder fyra DAX funktioner.

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

Det här måttuttrycket uppnår samma resultat, men ändå mer effektivt och elegant.

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

Rekommendationer

It's recommended that you use the DIVIDE function whenever the denominator is an expression that could return zero or BLANK.

Om nämnaren är ett konstant värde rekommenderar vi att du använder divideringsoperatorn. In this case, the division is guaranteed to succeed, and your expression will perform better because it will avoid unnecessary testing.

Fundera noga på om funktionen DIVIDE ska returnera ett alternativt värde. For measures, it's usually a better design that they return BLANK. Returning BLANK is better because report visuals—by default—eliminate groupings when summarizations are BLANK. Det gör att det visuella objektet kan fokusera på grupper där data finns. Vid behov kan du i Power BI konfigurera det visuella objektet så att det visar alla grupper (som returnerar värden eller BLANK) i filterkontexten genom att aktivera alternativet Visa objekt utan data.