Olá, Estudante. Como vai?
Que bom que você percebeu o comportamento da fórmula e voltou para compartilhar no fórum! Esse é um detalhe muito clássico e importante quando começamos a trabalhar com o Power Pivot e a linguagem DAX no Excel.
O motivo desse erro acontecer de fato é devido a um conceito chamado Contexto de Linha. Quando você cria uma coluna calculada na tabela TB_Entradas, o DAX tenta realizar o cálculo matemática linha por linha. Ao escrever diretamente TB_Produtos[Custo Unitário], o Excel não sabe qual linha específica da tabela de produtos ele deve utilizar, pois você está referenciando a coluna inteira da outra tabela (ou seja, múltiplos valores) para multiplicar por um único valor da linha atual de entradas.
Para que a multiplicação entre colunas de tabelas diferentes funcione em uma coluna calculada, precisamos "avisar" ao DAX para respeitar o relacionamento que existe entre elas no modelo de dados, trazendo apenas o valor correspondente àquele produto específico.
Existem duas formas principais de resolver isso:
- Através de Medidas (A abordagem do professor): Ao utilizar
[Soma de Custo Unitário], você está chamando uma medida. As medidas possuem uma inteligência que realiza a transição de contexto, filtrando a tabela de produtos para exatamente o produto daquela linha, retornando assim um valor único e permitindo a multiplicação. - Através da função RELATED (Uma excelente prática): A forma mais recomendada e didática de buscar um dado de uma tabela dimensão (como a de Produtos) para uma tabela fato (como a de Entradas) em uma coluna calculada é utilizando a função
RELATED. Ela segue o relacionamento criado e busca exatamente o valor daquele item. A sua fórmula ficaria assim:
=TB_Entradas[Quantidade Comprada] * RELATED(TB_Produtos[Custo Unitário])
Esses testes práticos que você fez de tentar diferentes abordagens e analisar os erros são a melhor forma de dominar e entender a fundo como a inteligência do DAX funciona por trás dos panos.
Espero que possa ter lhe ajudado!