fbpx

função DATEADD

#ABCdoDAX

Função DATEADD

A função DATEADD calcula uma determinada data futura ou passada com base em qualuer medida de data (ano, trimestre, mês ou dia) e para qualquer período de tempo (20 dias para frente, 2 meses para trás, etc.).

Porém ela deve ser utilizada dentro de uma função CALCULATE, pois ela será o filtro a ser utilizado para fazermos um cálculo qualquer.

No exemplo a seguir queremos calcula a variação da receita do mês atual em relação ao mês passado. Conforme já explicamos na função ALL, o PowerBI precisa ter medidas diferentes para podermos fazer comparações.

Enquanto no Excel faríamos uma função do tipo “linha atual dividida pela linha anterior” para calcular essa variação, no PowerBI precisamos de uma medida “Mês atual” para ser dividida por outra medida “mês anterior'”.

Esse “mês anterior” é o que será calculado com a função DATEADD.

Vamos criar uma medida para a receita do mês passado. Vamos em PÁGINA INICIAL > NOVA MEDIDA:

A primeira parte da função CALCULATE é a medida que usaremos, que é a RECEITA.

A segunda parte usamos a função DATEADD. Ela tem 3 argumentos:

  1. O primeiro corresponde à “chave da data” que corresponde à coluna oculta chamada DATE que existe na coluna de DATAS. Em todas as funções de data no PowerBI usamos essa coluna oculta;
  2. O segundo argumento corresponde à quantidade de períodos que ela deve se deslocar. Queremos o mês passado, isto é, -1. Se fosse o mês seguinte seria 1.
  3. O terceiro argumento é a unidade de tempo que queremos. No caso, queremos mês. Ele oferece 4 opções: YEAR / QUARTER / MONTH / DAY (ano, trimestre, mês e dia).

Depois de formatarmos a medida vamos colocá-la numa matriz com o ano, mês e as 2 medidas, conforme abaixo:

Veja que na coluna de janeiro/2016 tivemos uma receita de R$2.459 e na medida de receita mês anterior, nada, porque não temos nenhuma data anterior a jan/2016 em nossa base de dados.

Já fevereiro/2016 tivemos R$2.281 e como valor do mês anterior R$2.459, o que está correto. E daí por diante.

Porém essa medida está trazendo algumas “sujeiras”, que são valores para o ano. Por exemplo, em 2016 ele mostra R$29.086 que é a soma da medida RECEITA MÊS PASSADO no ano de 2016. Como tivemos 11 valores esse número mostra a soma desses valores, o que pode ser confuso.

Mas não precisamos mostrar isso, então vamos simplesmente não mostrar valores que não sejam valores em meses.

Para isso vamos melhorar nossa medida inserindo uma verificação se aquela “linha” possui um mês. Se não tiver um mês ele não mostrará nada.

A função que verifica se tem um mês chama-se HASONEVALUE. Na verdade essa função verifica se existe um valor de determinado campo.

Combinaremos isso com a função IF e ela ficará assim:

Na 1ª parte ele verifica se existe um MÊS, indicado pelo HASONEVALUE(Vendas[Data da Venda].[Mês]).

Se tiver valor de mês então ele mostrará o resultado de nosso CALCULATE. Se não tiver ele não mostrará nada, representado pela função BLANK().

Daí teremos isso:
E para finalizar vamos criar uma medida para calcular a variação da receita deste mês com o mês anterior:
Nós usaremos o IF novamente para verificar se há valor de mês anterior, para evitar que dê erro no caso de uma divisão por zero.
O resultado final será esse:

Licença Creative Commons

OUTROS ARTIGOS DE INTERESSE

Fabio Vianna
Siga-Me
Nossas Redes Sociais
Facebook
Linkedin
Instagram
Youtube