BLOG DOS
INCOMPARÁVEIS

Publicações

Como montar a sua dCalendario no Power BI

Artigo escrito por: Pedro Eloy


Linkedin

Neste artigo vamos descobrir como criar a sua dCalendario no Power BI, de forma simples e prática.

Acompanhe:

O que são fatos e dimensões?

Fatos e dimensões são dois tipos de tabelas que podemos utilizar no Power BI. As tabelas-fato representam o dia a dia de uma operação. Ela funciona apresentando o que vem acontecendo na nossa empresa.

Por exemplo, vamos supor que tenhamos uma loja de açaí. Cada venda realizada possui um conjunto de características. A venda ocorre em data e hora específicas, para determinado cliente, variando o tamanho do copo, acompanhamentos, o local de consumo, que pode ser  delivery, ou no próprio estabelecimento, etc.

Transferindo esse exemplo para o Power BI, podemos pensar da seguinte forma. A dimensão é uma tabela que lista os tipos de atributos que estão presentes na fato. A venda que acontece na fato informa o tamanho do copo que foi comprado. Mas é na dimensão que eu possuo a lista de copos que podem ser escolhidos. É na tabela dimensão que ficam armazenadas todas as características referentes ao atributo; no caso, o tamanho do copo do açaí.

Por questões de performance, na tabela fato só armazenamos o código, enquanto na respectiva dimensão, estão as informações referentes a ele.

O que é uma dCalendario?

Agora que você já sabe o que são tabelas fatos e dimensões, está pronto(a) para entender o conceito da dCalendario. A gente viu que uma dimensão armazena todas as informações referentes ao atributo. No caso, o atributo é o tempo.

Portanto, uma dCalendario é uma tabela dimensão que irá conter todas as informações relativas à data; tais como, o ano, o número do mês, o nome do mês, o dia, o dia da semana, e quaisquer outras informações que forem relevantes de acordo com a regra de negócio.

O objetivo de uma dCalendario é poder filtrar os dados do nosso relatório por meio de qualquer unidade de tempo.

O objetivo de uma dCalendario é poder filtrar os dados do nosso relatório por meio de qualquer unidade de tempo.

Criando a dCalendario no Power Query

Antes de mais nada, abra o Power Query. Com ele aberto, clique em Nova Fonte e escolha a opção Consulta Nula.

Dessa forma, vamos poder construir a nossa dCalendario do 0 (zero). Para isso, a gente deve utilizar uma função chamada List.Dates, que possui os seguintes parâmetros:

O primeiro parâmetro é a data inicial. O segundo é a quantidade de registros que essa lista vai ter. O terceiro é a diferença entre cada registro.

Portanto, para a gente criar a nossa dCalendario, precisamos definir uma data válida no primeiro parâmetro, a quantidade de registros, e informar que a distância entre cada registro é um dia.

Informe os parâmetros a seguir e clique na opção de invocar função.

O resultado será a figura abaixo.

Nós temos uma lista que começa na data que especificamos, com a quantidade de registros informada e a diferença entre cada um da forma que definimos. A lista começa no dia 21/03/2012 e vai até o dia 30/03/2012. Um ponto a observar é que a quantidade de registros conta com a primeira data.

Vamos reparar na barra de fórmulas e ver o código que essa função retornou.

O primeiro parâmetro é a data. Para isso, a função gerou uma constante de data utilizando a expressão #date. O segundo parâmetro é a quantidade de registros, um número fixo de 10. E o terceiro é a distância temporal entre um registro e outro. Os formatos dessas expressões são:

  1. #date(ano, mês, dia);
  2. #duration(dia, hora, minuto, segundo)

Vamos personalizar a nossa lista de datas. Copie o código gerado e renomeie a consulta em branco para dCalendario. Abra o editor avançado e adicione o código de antes no parâmetro da função List.Dates, conforme a imagem abaixo.

Explore novas possibilidades. Altere a data e a quantidade de dias para entender o comportamento dessa função.

Construindo a tabela

Vamos transformar essa lista em uma tabela. Na aba Transformar, procure a opção abaixo e clique em OK.

O resultado ficará assim:

Agora, vamos criar as demais colunas que representam os atributos dessa data. Com a coluna de data selecionada, clique na aba Adicionar Coluna e refaça os passos abaixo.

É possível renomear essa coluna assim que ela é criada. Basta editar a fórmula onde está escrito “Year”. Esse é o parâmetro que representa o nome dessa coluna. Altere-o para Ano.

Com a coluna de data selecionada novamente, crie a coluna que representa o número do mês.

Assim como fizemos para o ano, altere o nome da nova coluna para MesNum.

Seguindo os passos anteriores, replique-os para algumas novas colunas. Crie o nome do mês, o dia e o dia da semana. Renomeie cada coluna criada conforme fizemos anteriormente.

Por fim, dê um duplo clique no nome da coluna de data para renomeá-la e escreva Data.

Se você fizer tudo certo, seu resultado ficará assim.

Criando uma tabela automática com datas dinâmicas

Ótimo. Você agora já sabe criar uma tabela de dimensão do tipo calendário. Porém, a que criamos está com data de início fixa. Como fazer para que ela seja atualizada de forma dinâmica?

É um processo bem simples, e nós vamos aprendê-lo agora.

Na Página Inicial, clique na opção Inserir Dados.

Você vai colocar uma coluna de data com o nome e valor que quiser.

Dê um nome à tabela que está inserindo e clique em OK. Eu vou chamá-la de Vendas.

Na nossa dCalendario, queremos que ela comece no primeiro dia da tabela e termine no último dia dessa mesma tabela. Para isso, vá na dCalendario, e abra o editor avançado.

O código dela está bem maior agora, mas vamos focar somente na parte que importa.

Antes dessa etapa, vamos precisar criar uma variável que receba o valor da menor e da maior data da tabela que criamos. Faremos isso usando as funções List.Min e List.Max, respectivamente.

Bem, agora precisamos definir a quantidade de dias que separa uma data da outra.

Criamos a variável qtdDias que nos retorna justamente o valor que precisamos. Usamos a função Duration.TotalDays passando a diferença entre as datas como argumento. Ao final, somamos mais um para não perdermos nenhuma data entre esse intervalo.

Por exemplo, quantos números há entre 2 e 8? Você pode contar 2, 3, 4, 5, 6, 7, 8. Ou seja, sete. Mas e se fosse um número maior? Você não iria contar manualmente. De que outro jeito podemos obter essa resposta? Basta calcular 8 – 2 = 6 + 1 = 7. O maior número menos o menor; ao resultado, soma-se 1. É o mesmo processo com as nossas datas.

Bem, agora ficou fácil, basta substituir as variáveis que criamos no parâmetro da função List.Dates.

Depois, clique em OK.

Vamos alterar o tipo da nossa coluna de data. Clique no ícone da figura abaixo e escolha a opção Data.

A sua tabela deve ter ficado mais ou menos parecida com a da figura abaixo.

Faça um teste e altere o valor das datas que você inseriu na outra tabela e veja se a dCalendario irá atualizar. Se tudo estiver certo, clique em Fechar e Aplicar.

Configurações importantes

Ao fazer isso, as tabelas serão carregadas no modelo. Existem algumas configurações importantes que devemos fazer quando criamos uma dCalendario.

Por padrão, o nome do mês vem classificado em ordem alfabética, porque cada coluna é ordenada por si própria. Entretanto, o mês é relativo ao tempo, então deve ser classificado em ordem cronológica.

Conseguimos fazer isso ao classificar a coluna de nome do mês pela coluna de número do mês. Clique na coluna de MesNome e na opção Classificar por Coluna, escolha a coluna MesNum.

Agora, mas não menos importante. Precisamos definir que esta é uma tabela de datas. Isso, para que possamos utilizar as funções de inteligência de tempo com os demais atributos da tabela, e não só com a coluna de data.

Clique com o botão direito em cima da tabela e escolha a opção Marcar como uma tabela de data.

Na janela que se abre, escolha a coluna de data e, por fim, clique em OK.

Nossa tabela dCalendario está configurada.

Contudo, podemos concluir que a tabela de calendário é essencial para o nosso projeto.

Todo projeto de BI analisa valores que aconteceram em um determinado período.

Para que você mantenha o seu projeto com uma boa performance, é importante fazer uso de uma tabela calendário.

Ela irá facilitar e muito a sua vida quando precisar fazer cálculos baseados em inteligência de tempo.


Instagram


Facebook


Youtube

Leia também

Assista agora o Minicurso gratuito de Power BI:

Publicações recentes:
Assuntos: