De functie DIVIDE versus de operator divide (/)

Wanneer u als gegevensmodeleerder een DAX-expressie schrijft om een teller door een noemer te delen, kunt u kiezen of u de functie DIVIDE of de operator voor delen (/ - slash) wilt gebruiken.

Wanneer u de functie DIVIDE gebruikt, moet u de expressies opgeven in de teller en noemer. U kunt desgewenst een waarde opgeven die een alternatief resultaat vertegenwoordigt.

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

De functie DIVIDE is zo ontworpen dat deze delen door nul automatisch verwerkt. Als er geen alternatief resultaat wordt doorgegeven en de noemer nul of leeg is, retourneert de functie een leeg resultaat. Wanneer een alternatief resultaat is opgegeven, wordt dit geretourneerd in plaats van BLANK.

De functie voor delen is handig omdat deze voorkomt dat uw expressie eerst de waarde van de noemer moet testen. De functie is ook beter geoptimaliseerd voor het testen van de waarde van de noemer dan de functie IF. De prestaties zijn aanzienlijk verbeterd omdat de controle op delen door nul kostbaar kan zijn. Het verdere gebruik van DIVIDE levert een beknoptere en elegantere expressie op.

Voorbeeld

De volgende meetexpressie levert een veilige deling op, maar hiervoor worden vier DAX-functies gebruikt.

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

Deze meetexpressie levert hetzelfde resultaat op, maar is efficiënter en eleganter.

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

Aanbevelingen

Het is raadzaam om de functie DIVIDE te gebruiken wanneer de noemer een expressie is die nul of BLANK kan retourneren.

Als de noemer een constante waarde is, raden we u aan de operator voor delen te gebruiken. In dit geval is de deling gegarandeerd goed en wordt de expressie beter, omdat onnodige tests worden voorkomen.

Overweeg zorgvuldig of de functie DIVIDE een alternatieve waarde moet retourneren. Het is voor maateenheden meestal een beter ontwerp wanneer ze leeg worden geretourneerd. Dit komt doordat rapportvisualisaties standaard groeperingen elimineren wanneer samenvattingen leeg zijn. Hierdoor kan de visualisatie worden geconcentreerd op groepen die gegevens bevatten. Indien nodig kunt u in Power BI de visual zo configureren dat alle groepen (die waarden of BLANK retourneren) binnen de filtercontext worden weergegeven door de optie Items zonder gegevens weergeven in te stellen.

Zie ook