A função CALCULATE no Power BI avalia uma expressão, quase sempre uma medida, depois de alterar os filtros que estão valendo naquele momento.
Ela é a resposta para perguntas do tipo “quanto vendemos só no segmento X?”, “quanto foi no mesmo período do ano passado?” ou “qual a participação de cada canal no total?”.
A função CALCULATE é uma função do DAX capaze de modificar o contexto de filtro, ou seja, os filtros que estão valendo no relatório naquele momento.
Por isso quase todo indicador comparativo (ano anterior, acumulado no ano, meta vs. realizado, % do total, etc.) passa por ela.
Por outro lado, usada sem critério, ela gera números plausíveis, mas errados, e às vezes nenhum erro aparece.
Neste artigo, você vai entender em quais situações a CALCULATE é a escolha certa.
O que a função CALCULATE faz
CALCULATE muda os filtros antes de calcular. Todo uso da função cabe em uma de três ações:
- Adicionar um filtro;
- Substituir um filtro;
- Remover um filtro.
Sintaxe:
CALCULATE(expressão, filtro1, filtro2, ...)
Se a sua pergunta de negócio não exige mexer em nenhum filtro, você provavelmente não precisa da função CALCULATE. Guarde essa regra.
Considere como exemplo uma tabela de Vendas de uma loja de equipamentos de escritório, ligada a uma tabela de datas dCalendario pela coluna Data.
Tabela de vendas abaixo.

Abaixo a tabela dCalendario. Caso não saiba como criar uma tabela Calendario você pode acessar nosso artigo sobre o tema. Para os nossos exemplos apenas as colunas Data, Ano e Mês Nome serão o suficientes.

Abaixo o relacionamento entre as duas tabelas.

Vamos usar a medida com a função SUM abaixo como base para nossos exemplos.
Faturamento = SUM( Vendas[Valor] )
Quando usar a função CALCULATE
1. Isolar um segmento (adicionar filtro)
Use quando o indicador deve mostrar sempre um recorte específico, independentemente do visual onde for colocado.
Faturamento Corporativo =
CALCULATE(
[Faturamento],
Vendas[Segmento] = "Corporativo"
)
Resultado: R$ 19.390 no total geral, ou R$ 11.690 se o visual estiver filtrado em 2026. O filtro de ano continua valendo, porque a CALCULATE só mexeu na coluna Segmento.

2. Fixar um valor, mesmo com outro filtro ativo (substituir filtro)
Útil para meta vs. realizado ou para comparar tudo contra um ano-base.
Faturamento Ano-Base 2025 =
CALCULATE(
[Faturamento],
dCalendario[Ano] = 2025
)
Em uma matriz com o Ano nas linhas, o resultado fica assim:

Por que a linha de 2026 mostra 29.400?
Em cada linha da matriz, o Power BI filtra o ano daquela linha. Na linha de 2026, a medida [Faturamento] recebe o filtro “Ano = 2026” e soma R$ 53.920.
Já a medida Faturamento Ano-Base 2025 tem um filtro próprio na coluna Ano.
Como a coluna já estava filtrada, a função CALCULATE troca o 2026 da linha pelo 2025 da fórmula, e por isso o valor se repete em todas as linhas.
Esse é exatamente o comportamento esperado: o ano-base fica fixo como régua de comparação, seja qual for o ano que o usuário estiver olhando.
3. Calcular % do total (remover filtro)
O numerador respeita o filtro da linha; o denominador ignora a coluna que você quer “abrir”.
% Participação Canal =
DIVIDE(
[Faturamento],
CALCULATE(
[Faturamento],
REMOVEFILTERS( Vendas[Canal] )
)
)
Resultado em uma matriz por canal.
Para montar a matriz, coloque Canal em Linhas, Ano em Colunas e as medidas [Faturamento] e [% Participação Canal] em Valores. Cada bloco de ano recebe o seu próprio filtro automaticamente; você não precisa aplicar nenhum filtro manual.

Sem o REMOVEFILTERS, o denominador também seria filtrado pelo canal da linha, e todas as linhas mostrariam 100%.
Repare ainda que, ao filtrar 2026, o denominador vira R$ 53.920, e não R$ 83.320: só o canal foi removido, o ano continua filtrando.
Em outros exemplos, você vai encontrar a função ALL fazendo esse mesmo papel.
4. Comparar períodos (ano anterior e acumulado no ano)
As funções de inteligência de tempo utilizadas abaixo retornam um conjunto de datas, que entra na função CALCULATE como filtro.
Para entender um pouco mais sobre a função SAMEPERIODLASTYEAR, você pode acessar nosso artigo aqui.
Ano anterior
A SAMEPERIODLASTYEAR devolve as mesmas datas do período filtrado, só que um ano antes.
Na linha de março de 2026, ela entrega março de 2025, e a CALCULATE soma as vendas desse período (R$ 4.500).
Faturamento Ano Anterior =
CALCULATE(
[Faturamento],
SAMEPERIODLASTYEAR( dCalendario[Data] )
)

Acumulado no ano
A DATESYTD devolve as datas de 1º de janeiro até o fim do período filtrado.
Na linha de abril de 2026, ela entrega de 01/01/2026 a 30/04/2026, e a CALCULATE soma tudo (R$ 53.920).
Faturamento Acumulado Ano =
CALCULATE(
[Faturamento],
DATESYTD( dCalendario[Data] )
)

Crescimento
Esta medida não usa CALCULATE: ela só compara as duas anteriores. A DIVIDE evita erro quando o ano anterior não tem vendas.
Crescimento vs Ano Anterior =
DIVIDE( [Faturamento] - [Faturamento Ano Anterior], [Faturamento Ano Anterior] )

No exemplo, o acumulado de janeiro a abril de 2026 (R$ 53.920) contra o mesmo período de 2025 (R$ 29.400) dá um crescimento de 83,4%.
Para isso funcionar, a dCalendario precisa ter datas contínuas e estar marcada como tabela de datas. Veja o passo a passo em como criar uma tabela calendário no Power BI.
5. Filtrar por uma medida (ex.: só produtos com ticket alto)
O filtro simples (coluna = valor) só funciona com colunas que já existem na tabela. Uma medida, como o Ticket Médio, precisa saber para quem calcular; por isso usamos o FILTER, que passa produto por produto e guarda apenas os que atendem à condição.
Primeiro vamos criar a medida de ticket médio
O ticket médio é o faturamento dividido pela quantidade de pedidos. Usamos DISTINCTCOUNT porque ela conta cada pedido uma única vez: em bases reais, um mesmo pedido pode ocupar várias linhas, uma por item comprado.
Ticket Médio =
DIVIDE( [Faturamento], DISTINCTCOUNT( Vendas[Pedido] ) )
Na sequência vamos filtrar os produtos com ticket alto
Esta é a medida com CALCULATE. Ela soma o faturamento apenas dos produtos com ticket médio acima de R$ 3.000.
Faturamento Produtos Ticket Alto =
CALCULATE(
[Faturamento],
FILTER(
VALUES( Vendas[Produto] ),
[Ticket Médio] > 3000
)
)
O que acontece, passo a passo:
VALUES( fVendas[Produto] )monta a lista de produtos: Notebook, Mouse, Monitor, Cadeira etc.- O FILTER calcula o ticket médio de cada produto e guarda só os que passam de R$ 3.000: Notebook (R$ 11.833), Cadeira (R$ 6.425), Monitor (R$ 5.350) e Mesa (R$ 4.900).
- A CALCULATE usa essa lista como filtro e soma o faturamento só desses produtos: R$ 68.850.

Conclusão
A Função CALCULATE entra em cena sempre que o indicador precisa adicionar, substituir ou remover filtros antes de calcular, isolar um segmento, fixar um ano-base, calcular % do total, comparar períodos ou filtrar por uma medida.
Fora disso, ela costuma não ser usada.
Para aplicar no seu relatório, pegue as três medidas que mais geram dúvida no seu time e classifique cada uma: ela adiciona, substitui ou remove filtro?
Depois, teste cada uma com e sem seleção nos segmentadores e confira o total contra um valor conhecido.
Se o próximo passo for dominar comparações de período, comece pela base: uma tabela calendário bem construída e as medidas de inteligência de tempo no Power BI.
Sobre o Autor
2 Comentários
[…] crie uma segunda medida com a função CALCULATE, que usa a primeira para calcular a […]
[…] cada vendedor, CALCULATE(AVERAGE(Vendas[Valor da Venda])) calcula a média de vendas daquele vendedor específico, […]