Olá! Como vai?
O seu código DAX e o resultado no cartão ficaram absolutamente perfeitos! Conseguir integrar funções iteradoras, modificadores de contexto e funções de relacionamento em uma única medida demonstra que você está construindo uma base sólida e avançada em Power BI.
A sua medida VendasDataScience aplicou com maestria conceitos fundamentais da modelagem de dados e do mecanismo analítico do Power BI:
SUMX: Como você precisava fazer uma multiplicação linha a linha (multiplicar o preço pela quantidade de cada transação) antes de somar tudo, usar a função iteradora SUMX foi a escolha exata. Funções que terminam com "X" abrem um contexto de linha na tabela indicada, calculando a expressão para cada registro individualmente.FILTER e ALL: Ao envelopar a tabela de vendas com FILTER(ALL(Vendas), ...), você garantiu que essa medida ignore qualquer filtro de linha lateral que venha de segmentos, tabelas ou gráficos do relatório para a tabela de Vendas. O cartão vai mostrar com consistência o total acumulado da categoria, não importa onde o usuário clique.RELATED: Como a coluna Categoria não está na tabela de fatos (Vendas), mas sim na tabela de dimensão (Produtos), você utilizou a função RELATED com perfeição para "puxar" essa informação através do relacionamento de muitos para um entre as tabelas.FILTER(ALL(...)) por CALCULATEA sua fórmula está funcionando perfeitamente e o resultado de 73,20 Milhões está totalmente correto. Contudo, na engenharia de dados com DAX, existe uma boa prática de mercado focada em performance de processamento.
Quando passamos uma tabela inteira com FILTER(ALL(Vendas)), o Power BI precisa varrer e processar todas as colunas da tabela de fatos na memória para aplicar o filtro. Podemos atingir exatamente o mesmo resultado de forma muito mais rápida substituindo essa estrutura pela combinação de CALCULATE com KEEPFILTERS ou aplicando o filtro diretamente.
Veja como o mercado costuma escrever essa mesma medida para otimizar o desempenho do relatório:
VendasDataScience_Otimizada =
CALCULATE(
SUMX(Vendas, Vendas[Preço Calculado] * Vendas[Quantidade]),
Produtos[Categoria] = "Data Science"
)
CALCULATE faz a transição de contexto automaticamente e de forma interna.Vendas inteira para filtrar, o Power BI aplica o filtro diretamente na tabela de dimensão Produtos (que é infinitamente menor), propagando o resultado pelo relacionamento de forma instantânea.Parabéns pelo excelente progresso com as funções de tabela no DAX e por entregar o desafio com sucesso! O seu relatório está caminhando para um nível técnico impecável.
Espero que possa ter lhe ajudado!