Compartilhar via


Evite converter BLANKs em valores

Como modelador de dados, ao escrever expressões de medida, você pode encontrar casos em que um valor significativo não pode ser retornado. Nesses casos, você pode ser tentado a retornar um valor, como zero, em vez disso. Sugere-se que você determine cuidadosamente se esse design é eficiente e prático.

Considere a definição de medida a seguir que converte explicitamente os resultados BLANK em zero.

Sales (No Blank) =
IF(
    ISBLANK([Sales]),
    0,
    [Sales]
)

Considere outra definição de medida que também converte os resultados BLANK em zero.

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

A função DIVIDE divide a medida Profit pela medida Sales. Se o resultado for zero ou BLANK, o terceiro argumento — o resultado alternativo (que é opcional)— será retornado. Neste exemplo, como zero é passado como o resultado alternativo, a medida é garantida para sempre retornar um valor.

Esses designs de medida são ineficientes e levam a designs de relatório ruins.

Quando eles são adicionados a um visual de relatório, o Power BI tenta recuperar todos os agrupamentos dentro do contexto de filtro. A avaliação e a recuperação de resultados de consulta grandes geralmente levam à renderização lenta do relatório. Cada medida de exemplo efetivamente transforma um cálculo esparso em um denso, forçando o Power BI a usar mais memória do que o necessário.

Além disso, muitos agrupamentos geralmente sobrecarregam os usuários do relatório.

Vamos conferir o que acontece quando a medida Profit Margin é adicionada a um visual de tabela, agrupando por cliente.

Captura de tela do Power B I Desktop mostrando visual da tabela com dados com uma linha por cliente. Os valores de vendas são BLANK e os valores de Margem de Lucro são zero por cento.

O visual da tabela exibe um número enorme de linhas. (Na verdade, há 18.484 clientes no modelo e, portanto, a tabela tenta exibir todos eles.) Observe que os clientes em exibição não alcançaram nenhuma venda. No entanto, como a medida Margem de Lucro sempre retorna um valor, elas são exibidas.

Nota

Quando há muitos pontos de dados a serem exibidos em um visual, o Power BI pode usar estratégias de redução de dados para remover ou resumir grandes resultados de consulta. Para mais informações, consulte Limites e estratégias de pontos de dados por tipo visual.

Vamos ver o que acontece quando a definição da medida margem de lucro é aprimorada. Agora, ele retorna um valor somente quando a medida de vendas não seja BLANK (ou zero).

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

O visual da tabela agora exibe apenas os clientes que fizeram vendas dentro do contexto de filtro atual. A medida aprimorada resulta em uma experiência mais eficiente e prática para os usuários do relatório.

Captura de tela do Power BI Desktop mostrando o visual da tabela de dados que tem conteúdo filtrado.

Dica

Quando necessário, você pode configurar um visual para exibir todos os agrupamentos (que retornam valores ou BLANK) dentro do contexto de filtro, habilitando a opção Mostrar Itens Sem Dados.

Recomendação

É recomendável que suas medidas retornem BLANK quando um valor significativo não puder ser retornado.

Essa abordagem de design é eficiente, permitindo que o Power BI renderize relatórios mais rapidamente. Além disso, retornar BLANK é melhor porque os visuais de relatório, por padrão, eliminam agrupamentos quando os resumos são BLANK.