Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

Não entendimento da expressão DAX

Na aula o professor não explorou uma explicação mais profunda de algumas partes da expressão DAX, com isso, não entendi o conceito e utilização das seguintes etapas da expressão DAX :

VAR ?? O que é ? Para que serve ? ID_ATUAL ?? O que é ? Para que serve ? TABELA_IDS ?? O que é ? Para que serve ?

7 respostas
solução!

Oi, Washington! Como vai?

Puxa, sinto muito que não tenha ficado claro o que essas partes significam. Vamos analisar cada uma delas mais de perto?

  • VAR: nomenclatura que permite criar uma variável na linguagem DAX. Ela é utilizada, por exemplo, para armazenar um valor que será usado posteriormente;

  • ID_ATUAL: o nome dado à variável criada com VAR. Nesse caso, ela armazena o valor do ID do produto atual da tabela registro_notas_logistica;

  • TABELA_IDS: nome dado à tabela temporária criada com a função FILTER. Essa função é utilizada para filtrar os dados da tabela registro_notas_logistica de acordo com o ID do produto atual armazenado na variável ID_ATUAL.

Compreendendo essa parte, conseguimos entender com mais facilidade o propósito da fórmula DAX criada!

Essas variáveis são utilizadas em conjunto para obter a quantidade de vendas de acordo com o time de logística. Primeiro, o ID do produto atual é armazenado na variável ID_ATUAL. Em seguida, a tabela de registros de venda do time de logística é filtrada para obter apenas os registros que correspondem ao ID do produto atual, e essa tabela filtrada é armazenada na variável TABELA_IDS.

Por fim, a função COUNTROWS é utilizada para contar o número de linhas na tabela TABELA_IDS, que representa a quantidade de vendas de acordo com o time de logística.

Espero ter ajudado com a explicação, Washington! Se surgirem novas dúvidas, estarei por aqui.

Um abraço.

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

Olá. Ok , agora ficou mais claro, obrigado.

Pra mim não ficou claro pq ele cria uma variável que armazena um valor, no caso 'registro_notas_logistica'[ID_Produto], e ao filtrar ele compara esse variável com o mesmo campo que a variável recebe, 'registro_notas_logistica'[ID_Produto].

A ideia não seria verificar entre duas tabelas diferentes? Como isso pode acontecer quando a mesma tabela é comparada?

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

Oi! Tudo certo?

Nessa expressão DAX, o objetivo é obter a quantidade de vendas de acordo com o time de logística para cada produto específico. Para fazer isso, é necessário filtrar os dados da tabela registro_notas_logistica com base no ID do produto atual.

Após a variável ID_ATUAL armazenar o valor do ID do produto atual, a função FILTER é utilizada para filtrar os dados da tabela registro_notas_logistica em que o ID do produto é igual ao ID_ATUAL.

Pode parecer um pouco confuso mesmo, mas a ideia por detrás desse código é isolar o ID do produto atual e desenvolver um filtro para contar quantas vezes ele foi vendido e registrado especificamente pelo time de logística. Para cada linha da tabela, faz-se uma análise acerca do produto selecionado (se seu ID é igual ao atual, quantificamos essa informação).

Logo, não é necessário trabalhar com duas tabelas diferentes.

Espero que tenha ficado mais claro agora! Para complementar o entendimento, recomendo a leitura da explicação feita pelo instrutor Igor acerca dessa expressão. Se surgirem novas dúvidas, recomendo abrir um novo tópico no fórum. Assim, conseguimos analisar de forma mais assertiva e personalizada a sua questão.

Um abraço.

Na aula ele explica que o objetivo é comparar se a quantidade de vendas do time de marketing bate com o time de logística. Sendo assim, entendo que deveria-se filtrar as duas tabelas para efeito de comparação. Em relação ao código, continuo sem entender pq estão pegando um valor ('registro_notas_logistica'[ID_Produto]) e comparando com ele mesmo no filter. A única diferença é que num primeiro momento ele é armazenado numa variável para ser usada posteriormente na função filter, mas no final o valor é o mesmo. Não faz sentido. Teria que comparar utilizando a tabela de marketing e a de logística, não?

Oiê!

Isso mesmo, a nossa comparação deve considerar os dados envolvendo os times de marketing e de logística. No entanto, ela não precisa acontecer dentro da expressão em DAX, visto que esse processo já ocorre no nosso visual de tabela, observe comigo:

Tabela que compara a quantidade de vendas, no Power BI Desktop

A coluna Quantidade Vendas advém da tabela registros_livros_marketing. Quando essa informação é combinada com a coluna ID_Produto (da tabela registros_notas_logistica), temos um visual que organiza os produtos conforme a quantidade registrada pelo time de marketing.

Naturalmente, a tabela registros_notas_logistica não possui um campo de quantidades de vendas (necessário para a nossa comparação). Sendo assim, para obter esse dado, foi necessário criar a medida Quantidade Vendida Logistica — cujo único objetivo é contabilizar a quantidade de produtos vendidos e registros pela logística.

Para realizar essa contagem, precisamos separar os produtos da tabela registros_nota_logistica pelo seu identificador (ID_Produto) e, assim, especificar quantas vezes cada ID aparece. Então, foi necessário criar a variável ID_ATUAL (que armazena um ID qualquer) e compará-la com todas as linhas da tabela até que todos os IDs tenham sido contabilizados.

Por exemplo: se ID_ATUAL é igual a 5, iremos percorrer todas as linhas de registros_nota_logistica e verificar quais delas possuem o 'registro_notas_logistica'[ID_Produto] também igual a 5 e, assim, somar mais um produto à quantidade de vendas referentes ao ID 5.

Depois de tudo pronto, quando adicionarmos essa medida em nosso visual, passaremos a ter três colunas:

  • ID_Produto;
  • Quantidade Vendas (registrada pelo marketing);
  • Quantidade Vendida Logistica (registrada pela logística).

Dessa maneira, conseguimos analisar como as vendas foram registradas por ambos os times, concretizando o nosso propósito inicial de comparação. Neste contexto em específico, percebemos que os valores reconhecidos por cada grupo é o mesmo, mas isso nem sempre será um fato na vida real.

Um forte abraço.

Agora ficou claro. Obrigado.