Referência · DAX (Power BI)
DAX: DIVIDE ou o operador / ?
Em DAX, dividir com o operador / e dividir com a função DIVIDE parecem a mesma coisa, mas tratam o divisor zero de jeitos diferentes. O operador devolve Infinity; o DIVIDE devolve vazio (BLANK) ou o valor que você escolher. Os resultados abaixo foram executados no Power BI Desktop.
Cada resultado desta página foi obtido executando a expressão no motor do Power BI Desktop (Analysis Services 17.0.57.16), em um Windows em português do Brasil. Um teste automático do Me Ajuda Flow confere que o texto da página é idêntico ao valor registrado. As expressões usam a sintaxe padrão do DAX (vírgula entre argumentos e ponto decimal); o editor do Power BI Desktop pode mostrar os separadores da configuração regional do Windows.
Exemplos executados
| Expressão | Resultado | Observação |
|---|---|---|
DIVIDE(1, 0) | BLANK() | Divisor zero: BLANK, sem erro. |
DIVIDE(1, 0, 0) | 0 | O terceiro parâmetro troca o BLANK por um valor, aqui 0. |
1 / 0 | Infinity | O operador / devolve Infinity, sem erro e sem aviso. |
DIVIDE(10, 4) | 2.5 | |
11 / 5 | 2.2 | DAX divide como decimal: 11 / 5 é 2,2. |
DIVIDE(BLANK(), 5) | BLANK() | Numerador vazio: o resultado também é BLANK. |
Pegadinhas
- 1 / 0 não dá erro: dá Infinity. Um Infinity em um visual quebra a escala do gráfico e se propaga para cálculos seguintes.
- DIVIDE devolve BLANK quando o divisor é zero ou vazio. No visual, o BLANK costuma sumir da linha, o que pode esconder um problema. Use o terceiro parâmetro (por exemplo, 0) se precisar de um número.
- BLANK e zero se comportam diferente em visuais. Uma linha com BLANK pode desaparecer; uma linha com 0 aparece.
- A divisão em DAX é decimal. Diferente do div do Power Automate, que com dois inteiros devolve um inteiro (por exemplo, div(75, 200) devolve 0).
Quando usar
- Use DIVIDE em medidas de percentual, margem e média, em que o divisor pode ser zero.
- Use o operador / quando o divisor nunca é zero e você quer o cálculo mais simples.
Perguntas frequentes
DIVIDE é mais lento que a barra?
A diferença costuma ser pequena. A recomendação da Microsoft é usar DIVIDE justamente para tratar o divisor zero com segurança.
O que acontece com um BLANK em uma conta?
Em somas e subtrações, BLANK age como zero. O resultado de uma divisão com numerador vazio, como mostra o exemplo, é BLANK.