2
respostas

Cálculo do custo total da compra

O professor Sabino explicou que para calcular o custo total da compra deve-se utilizar a seguinte fórmula:
=TB_Entradas[Quantidade Comprada]*[Soma de Custo Unitário]

Quando ele tentou referenciar diretamente a coluna do custo unitário da tabela de produtos (TB_Produtos) através da fórmula:
=TB_Entradas[Quantidade Comprada]*TB_Produtos[Custo Unitário]

Deu erro, mas no meu caso funcionou perfeitamente das duas maneiras.

2 respostas

Pessoal, desculpa, qual cliquei na nova coluna calcula deu o mesmo erro que o do professor Sabino.

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!