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

 

Power BI – Calendar X CalendarAuto
Classificado como:                                    

3 ideias sobre “Power BI – Calendar X CalendarAuto

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *