Olá, Luiz. Como vai?
É muito interessante observar as capturas de tela que você compartilhou, pois elas ilustram perfeitamente um dos conceitos mais fundamentais e, às vezes, desafiadores do Power BI: a diferença entre o Contexto de Filtro e o Contexto de Linha, além do impacto da função ALL.
Nas suas imagens, vemos duas abordagens para a mesma medida, e a mudança no código altera completamente o comportamento dos visuais:
1. O uso da função ALL (Primeira Imagem)
No primeiro código, você utilizou ALL(vendas) dentro da função FILTER.
ALL tem o papel de ignorar quaisquer filtros que venham do relatório (como nomes de vendedores, datas ou categorias em um gráfico).SUMX percorre a tabela inteira de vendas, filtrando apenas pela categoria "Big Data", independentemente de onde essa medida seja colocada.ALL.2. O comportamento sem o ALL (Segunda Imagem)
No segundo código, você removeu o ALL e deixou apenas a referência à tabela vendas.
SUMX realizar o cálculo.Dicas e Boas Práticas:
SUMX é um iterador, o que significa que ela passa linha por linha da tabela resultante do FILTER. Para cálculos simples de soma com filtros, a função CALCULATE costuma ser mais performática e legível.RELATED. Ela é essencial quando precisamos buscar uma informação em uma tabela de dimensão (Produtos) enquanto estamos iterando uma tabela de fatos (Vendas), aproveitando o relacionamento entre elas.Um exemplo de como essa mesma lógica da segunda imagem poderia ser escrita utilizando CALCULATE, que é o padrão mais comum no dia a dia:
QTD VENDAS BIG DATA =
CALCULATE(
SUM(vendas[Quantidade]),
produtos[Categoria] = "Big Data"
)
O CALCULATE faz a transição de contexto automaticamente, tornando o código mais limpo e rápido para o motor do Power BI processar.
Espero que possa ter lhe ajudado!