Olá, pessoal!

Hoje veremos o uso da função DATEDIFF no Power BI.
Antes de começarmos, abaixo o link da base que iremos utilizar:

Link Base de Dados

No exemplo, vamos utilizar um cenário muito comum no dia-a-dia, o uso de range de datas.

A empresa MR emite notas fiscais para seus clientes e a mesma precisa acompanhar quanto irá receber a curto prazo (próximos seis meses). Além disso, ela possui pagamentos que já venceram.

Portanto, precisa saber quantas e qual o valor dessas NFs.

Para isso, ela irá agrupar em ranges específicos para ter uma visão geral dos pagamentos.
Vejamos:

Vencer

  • A vencer em até 30 dias
  • A vencer entre 31 a 60 dias
  • A vencer entre 61 a 90 dias
  • A vencer entre 91 a 180 dias
  • A vencer a mais de 180 dias

Vencidos

  • Vencidos a 30 dias
  • Vencidos entre 31 a 60 dias
  • Vencidos entre 61 a 90 dias
  • Vencidos entre 91 a 180 dias
  • Vencidos a mais de 180 dias

Agora que classificamos os ranges, precisamos saber qual será a data base para realizar os cálculos.
No nosso caso verificaremos quantos dias a partir de hoje o boleto irá vencer ou já venceu.

Para obter a data de hoje, criaremos uma coluna utilizando a função Today ().


Agora, vamos criar uma tabela com a data do vencimento da NF e a data de hoje para conseguirmos validar se o que está sendo calculado está correto.

O próximo passo será saber quantos dias se passaram desde o vencimento até hoje. Precisaremos de uma coluna que calcule a diferença entre esses dias. A função que realiza esse cálculo é a DATEDIFF.

Diferença em Dias = DATEDIFF(dCalendario[Hoje];dCalendario[Data Vencimento];DAY)

Ao tentar realizar o cálculo, ele retorna um erro:

“In DATEDIFF function, the start date cannot be greater than the end date”
“Na função Datediff, a data inicial não poder ser maior que a data final”

O que isso quer dizer?

Quando a data do vencimento for maior que a data de referência, ele não conseguirá efetuar o cálculo.

Para contornar essa situação, é preciso entender que teremos datas menores e maiores que a data referência e, por isso, precisaremos criar condições no Power BI para que ele consiga realizar os cálculos em ambos os cenários.

Quando a Data Vencimento for maior que a data de Hoje, ele contará quantos dias faltam de hoje até lá e acrescentará o sinal de -, afinal, ainda não ocorreu o vencimento. Senão, ele contará quantos dias já passaram e retornará o valor.

Diferença em Dias =
IF(dCalendario[Data Vencimento] > dCalendario[Hoje];
– DATEDIFF(dCalendario[Hoje];dCalendario[Data Vencimento];DAY);
DATEDIFF(dCalendario[Data Vencimento];[Hoje];DAY))


Verificando na tabela de validação:


Agora vamos calcular o range de períodos para categorizar por faixa de pagamento e/ ou atraso.
Vamos utilizar o nosso bom e velho SWITCH, conforme abaixo:

Range = SWITCH(
TRUE()
// Vencidos
;dCalendario[Diferença em Dias] >= 0 &&  dCalendario[Diferença em Dias] <= 30 ;”Vencidos até 30 dias”
;dCalendario[Diferença em Dias] >= 31 && dCalendario[Diferença em Dias] <= 60 ;”Vencidos entre 31 a 60 dias”
;dCalendario[Diferença em Dias] >= 61 && dCalendario[Diferença em Dias] <= 90 ;”Vencidos entre 61 a 90 dias”
;dCalendario[Diferença em Dias] >= 91 && dCalendario[Diferença em Dias] <= 180;”Vencidos entre 91 a 180 dias”
;dCalendario[Diferença em Dias] >= 181 ;”Vencidos a mais de 180 dias”
// Vencer
;dCalendario[Diferença em Dias] <   0 &&  dCalendario[Diferença em Dias] >= -30 ;”A vencer em até 30 dias”
;dCalendario[Diferença em Dias] <= -31 && dCalendario[Diferença em Dias] >= -60 ;”A vencer entre 31 a 60 dias”
;dCalendario[Diferença em Dias] <= -61 && dCalendario[Diferença em Dias] >= -90 ;”A vencer entre 61 a 90 dias”
;dCalendario[Diferença em Dias] <= -91 && dCalendario[Diferença em Dias] >= -180;”A vencer entre 91 a 180 dias”
;dCalendario[Diferença em Dias] <= -181 ;”A Vencer a mais de 180 dias” )

Analisando  na tabela de validação:


Finalizado os cálculos e condições, podemos realizar as nossas análises, já que temos o range pronto. Vamos criar medidas com o total de NFs e o valor total por faixa.

Para obter a Quantidade, vamos assumir que cada linha da tabela seja uma NF, logo, a função COUNTROWS nos atenderá nessa condição.

Total Clientes = COUNTROWS (Range)

Para saber o Valor Total, vamos utilizar a função SUM

Valor Total = SUM(Range[Total])


Abaixo, como ficou o range:


Agora, precisamos saber quantos % os valores representa do total. Esse será o assunto do próximo post. Não perca!

Dúvidas? Deixe nos comentários!

Até a próxima.
Meirieli Ribeiro

Power BI – Usando a Função Datediff

2 ideias sobre “Power BI – Usando a Função Datediff

  • 26 de outubro de 2018 em 5:44 PM
    Permalink

    E se eu tiver o campo data da compra / o valor da parcela / e a quantidade de parcelas, como faço pra saber quanto tenho pra receber nos próximos meses?

    Resposta
    • 27 de outubro de 2018 em 8:45 PM
      Permalink

      Vc pode criar uam flag:

      Quando a data da parcela for menor que hoje, “Vencido”
      Quando a data da parcela for igual hoje “Vencendo Hoje”
      Quando a data da parcela for maior que hoje, “A vencer”

      Assim, vc tem categorizado a sua medida de valor por prazos, conforme acima.

      E ainda acompanha do seu total previsto X realizado, quanto já recebeu e quanto tem a receber. 🙂

      Abs.

      Resposta

Deixe uma resposta

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