Power BI – Calendário dinâmico em DAX

Muitas das vezes precisamos trabalhar com informações temporais em nossas análises e na maioria das vezes os dados possuem faixas de datas quebradas, para lidarmos com isso podemos criar uma tabela auxiliar que completará as lacunas entre os períodos.

Mostraremos agora como poderemos lidar com esta situação fazendo uso da linguagem DAX do Power BI.

Ao abrir o Power BI Desktop acesse o bloco Dados e em seguida a guia ou aba Pagina Inicial e escolha a opção Nova Tabela para que possamos inserir nosso código da tabela Calendário.

Copie e cole o código a seguir:

Calendário = 
ADDCOLUMNS(
 CALENDARAUTO(),
 "Ano",FORMAT([Date],"YYYY"),
 "Mês Nome",UPPER(FORMAT([Date],"MMMM")),
 "Mês Abrev",UPPER(FORMAT([Date],"MMM")), 
 "Mês Num",MONTH([Date]), 
 "Trimestre",FORMAT([Date],"Q"),
 "Ano&Mês",CONCATENATE(YEAR([Date]),FORMAT(MONTH([Date]),"00")),
 "Dia util",IF(NOT WEEKDAY([Date],1) IN {1,7},1,0), 
 "Dia da Semana Num",WEEKDAY([Date],1), 
 "Dia da Semana",SWITCH(WEEKDAY([Date],1),
 1,"Domingo" ,
 2,"Segunda" ,
 3,"Terça" ,
 4,"Quarta" ,
 5,"Quinta" ,
 6,"Sexta" ,
 7,"Sábado")
 )

Explicando o código:
A base de nossa tabela é a CALENDARAUTO() ela cria uma tabela virtual com todos os dias entre a menor e a maior data que o Power BI encontrar nos campos de datas avaliados nos dados carregados estas datas serão retornadas na variável [Date], na sequencia fazemos uso do recurso ADDCOLUMNS() para incluir novas colunas a nossa tabela CALENDARAUTO() a sintaxe da função ADDCOLUNS(tabela avaliada, nome da coluna, expressão ou valor a retornar), com ela adicionamos as colunas de Ano, Mês, Trimestre, Dia da Semana e mais …, para gerar estas colunas utilizamos a função FORMAT() que nos permite formatar valores em diversas formas a exemplo:
* Retornar o Ano de uma data FORMAT([Date],”YYYY”),
* Retornar o Mês de uma data FORMAT([Date],”MMMM”) para o mês completo ou FORMAT([Date],”MMM”) para o mês abreviado,
Para mais formas de utilização da função FORMAT() você pode conferir também o link Função FORMAT (DAX) – DAX | Microsoft Docs
Também fizemos uso da função UPPER() para passar todas as letras para caixa alta ou maiúsculas, já a função WEEKDAY() como o próprio nome diz nos retorna o dia da semana que combinada com a função SWITCH() que é uma avaliação semelhante a condição SE do Excel, criamos a descrição dos dias da Semana.

Nós da GPS Company esperamos que o conteúdo possa ter contribuído para seu aprendizado.


Comments

Deixe um comentário