Desenrolando o DAX
Calculando o Percentual sobre o Total no Power BI
Quando iniciamos a criar relatórios com o Power BI, é natural que deparemos com inúmeras maneiras de realizar cálculos. Logo, a forma mais intuitiva para quem é iniciante na ferramenta é usar os cálculos pré-definidos no Power BI.
Por exemplo, para calcular a porcentagem total de vendas de óleo diesel de todos os estados brasileiros, temos as colunas de Estado (texto) e de Vendas (número).
Podemos usar uma das funções do Power BI para obter a porcentagem total de vendas por estado (a porcentagem total também pode ser chamada de Grand Total ou GT).
Usando os cálculos pré-definidos. Na área de Valores, temos a soma de Vendas e a porcentagem em relação total.
Acima visualizamos na matriz as vendas e a porcentagem de cada estado em relação ao total.
Os cálculos pré-definidos são práticos e úteis para cenários mais abrangentes. Mas vamos adicionar um filtro de estado e selecionar um deles.
Ao filtrar por Minas Gerais, o valor de vendas se manteve, porém, a coluna de porcentagem, %GT Vendas, ficou em 100%. Se adicionarmos outro estado…
Os valores também mudam. Ou seja, neste caso, a coluna %GT Vendas realiza o cálculo proporcional de vendas com base nos filtros selecionados.
E se, em vez responder aos filtros, quisermos a porcentagem em relação a todos os estados, mesmo se quisermos exibir apenas alguns estados?
Neste caso, podemos usar o poder das funções da linguagem DAX. Uma das vantagens de se usar fórmulas DAX, em detrimento das fórmulas pré-definidas, é proporcionar flexibilidade às análises, aumentando o número de possibilidades e adaptação de cálculos em cenários mais específicos.
Primeiro, vamos criar uma medida que soma o valor de Vendas. Neste caso, a coluna se chama “Vendas” e ela está na tabela “Vendas Município”. Para não confundir, vamos chamar a medida de “Soma Vendas”:
Soma Vendas = SUM('Vendas Município'[Vendas])
O próximo passo é criar uma medida de vendas de todos os estados. Para obtermos o resultado esperado, devemos usar duas funções novas: CALCULATE e ALL.
Vendas Todos os Estados = CALCULATE([Soma Vendas]; ALL('Vendas Município'[ESTADO]))
A medida se chama “Vendas Todos os Estados”. Se adicionarmos as medidas que criamos, veremos como elas se comportam.
A medida Soma Vendas faz o mesmo cálculo da coluna Vendas.
Já a medida Vendas Todos os Estados exibe o resultado total de todos os estados, independente de qual estado esteja selecionado.
Agora temos as medidas para calcular a porcentagem em relação a todos os estados.
% Vendas Estados = DIVIDE([Soma Vendas]; [Vendas Todos os Estados])
Lembre-se de formatar a medida em porcentagem.
Filtrando novamente Minas Gerais e Piauí:
Perceba que os valores de % Vendas Estados são os mesmos em relação ao %GT Vendas, quando não há filtros selecionados. Mas os valores de % Vendas Estados se mantêm ao filtrar os Estados, exibindo a porcentagem das vendas em relação a todos os estados.
Agora, entrando em detalhes na medida % Vendas Estados:
CALCULATE([Soma Vendas]; ALL('Vendas Município'[ESTADO]))
- Soma Vendas: é a medida que criamos anteriormente, que serve de base para o cálculo;
- ALL: considera todos os Estados;
- CALCULATE: estamos dizendo, nesta fórmula, para realizar o cálculo da medida Soma Vendas para TODOS os Estados.
Depois, dividimos as vendas por todas as vendas dos estados.
DIVIDE([Soma Vendas]; [Vendas Todos os Estados])
No final, usamos três medidas:
- Soma Vendas
- Vendas Todos os Estados
- % Vendas Estados
Vale reiterar que, no Power BI, há muitas formas de resolver o mesmo problema. E a forma apresentada aqui tem a vantagem de separar a lógica em três partes, tornando a legibilidade do código mais simples e abrindo a possibilidade de reutilizar as medidas em outros cenários.
Pergunta bônus: qual seria a fórmula DAX equivalente ao %GT Vendas?
Usamos a função ALLSELECTED em vez de ALL
= CALCULATE([Soma Vendas]; ALLSELECTED('Vendas Município'[ESTADO]))
Agora você pode desenrolar a função de cálculo de percentual sobre o valor total no Power BI. E aí? Gostou da nossa dica de DAX? Quer ficar por dentro de nossos artigos, dicas e conteúdos? Assine nossa Newsletter Mensal. Nos vemos na próxima! Até lá.