quinta-feira, 8 de abril de 2021

Médias Móveis Dinâmicas com Calculation Groups do Power BI

 As médias móveis são medidas muito interessantes para auxiliar a análise de tendência e entender como implementar e dar dinamismo na escolha das medidas que serão usadas como referência é o tema deste post.

Para alcançar esse objetivo vamos usar a feature calculation groups para dar esse dinamismo.  O resultado final fará com que o modelo permita que o usuário escolha qualquer medida e tenha diversas opções de médias móveis.


1-Criar a medida em destaque com DATESINPERIOD













2-Depois de criar a medida no DAX Studio e testar, vamos acessar o Tabular Editor e criar um calculation group com um item para cada janela de tempo, 3, 6, 12 meses, e substituir a medida [Sales Amount] pela função SELECTEDMEASURE().
























Com o calculation group criado, os itens com as opções de medias móveis podem ser usados como legenda ou filtro nos painéis. É importante lembrar de sempre criar um calculation item "Valor" genérico para representar o valor padrão.















Codigo: https://dax.do/rIWfJKRUUN343z/

Vídeo: https://youtu.be/QAYbEXteNdI


















segunda-feira, 5 de abril de 2021

Modificadores - USERELATINSHIP ativa um relacionamento inativo no modelo

Usando em medidas CALCULATE para ativar que por padrão estão inativos.

Um exemplo comum é quanto temos mais de uma data relacionada aos fatos que queremos compartilhar a tabela de datas para que seja possível calcular na mesma linha do tempo eventos que aconteceram no mesmo fato, como data do vencimento e data da entrega.














Exemplo: medidas de total de vendas considerando datas diferentes.




















Mas e quando estamos criando código DAX no contexto de linha?

Podemos pensar em usar a função RELATED para buscar o valor da data. mas ao criar uma coluna calculada o mecanismo de DAX utiliza sempre o relacionamento padrão, isso faz com que por exemplo a data retornada seja aquela do relacionamento ativo. Então a melhor saída é recorrer a relacionamentos virtuais com LOOKUP.

Para contornar essa limitação, a função LOOKUP atende. Ela faz uma relação entre as chaves de data sem que exista uma relação física criada.

* onde [DueDateKey]  foi igual a [DateKey] retorna o nome do dia da semana.






Modificadores do CALCULATE - CROSSFILTER e a mudança do sentido do relacionamento no modelo

As funções modificadoras do calculate trazem uma funcionalidades adicionais aos filtros que podem ser usados para modificar o contexto. Em resumo, é como se além de manipular os filtros você pudesse manipular a configuração do próprio modelo de dados, como a direção do relacionamento usando a função CROSSFILTER.

Essa função faz com que uma medida navegue em um relacionamento customizado.

Neste exemplo o relacionamento físico é unidirecional, mas com a função podemos "forçar" o relacionamento bidirecional entre vendas e produtos mesmo sem que esteja configurado no modelo.





Ao filtrar a Cor de um produto não é possível calcular a quantidade de clientes porque o filtro de cor não chega até Customer por causa da direção padrão do relacionamento de Customer com Sales.

Mas se usar o CROSSFILTER o DAX força o relacionamento ambos os sentidos




Com isso é possível totalizar a quantidade de clientes por qualquer atributo de Product mesmo que por padrão esse relacionamento não se propague.