DAX: Funkce DIVIDE vs. operátor dělení (/)DAX: DIVIDE function vs divide operator (/)

Když jako modelátor dat píšete výraz jazyka DAX, který má dělit čitatele jmenovatelem, můžete použít funkci DIVIDE nebo operátor dělení (/ – lomítko).As a data modeler, when you write a DAX expression to divide a numerator by a denominator, you can choose to use the DIVIDE function or the divide operator (/ - forward slash).

Když použijete funkci DIVIDE, musíte jí předat výrazy čitatele a jmenovatele.When using the DIVIDE function, you must pass in numerator and denominator expressions. Volitelně můžete této funkci předat hodnotu, která představuje alternativní výsledek.Optionally, you can pass in a value that represents an alternate result.

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

Funkce DIVIDE byla navržena tak, aby automaticky řešila případy dělení nulou.The DIVIDE function was designed to automatically handle division by zero cases. Pokud je jmenovatel nula nebo prázdná hodnota (BLANK) a funkci není předán alternativní výsledek, vrátí funkce prázdnou hodnotu.If an alternate result is not passed in, and the denominator is zero or BLANK, the function returns BLANK. Pokud je ale funkci předán alternativní výsledek, funkce ho vrátí místo prázdné hodnoty.When an alternate result is passed in, it's returned instead of BLANK.

Funkce DIVIDE je výhodná, protože ve výrazu nemusíte nejdříve testovat hodnotu jmenovatele.The DIVIDE function is convenient because it saves your expression from having to first test the denominator value. Tato funkce je také lépe optimalizovaná pro testování hodnoty jmenovatele než funkce IF.The function is also better optimized for testing the denominator value than the IF function. Zvýšení výkonu je značné, protože kontrola dělení nulou je náročná.The performance gain is significant since checking for division by zero is expensive. Použití funkce DIVIDE také vede ke kratšímu a elegantnějšímu výrazu.Further using DIVIDE results in a more concise and elegant expression.

PříkladExample

Následující výraz míry zajistí bezpečné dělení, ale vyžaduje použití čtyř funkcí jazyka DAX.The following measure expression produces a safe division, but it involves using four DAX functions.

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

Tento výraz míry dosáhne stejného výsledku, ale efektivněji a elegantněji:This measure expression achieves the same outcome, yet more efficiently and elegantly.

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

DoporučeníRecommendations

Když je jmenovatel tvořený výrazem, který by mohl vrátit nulu nebo prázdnou hodnotu (BLANK), doporučujeme použít funkci DIVIDE.We recommend that you use the DIVIDE function whenever the denominator is an expression that could return zero or BLANK.

V případě, že jmenovatel je konstantní hodnota, doporučujeme použít operátor dělení.In the case that the denominator is a constant value, we recommend that you use the divide operator. V tomto případě je zaručeno, že dělení bude úspěšné, a váš výraz se bude chovat lépe, protože se vyhnete zbytečnému testování.In this case, the division is guaranteed to succeed, and your expression will perform better because it will avoid unnecessary testing.

Pečlivě zvažte, jestli má funkce DIVIDE vracet alternativní hodnotu.Carefully consider whether the DIVIDE function should return an alternate value. Pro míry je obvykle lepší vzorec, který alternativně vrací prázdnou hodnotu.For measures, it's usually a better design that they return BLANK. Důvodem je to, že vizuály sestavy ve výchozím nastavení eliminují seskupení, když jsou sumarizace prázdné (BLANK).Returning BLANK is better because report visuals—by default—eliminate groupings when summarizations are BLANK. Díky tomu se vizuál může soustředit na skupiny, ve kterých existují data.It allows the visual to focus attention on groups where data exists. V případě potřeby můžete vizuál nakonfigurovat tak, aby v kontextu filtru zobrazil všechny skupiny (které vracejí hodnoty nebo hodnotu BLANK) tím, že povolíte možnost Zobrazit položky, které neobsahují data.When necessary, you can configure the visual to display all groups (that return values or BLANK) within the filter context by enabling the Show items with no data option.

Další krokyNext steps

Další informace k tomuto článku najdete v následujících tématech:For more information about this article, check out the following resources: