As variáveis ​​Dax do LuckyTemplates são constantes: o que isso significa?

As variáveis ​​Dax do LuckyTemplates são constantes: o que isso significa?

Sempre que você ouviu uma explicação sobre como usar as variáveis ​​DAX do LuckyTemplates, pode ter ouvido a frase “variáveis ​​são constantes”. Parece simples, mas há muitas nuances e complexidade nessas palavras. Neste blog, explicarei o que essa frase significa e as implicações de como suas medidas são calculadas. Entender esses conceitos é essencial para garantir que suas medidas produzam os resultados desejados. Você pode assistir ao vídeo completo deste tutorial na parte inferior deste blog.

Uma variável dentro do DAX pode realmente ser qualquer expressão DAX válida. Pode ser um valor, um cálculo, uma medida ou uma variável que representa uma tabela, outra variável ou alguma combinação dessas coisas.

Há duas partes em uma variável. Existe a declaração onde você inicializa a variável; você dá um nome e depois um valor. A outra é a instrução RETURN , que então chama pelo menos uma das variáveis ​​que você declara. Não é como parênteses onde você precisa ter uma declaração RETURN para cada variável, mas você precisa ter pelo menos uma declaração RETURN se você declarou alguma variável.

A chave aqui é que, como eu disse antes, as variáveis ​​são constantes. O que isso significa é que, uma vez que as variáveis ​​tenham sido atribuídas a um valor, esse valor não pode ser alterado antes da instrução RETURN .

Índice

Aplicando variáveis ​​DAX do LuckyTemplates em medidas

Vamos dar uma olhada em um exemplo simples onde eu tenho Países e Vendas Totais. A medida Total Sales é apenas a nossa medida mais básica, que é a das vendas da linha dentro da tabela Sales.

As variáveis ​​Dax do LuckyTemplates são constantes: o que isso significa?

Digamos que queremos obter as vendas totais do ano de 2020. Nesse conjunto de dados, temos as vendas de 2019, 2000 e 2021. Para obter as vendas de 2020, temos que aplicar uma condição de filtro muito simples, que é . Então, mudamos nosso contexto de filtro. Temos nossa medida de vendas totais e nosso ano é 2020.

As variáveis ​​Dax do LuckyTemplates são constantes: o que isso significa?

Se colocarmos essa medida na tabela, obteremos exatamente o que esperamos, que é o número certo para 2020.

As variáveis ​​Dax do LuckyTemplates são constantes: o que isso significa?

Agora, se quisermos aplicar variáveis ​​a isso, aqui está uma versão ligeiramente revisada da medida anterior, onde criei uma variável chamada TotSales e apenas defini-a como igual à nossa medida Total Sales.

As variáveis ​​Dax do LuckyTemplates são constantes: o que isso significa?

Se pensarmos nisso do ponto de vista da substituição algébrica, se apenas substituirmos o que era anteriormente nossa medida Total Sales aqui por TotSales, que é igual a essa medida Total Sales, você pensará que pode ser a mesma coisa e produzir o mesmo resultado. Mas se dermos uma olhada e colocarmos essa medida em nossa tabela, veremos que ela não produz o mesmo resultado.

As variáveis ​​Dax do LuckyTemplates são constantes: o que isso significa?

É declarada a variável TotSales, que obtém o valor das vendas totais. Digamos que estamos na linha da Moldávia e essa variável obtém o valor de 2,35 milhões. Agora, lembre-se de que o valor não pode mudar até que a instrução RETURN seja chamada. Então, quando descemos para calcular nossa medida na variável RESULT , o que temos é TotSales, que é uma constante de 2,35 milhões.

E então, aplicamos nosso contexto de filtro a ele, Dates[Year] é igual a 2020 , mas não importa porque essa constante não pode mudar. Então, poderíamos dizer que Dates[Year] é igual a 2019, 2021 e assim por diante, ainda será o mesmo 2,35 milhões porque TotSales agora está bloqueado como uma constante até o RETURN .

E quando retornar, vamos para a próxima linha, e a variável pega o valor de Holanda (4,4 milhões). O processo se repete, bloqueando-o como uma constante até a instrução RETURN. O que obtemos é exatamente o que temos na medida Total Sales, não na medida que filtra até 2020.

E então, você pode estar pensando que isso não parece muito útil. Neste contexto, não. Na verdade, esse é um erro comum quando as pessoas começam a usar variáveis . Eles colocam a variável na primeira parte da expressão da instrução CALCULATE. Isso normalmente não vai dar o resultado que eles estão procurando porque bloqueia isso como um valor constante.

Usando variáveis ​​DAX do LuckyTemplates em iteradores

Variáveis ​​realmente brilham quando você as coloca dentro de iteradores. Vou falar com você sobre este caso, que é um valor anterior. Estamos procurando uma data e, em seguida, um valor anterior sujeito a várias condições.

As variáveis ​​Dax do LuckyTemplates são constantes: o que isso significa?

Lembre-se de que a maneira como você costumava fazer isso antes de as variáveis ​​chegarem ao DAX era por meio de uma função chamada . Mas agora, as variáveis ​​realmente funcionam tão bem nesse contexto. Com variáveis, é altamente recomendável nunca mais usar essa função EARLIER.

Então, vamos dar uma olhada em um exemplo mais complexo, onde temos variáveis ​​na parte do iterador ao invés da parte da expressão. Abaixo está, na verdade, um caso de uma pergunta que surgiu no , em que o membro queria ver cada data dentro de um intervalo e, em seguida, chegar à primeira data anterior que não era um fim de semana ou feriado.

As variáveis ​​Dax do LuckyTemplates são constantes: o que isso significa?

Quero me concentrar particularmente na terça-feira, 15 de outubro, como o principal exemplo. O resultado desejado era olhar para aquela data. Segunda-feira era o Dia de Colombo, então era feriado, então os próximos dias anteriores eram domingo e sábado. E assim, a data que queríamos obter era 11 de outubro, que era sexta-feira.

Se você olhar para a coluna Dia anterior/Sem fim de semana/Sem feriado, terça-feira foi dia 11. A mesma coisa aconteceu na segunda-feira, domingo e sábado. É isso que queremos obter como resultado.

Ao lado da tabela acima está a medida que usamos para este cenário de caso. Declaramos uma variável que era data selecionada ( VAR SelDate ), e que era apenas da Data. Ele pegaria 15 de outubro em nossa variável e manteria isso como uma constante até a instrução RETURN.

Em seguida, avaliamos o DAX de fora para dentro. Se observarmos a condição do filtro, ele está removendo os filtros em Datas e, em seguida, está definindo uma série de filtros adicionais. Está pegando aquela data constante selecionada, 15 de outubro, e está dizendo, dê-me todas as datas anteriores a isso. E então, dessas datas, certifique-se de que nenhuma dessas datas seja sábado, domingo ou feriado. Então, pega o dessas datas que foram filtradas.

Você pode ver aqui que ter selecionado os dados como uma constante é uma espécie de estaca no terreno sobre o qual todas as outras datas são avaliadas antes ou depois.

Temos nossa data selecionada e, em seguida, estamos filtrando tudo o que é anterior a ela. Estamos pegando o máximo dessa tabela filtrada. E assim, o que obtemos é o máximo no dia 15 quando tiramos todas as outras condições é que sexta-feira 11. Então, se descermos para a instrução RETURN, ela recomeça no dia seguinte, 16. Ele apenas continua iterando pela tabela até chegar ao final dos dados.

Como você pode ver neste caso, quando colocamos variáveis ​​na parte do iterador em vez da parte da expressão, funciona exatamente como planejamos. Ele tira vantagem do fato de que as variáveis ​​são constantes.


Usando variáveis ​​no LuckyTemplates – Um exemplo detalhado
Como trabalhar com fórmulas DAX extensas no LuckyTemplates – Dicas de formatação
Variáveis ​​DAX incluídas e comentários para simplificar fórmulas

Conclusão

Neste blog, mostrei como aplicar variáveis ​​DAX do LuckyTemplates em uma medida e como isso funciona quando as variáveis ​​são colocadas na parte do iterador de uma medida.

Espero que esses exemplos expliquem a frase “as variáveis ​​são constantes”, dando a você algumas dicas sobre talvez por que suas medidas parecem funcionar e às vezes não. Espero que isso forneça a você uma compreensão geral do que esse importante conceito significa.

Tudo de bom!


O que é self em Python: exemplos do mundo real

O que é self em Python: exemplos do mundo real

O que é self em Python: exemplos do mundo real

Como salvar e carregar um arquivo RDS em R

Como salvar e carregar um arquivo RDS em R

Você aprenderá como salvar e carregar objetos de um arquivo .rds no R. Este blog também abordará como importar objetos do R para o LuckyTemplates.

Primeiros N dias úteis revisitados - uma solução de linguagem de codificação DAX

Primeiros N dias úteis revisitados - uma solução de linguagem de codificação DAX

Neste tutorial de linguagem de codificação DAX, aprenda como usar a função GENERATE e como alterar um título de medida dinamicamente.

Apresentar insights usando a técnica de visuais dinâmicos multithread no LuckyTemplates

Apresentar insights usando a técnica de visuais dinâmicos multithread no LuckyTemplates

Este tutorial abordará como usar a técnica Multi Threaded Dynamic Visuals para criar insights de visualizações de dados dinâmicos em seus relatórios.

Introdução ao contexto de filtro no LuckyTemplates

Introdução ao contexto de filtro no LuckyTemplates

Neste artigo, analisarei o contexto do filtro. O contexto do filtro é um dos principais tópicos sobre os quais qualquer usuário do LuckyTemplates deve aprender inicialmente.

Melhores dicas para usar os aplicativos no serviço online do LuckyTemplates

Melhores dicas para usar os aplicativos no serviço online do LuckyTemplates

Quero mostrar como o serviço online do LuckyTemplates Apps pode ajudar no gerenciamento de diferentes relatórios e insights gerados de várias fontes.

Analisar alterações de margem de lucro ao longo do tempo – Analytics com LuckyTemplates e DAX

Analisar alterações de margem de lucro ao longo do tempo – Analytics com LuckyTemplates e DAX

Aprenda a calcular suas alterações de margem de lucro usando técnicas como ramificação de medida e combinação de fórmulas DAX no LuckyTemplates.

Ideias de materialização para caches de dados no DAX Studio

Ideias de materialização para caches de dados no DAX Studio

Este tutorial discutirá sobre as ideias de materialização de caches de dados e como elas afetam o desempenho dos DAXs no fornecimento de resultados.

Relatórios de negócios usando o LuckyTemplates

Relatórios de negócios usando o LuckyTemplates

Se você ainda estiver usando o Excel até agora, este é o melhor momento para começar a usar o LuckyTemplates para suas necessidades de relatórios de negócios.

O que é o Gateway do LuckyTemplates? Tudo o que você precisa saber

O que é o Gateway do LuckyTemplates? Tudo o que você precisa saber

O que é o Gateway do LuckyTemplates? Tudo o que você precisa saber