Ir para conteúdo
  • 0

Aula 20: Criando a Dimensão Calendário - Módulo 2 (Power Query)


Rodrigo Souza
Ir para solução Solucionado por Vitor Peralva ,

Pergunta

  • Alunos

Prezados, boa noite! 

No exemplo da aula 20: Criando a Dimensão Calendário, para gerar uma coluna auxiliar para classificar a coluna Mês/Ano, foi aplicada a seguinte fórmula: =([Ano] – 2017) * 12 + [Mês] (imagem abaixo):

Exemplo.png.c52b2d2c41c72f7fa74c25d19ce2446e.png

Há possibilidade de tornar o ano de 2017 dinâmico, ou seja, como faria para tornar o ano inicial da minha dCalendario algo dinâmico? Pois em um determinado momento, por exemplo, o ano de 2017 poderia ser excluso da base de dados e o ano mínimo ser 2018. 

Obrigado.

 

Editado por Rodrigo Souza
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

Boa Noite, @Rodrigo Souza!

 

Todas as observações que o Bruno fez são super importantes.

Como adendo eu colocaria o seguinte.

Normalmente, quando fazemos uma dCalendario, o que fazemos?

Criamos uma etapa de data inicial, que nada mais é do que uma data.

Vamos supor que a etapa está com o nome DataInicial.

No Power Query, podemos chamar valores que estão em outras etapas.

Assim, dentro da coluna personalizada, onde você tem: 

=([Ano] – 2017) * 12 + [Mês]

Você pode substituir o 2017 por:
 

Date.Year(DataInicial)

 

Assim, a sua fórmula ficaria:

=([Ano] – Date.Year(DataInicial)) * 12 + [Mês]

 

Acredito que, assim, consiga fazer sem a necessidade de gerar uma nova releitura da base.

De toda forma, sempre avalie performance e, se realmente vai utilizar algo.

Não adianta ter uma mega, super, power dCalendario, com mais de 100 colunas que avaliam trocentos aspectos, se você não vai utilizar estes campos e, principalmente, se vai colocar estes dados a disposição de leigos para montarem os relatórios.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Eu gosto de criar assim a classificação no PowerQuery:

AnoMesNum = [Ano]*100 + [MesNum]

Caso você queira obter o ano mínimo da tabela fato, você pode fazer:

AnoMin = Date.Year(List.Min(TabelaFato[Data]))

Mas eu não aconselho, pois ela ficará dependente da tabela fato, o que pode deixar a consulta lenta. Você até poderia usar List.Buffer para deixar a lista de datas na memória, deixando mais rápido, mas ainda assim eu penso que não vale a pena. Normalmente a data mínima não muda. Se mudar, você vai lá e altera manualmente. Será uma vez só a mudança e ainda pode fazer isso via parâmetro, realizando a alteração no Power Bi Serviço.

Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...