Olá, pessoal!
No post de hoje iremos comparar duas funções DAX importantes: a CALENDARAUTO e CALENDAR.
Ambas possuem a função de criar uma tabela com uma coluna de data, retornando um range entre a maior e a menor data disponível no modelo ou informada via parâmetros.
O que muda em cada uma, basicamente, é a forma como leem as datas que serão consideradas em sua estrutura.
Antes de criarmos as tabelas, será preciso entender como cada uma dessas fórmulas funcionam, a sintaxe das mesmas e exemplos de uso.
CALENDARAUTO
Esta fórmula retorna uma única coluna chamada Date contendo o intervalo entre a menor a maior data do seu modelo de dados.
Para que essa função seja aplicada corretamente é necessária a presença no seu modelo de dados de pelo menos uma coluna no formato de data.
A data mais antiga será considerada a menor data.
A data mais recente será considerada a maior data.
Obs.: Lembrando que a função CALENDARAUTO não lê informações de colunas ou tabelas calculadas.
Caso não exista nenhuma coluna em formato de data no seu modelo, um erro será retornado.
É possível especificar um número de meses como argumento na CALENDARAUTO. Se for indicado, será gerado um range de datas entre o primeiro dia do modelo até o último dia do mês indicado no argumento.
Exemplos:
CALENDARAUTO sem Parâmetro
Temos abaixo um modelo com data entre 01/01/2016 até 31/01/2016.
Vamos criar uma tabela dCalendario utilizando a função CALENDARAUTO.
Clique na Aba Modelagem –> Nova Tabela.
Digite a seguinte fórmula:
dCalendario = CALENDARAUTO()
Observe que foi criada uma tabela. A coluna, por padrão, foi nomeada como Date.
CALENDARAUTO com Parâmetro
Agora, supondo que não queremos retornar todos os meses. Apenas 6.
Vamos digitar a fórmula da seguinte maneira:
dCalendario = CALENDARAUTO(6)
Ao avaliarmos as últimas linhas da tabela abaixo, notamos que temos informações até o dia 30/06, ou seja, até o último dia referente ao mês aplicado na fórmula.
CALENDAR
Na função CALENDAR, ao contrário da CALENDARAUTO, deve-se informar a data inicial e a data final como parâmetros.
Esta fórmula também retornará uma única coluna chamada Date contendo o intervalo entre a menor a maior data.
O intervalo será contínuo, ou seja, conterá todos os dias dentro do range especificado, inclusive as datas informadas.
Um erro é devolvido se a data inicial é maior do que a data final.
Na função, devem ser informados dois parâmetros:
CALENDAR(“Data Inicio”;”Data Fim”)
Exemplo:
No nosso modelo não temos nenhuma tabela com informação de data. Logo, precisaremos criar uma tabela que nos retorne essas informações.
Clique na Aba Modelagem, em seguida Nova Tabela.
Digite a seguinte fórmula:
dCalendario = CALENDAR(“01/01/2016″;”31/12/2016”)
Questão do nosso amigo Barezi:
As tabelas criadas utilizando as funções CALENDAR e CALENDARAUTO serão atualizadas automaticamente?
CALENDARAUTO
- Será atualizada automaticamente sempre que o modelo receber novas datas.
CALENDAR
- Quando o parâmetro for passado de forma fixa como acima, o modelo não sofrerá atualizações;
- Quando passar datas existentes no modelo como parâmetro de data inicial e data final, a tabela será atualizada automaticamente.
Deixe seu comentário, dica ou sugestão para os próximos posts!
Até a próxima!
Meirieli Ribeiro
Pingback:Power BI – Criando uma tabela calendário em M – BI – Do Conceito à Prática
Pingback:Power BI – Função USERELATIONSHIP (Habilitando Relacionamentos) – BI – Do Conceito à Prática
Pingback:Power BI – Como começar um template – BI – Do Conceito à Prática