Filtros de contexto no DAX: O guia definitivo para dominar o comportamento das suas medidas

Se você trabalha com Power BI, provavelmente já se deparou com uma medida que não retornava o valor esperado. E, muitas vezes, o "culpado" é ele: o filtro de contexto. Neste post, vamos mergulhar fundo nos filtros de contexto no DAX, entendendo como eles funcionam, como impactam seus cálculos e, o mais importante, como controlá-los para que você tenha total domínio sobre o comportamento das suas medidas. Prepare-se para um guia definitivo, repleto de exemplos práticos e explicações claras!

POWER BIDICASFILTROS

Henrique Bueno

4/24/20253 min read

O que é filtro de contexto no DAX?

No DAX, filtro de contexto é a regra que define "qual subconjunto dos dados será considerado" durante a execução de um cálculo.

Em outras palavras: quando você usa uma medida em um gráfico, tabela ou cartão, o DAX automaticamente aplica os filtros do visual para calcular aquele valor. Isso é o filtro de contexto em ação.

Existem dois tipos principais:

  1. Filtro de linha (Row Context): Aparece ao iterar linha por linha de uma tabela.

  2. Filtro de contexto (Filter Context): É criado por filtros explícitos (como slicers e segmentações) ou implícitos (pelo visual em uso).

Neste artigo, vamos focar totalmente no filtro de contexto, pois ele é o que mais afeta suas medidas em dashboards reais.

Como o filtro de contexto é criado?

Existem diversas formas de aplicar filtros de contexto em um modelo DAX. Veja os principais:

1. Filtros nos visuais

Se você cria um gráfico de barras por produto, o DAX automaticamente filtra os dados para cada produto individualmente ao calcular a medida. Por exemplo, se você tiver uma medida chamada Total Vendas = SUM(Vendas[Valor]), o Power BI aplicará o filtro de produto dinamicamente conforme cada barra do gráfico.

2. Slicers e segmentações

Ao selecionar uma data ou categoria em um slicer, o DAX aplica esse filtro nas medidas automaticamente — sem necessidade de alterar nenhuma fórmula.

3. Filtros de página e de relatório

Filtros aplicados diretamente na página ou no nível do relatório também compõem o filtro de contexto. Eles são globais e impactam todos os visuais.

4. Filtros via funções DAX

Funções como CALCULATE, FILTER, ALL e REMOVEFILTERS manipulam diretamente o filtro de contexto. Esse é o verdadeiro poder do DAX.

Manipulando filtros de contexto com DAX

Agora começa a mágica. Vamos aprender a alterar, remover ou adicionar filtros de contexto usando funções DAX.

CALCULATE: o rei da manipulação de contexto

A função CALCULATE recalcula uma medida sob um novo filtro de contexto. Por exemplo:

Vendas Caneta = CALCULATE([Total Vendas], Produtos[Nome] = "Caneta")

Essa medida sempre trará o total de vendas do produto "Caneta", mesmo que o visual esteja mostrando outro produto. O contexto anterior é substituído.

ALL: removendo filtros do contexto

Se você quiser ignorar completamente o filtro aplicado por um visual (como categoria ou produto), pode usar ALL. Exemplo:

Total Vendas Geral = CALCULATE([Total Vendas], ALL(Produtos))

Essa medida trará o total de vendas considerando todos os produtos, independentemente do que o visual está filtrando.

FILTER: criando filtros mais inteligentes

A função FILTER permite aplicar condições mais complexas dentro do CALCULATE. Por exemplo:

Vendas Produtos Caros = CALCULATE([Total Vendas], FILTER(Produtos, Produtos[Preço] > 100))

Aqui, a medida considera apenas os produtos cujo preço é maior que R$100, independentemente de qualquer filtro aplicado no visual.

Contexto de filtro vs contexto de linha

É muito comum confundir esses dois. A diferença fundamental é:

  • Linha: é quando o DAX está iterando uma tabela, linha por linha. Acontece em funções como SUMX, FILTER, ADDCOLUMNS.

  • Filtro: é o subconjunto de dados que será considerado em um cálculo. Ocorre no uso de CALCULATE, visuais, slicers, etc.

Exemplo de contexto de linha:

Lucro por Produto = SUMX(Produtos, Produtos[Preço] - Produtos[Custo])

Aqui o DAX está passando linha a linha pela tabela Produtos e fazendo a subtração.

Agora, um exemplo de contexto de filtro:

Lucro Total = CALCULATE(SUM(Produtos[Preço] - Produtos[Custo]))

Aqui o cálculo acontece sobre o subconjunto de dados filtrado no contexto atual (ex: o produto selecionado no visual).

Erros comuns com filtros de contexto

1. Achar que a medida ignora o visual

Por padrão, todas as medidas respeitam o contexto do visual. Só deixam de fazer isso se você explicitamente usar ALL, REMOVEFILTERS ou KEEPFILTERS.

2. Usar CALCULATE sem perceber que está mudando o filtro

O CALCULATE não apenas avalia a expressão. Ele altera o filtro de contexto, substituindo filtros anteriores ou adicionando novos.

3. Misturar contexto de linha e de filtro sem clareza

Isso é uma fonte comum de bugs. Saber onde um FILTER está iterando e onde um CALCULATE está apenas aplicando filtros pode salvar horas de depuração.

Dica prática: inspecionando o filtro de contexto atual

Você pode criar uma medida que mostra os valores ativos no contexto atual com:

Valores de Filtro = CONCATENATEX(VALUES(Produtos[Nome]), Produtos[Nome], ", ")

Isso é ótimo para entender porque sua medida está retornando determinado resultado. Principalmente quando você está filtrando dinamicamente por categoria, cliente ou data.

Conclusão: Domine o contexto, domine o DAX

Dominar filtros de contexto é o divisor de águas entre fórmulas básicas e análises avançadas no Power BI.

A boa notícia? Agora que você entendeu os pilares, já está à frente de 90% dos usuários. E quanto mais você praticar com CALCULATE, ALL e FILTER, mais natural vai parecer controlar o que o DAX está realmente calculando.

Quer um desafio? Pegue uma medida antiga do seu projeto e reescreva ela tentando controlar os filtros manualmente. Questione: "quais filtros estão ativos aqui?" e "como posso alterá-los com DAX?"

Curtiu o conteúdo?

Compartilha com quem está começando no DAX ou com aquele colega que sempre diz "minha medida tá errada, mas não sei por quê... E continue Ligado aqui no BI com Bueno para mais dicas sobre Power BI, Fabric, Azure e todas tecnologias relacionadas a dados no mundo microsoft