Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Mão na massa: Explorando os contextos no DAX

Insira aqui a descrição dessa imagem para ajudar na acessibilidade
Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Olá, Estudante. Como vai?

Parabéns pelo excelente exercício! Você conseguiu ilustrar de forma perfeita um dos conceitos mais desafiadores e importantes de todo o Power BI: a diferença entre o Contexto de Filtro e a modificação dele usando a função ALL no DAX.

Analisando os seus dois cenários, conseguimos perceber claramente o impacto de cada fórmula na prática:

No Primeiro Cenário (Sem a função ALL)
Sua medida utiliza a função SUMX combinada com o FILTER varrendo a tabela Vendas. Quando você coloca essa medida na tabela visual ao lado do nome dos vendedores, o Contexto de Filtro entra em ação.

  • Para o Allan Spadini, o Power BI filtra apenas as linhas de venda dele e, depois, o FILTER restringe para a categoria "Big Data".
  • O cartão à direita, por estar isolado, mostra o valor total de Big Data (642 Mil, arredondado pelo visual) porque não há nenhum filtro de linha sendo aplicado diretamente a ele.

No Segundo Cenário (Com a função ALL)
Ao alterar o primeiro argumento do FILTER de Vendas para ALL(Vendas), você modificou o comportamento padrão do Power BI. A função ALL ignora completamente qualquer filtro que venha do relatório ou das linhas da tabela visual.

  • É por isso que, mesmo selecionando a linha do David Neves, o cartão passou a exibir 2 Mi (que é o acumulado geral de vendas de "Big Data" somando todos os vendedores: 1.937.449). A função limpou o filtro de vendedor antes de realizar a soma.

Uma sugestão de simplificação usando as boas práticas de DAX:
A sua lógica está 100% correta e o uso da função RELATED foi perfeito para buscar a categoria na tabela de produtos. Contudo, no dia a dia com DAX, nós costumamos evitar o uso de SUMX com FILTER para fazer filtros simples, pois o SUMX força o Power BI a checar linha por linha da tabela, o que pode deixar o relatório lento se a base de dados for gigante.

Você pode obter exatamente o mesmo resultado de forma muito mais otimizada usando a função CALCULATE. Veja como as duas medidas poderiam ser escritas de forma mais simples e performática:

Medida para o primeiro cenário:

Qtde Vendas BigData = CALCULATE(SUM(Vendas[Quantidade]); Produtos[Categoria] = "Big Data")

Medida para o segundo cenário (limpando o filtro de vendas):

Quantidade Vendas BigData ALL = CALCULATE(SUM(Vendas[Quantidade]); Produtos[Categoria] = "Big Data"; ALL(Vendas))

A função CALCULATE faz a transição de contexto de maneira nativa e muito mais veloz, sendo a ferramenta ideal para essas situações.

Seu exercício prático ficou excelente e demonstra que você compreendeu o funcionamento interno dos motores de cálculo do Power BI. Continue com esse ótimo foco nos estudos!

Espero que possa ter lhe ajudado!