1
resposta

[Dúvida] Funcionalidade da Fórmula

Achei essa aula um pouco confusa. Foi difícil seguir a lógica pois a explicação começou comparando tabelas erradas e depois fiquei com dúvida sobre a funcionalidade da fórmula utilizada:

Quantidade vendida Logística = 
VAR ID_ATUAL = 'registro_notas_logistica'[ID_Produto]
VAR TABELA_IDS = FILTER('registro_notas_logistica', 'registro_notas_logistica'[ID_Produto] = ID_ATUAL)
RETURN
   COUNTROWS(TABELA_IDS)

A minha dúvida principal é que quando criamos a VAR TABELA_IDS, estamos filtrando o 'registro_notas_logistica'[ID PRODUTO] por ele mesmo já que ID_ATUAL = 'registro_notas_logistica'[ID_Produto].

Então não entendi qual é o sentido desse cáculo.

Fazendo um teste no Power BI para tentar entender, eu vi que se eu substituir a VAR ID_ATUAL por 'registro_notas_logistica'[ID PRODUTO] no cálculo de filtro, conforme abaixo, a fórmula não apresenta o mesmo resultado do que se eu tivesse usado a VAR ID_ATUAL. Todas as linhas apresentam o mesmo resultado de 1000.

Então existe diferença entre usar uma VAR ou calcular direto no FILTRO?

Quantidade Vendas Logística Simples = 
VAR TABELA_IDS_2 = FILTER('registro_notas_logistica','registro_notas_logistica'[ID_Produto] = 'registro_notas_logistica'[ID_Produto])
RETURN
COUNTROWS(TABELA_IDS_2)
1 resposta

Oi Letícia, tudo bem?

Vamos entender juntas a fórmula:

Quantidade vendida Logística = 
VAR ID_ATUAL = 'registro_notas_logistica'[ID_Produto]
VAR TABELA_IDS = FILTER('registro_notas_logistica', 'registro_notas_logistica'[ID_Produto] = ID_ATUAL)
RETURN
   COUNTROWS(TABELA_IDS)
  1. VAR ID_ATUAL: Esta variável captura o valor do ID do produto na linha atual da tabela registro_notas_logistica. Isso é importante porque estamos lidando com o contexto da linha atual.

  2. VAR TABELA_IDS: Aqui, estamos criando uma nova tabela que só contém as linhas onde ID_Produto é igual ao ID_ATUAL. Ou seja, estamos filtrando a tabela para manter apenas as linhas que têm o mesmo ID_Produto da linha atual.

  3. COUNTROWS(TABELA_IDS): Aqui, estamos contando o número de linhas na tabela filtrada TABELA_IDS. Isso nos dá a quantidade de vezes que o ID_Produto aparece na tabela registro_notas_logistica.

Quanto, a diferença entre usar VAR e calcular diretamente no filtro

Quando você substitui a variável ID_ATUAL diretamente no filtro, como no exemplo do seu código:

Quantidade Vendas Logística Simples = 
VAR TABELA_IDS_2 = FILTER('registro_notas_logistica','registro_notas_logistica'[ID_Produto] = 'registro_notas_logistica'[ID_Produto])
RETURN
COUNTROWS(TABELA_IDS_2)

O que acontece é que registro_notas_logistica'[ID_Produto] = 'registro_notas_logistica'[ID_Produto] é sempre verdadeiro, porque qualquer número é sempre igual a ele mesmo. Então, a tabela não é filtrada e continua com todas as linhas.

Portanto, usar a variável ID_ATUAL garante que o filtro seja aplicado com base no contexto da linha atual. Sem a variável, o filtro não funciona corretamente porque não está comparando o ID_Produto da linha atual com os outros ID_Produto na tabela.

Também recomendo a leitura do tópico onde o instrutor explica detalhadamente a fórmula.

Espero ter ajudado.

Qualquer dúvida, compartilhe no fórum.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!