Explorando a Flexibilidade da Função CALCULATE no Power BI
- #Power BI
O que é o Power BI ?
- É um serviço de análise de negócios e análise de dados baseado em nuvem da Microsoft que fornece visualizações interativas com recursos de business intelligence de autoatendimento.
No cenário atual de análise de dados, ferramentas como o Power BI desempenham um papel incisivo ao transformar grandes volumes de informações em dados práticos.
Entre as funcionabilidades avançadas que ampliam a capacidade de análise do Power BI, destaca-se o comando CALCULATE parte integrante da linguagem DAX (Data Analysis Expressions).
O que é o comando CALCULATE no Power BI?
O CALCULATE no Power BI funciona de maneira análoga ao processo de resolver um quebra-cabeça complexo, pois permite aos usuários encaixar diferentes filtros e condições para obter uma visão analítica completa e precisa dos dados recebidos.
Assim como cada peça de um quebra-cabeça contribui para formar uma imagem completa, o CALCULATE permite integrar e ajustar variáveis para revelar padrões, tendências e correlações.
Tal funcionabilidade é crucial para a tomada de decisões fundamentadas em um dashboard de análise detalhada e confiável.
Sintaxe básica:
CALCULATE(<expression>, <filter1>, <filter2>, ...)
- <expression>: A expressão DAX que você deseja avaliar após aplicar os filtros.
- <filter1>, <filter2>, ...: São os filtros que você quer aplicar à <expression>.
Exemplo prático:
Vamos supor que você tem uma tabela no Power BI que contém dados de vendas de produtos e você quer calcular a soma das vendas apenas para produtos vendidos no Brasil.
Imagine que você tem uma medida chamada “Total Vendas” que simplesmente calcula a soma das vendas de todos os produtos.
O código ficará assim:
DAX
Total Vendas = SUM(Sales[Amount])
→ Esta medida “Total Vendas” vai somar todas as vendas sem aplicar nenhum filtro adicional, certo.
Agora ao usar o CALCULATE para aplicar um filtro - O cálculo da soma das vendas será apenas para produtos vendidos no Brasil.
O código ficará assim:
Total Vendas BR = CALCULATE(
SUM(Sales[Amount]),
Sales[Country] = "BR"
)
→ A expressão que calcula a soma das vendas é o SUM(Sales[Amount])
→ "BR" é o filtro aplicado usando o CALCULATE.
→ E a expressão SUM(Sales[Amount]) será calculada apenas para os registros onde o país de venda é "BR".
Exemplo do uso do CALCULATE:
🔍 Aplicação de Filtros:
Suponha que você tenha uma tabela de vendas com as seguintes colunas: “Data”, “Produto”, “Quantidade”, “Valor” e você deseja calcular a soma das vendas apenas para produtos específicos em um determinado período de tempo.
1°Para calcular a soma dos valores de vendas use: SUM('TabelaVendas'[Valor]);
2° Para filtrar apenas os produtos (A e B) use: 'TabelaVendas'[Produto] = "Produto A" || 'TabelaVendas'[Produto] = "Produto B";
3° Para filtrar as vendas dentro do ano de 2023 use: 'TabelaVendas'[Data] >= DATE(2023, 1, 1) && 'TabelaVendas'[Data] <= DATE(2023, 12, 31).
O código ficará assim:
TotalVendasProdutosSelecionados =
CALCULATE(
SUM('TabelaVendas'[Valor]),
'TabelaVendas'[Produto] = "Produto A" || 'TabelaVendas'[Produto] = "Produto B",
'TabelaVendas'[Data] >= DATE(2023, 1, 1) && 'TabelaVendas'[Data] <= DATE(2023, 12, 31)
)
🔧 Alteração do Contexto de Filtro:
Suponha que você queira calcular a média de vendas de produtos apenas para o ano atual, independentemente de quaisquer filtros aplicados ao relatório.
1° Calcule a média dos valores de vendas = AVERAGE('TabelaVendas'[Valor]);
2° Agora altere o contexto de filtro para considerar apenas as vendas do ano atual = YEAR('TabelaVendas'[Data]) = YEAR(TODAY()) .
- OBS.: (YEAR(TODAY()) retorna o ano atual, OK!👍🏻
O código ficará assim:
MediaVendasAnoAtual =
CALCULATE(
AVERAGE('TabelaVendas'[Valor]),
YEAR('TabelaVendas'[Data]) = YEAR(TODAY())
🔒 Adição de Condições Lógicas:
Suponha que você queira calcular a soma de vendas apenas para produtos com quantidade vendida superior a 100 unidades.
1° Adicione uma condição lógica para filtrar apenas as vendas onde a quantidade vendida é maior que 100.
- 'TabelaVendas'[Quantidade] > 100
O código ficará assim:
TotalVendasQuantidadeSuperior100 =
CALCULATE(
SUM('TabelaVendas'[Valor]),
'TabelaVendas'[Quantidade] > 100
Exemplo do funcionamento do CALCULATE:
CONTEXTO:
- O calcule a seguir será feito a partir da quantidade total de vendas apenas para produtos que pertencem a uma categoria específica ("Eletrônicos").
- Suponha que temos uma tabela de vendas com as seguintes colunas: “Produto”, “Categoria”, “Quantidade” e “Valor”.
1° Filtragem sem CALCULATE:
A fórmula para calcular a quantidade total de vendas para "Eletrônicos" seria assim:
Total_Vendas_Eletronicos =
SUMX(
FILTER(
Vendas,
Vendas[Categoria] = "Eletrônicos"
),
Vendas[Quantidade]
)
→ É preciso usar o FILTER para aplicar um filtro na tabela Vendas, para garantir que apenas as linhas onde a categoria é "Eletrônicos" seja considerada ao calcular a soma das quantidades vendidas.
2° Filtragem com CALCULATE:
Total_Vendas_Eletronicos_Calculate =
CALCULATE(
SUM(Vendas[Quantidade]),
Vendas[Categoria] = "Eletrônicos"
)
→ Já aqui o CALCULATE está sendo usado para modificar o contexto de filtragem substituindo o contexto de filtragem atual (que poderia ser mais amplo) para garantir que apenas as vendas da categoria "Eletrônicos" sejam somadas.
📌Importante:
- Para aplicar um filtro localizado use: FILTER.
- Para modificar o contexto de filtragem de forma global para toda a expressão DAX use: CALCULATE.
🧩 Funções internas do comando CALCULATE no Power BI?
- Filtragem - o comando permite a filtragem das expressões DAX para controlar os filtros aplicados nos cálculos.
- Uso de Filtro utiliza funções de filtro como FILTER, ALL, VALUES para modificar o contexto de avaliação das expressões DAX, controlando quais filtros são aplicados ou removidos.
- Operação de Avaliação: Quando o CALCULATE é usado, o Power BI reavalia as expressões DAX com base em novos contextos, impactando diretamente os resultados das medidas ou cálculos.
- Hierarquia de Contextos: O CALCULATE no Power BI ajusta a hierarquia de contextos (filtro, linha, coluna, etc.), garantindo cálculos precisos e controlados conforme necessidade.
🚀 Benefícios do uso do CALCULATE:
- Simplifica a criação e a manutenção de dashboards dinâmicos e interativos;
- Permite que as organizações realizem análises profundas e informadas para orientar decisões estratégicas fundamentais;
- Otimiza o desempenho de consultas ao permitir a pré-computação de resultados complexos e a minimização do número de cálculos repetitivos, especialmente útil em ambientes com grandes volumes de dados;
- Permite que os usuários controlem o contexto de filtragem em suas análises, como datas, regiões, categorias, etc.