Atendimento via WhatsApp Atendimento via WhatsApp

Blog Tecnológico

Power BI: Contando dias Úteis X Corridos

Erick Reis • 25 mai 2023 • Microsoft Power BI

Power BI: Contando dias Úteis X Corridos

Muitas vezes nas suas tabelas você encontrará situações onde você precisa em certos momentos contabilizar quanto tempo se passou entre dois períodos.

E isso é algo que o Power BI consegue trazer para nós através do DAX de formas que possam surpreender as pessoas que estão analisando seu relatório.

Por exemplo, digamos que você tenha em uma tabela duas colunas com informações de datas que indicam o início e o término de uma determinada ação. E a partir dessa ação, você deseja saber quanto tempo se passou entre o início e término dela.

Através do Power BI podemos utilizar duas funções que são muitos parecidas, mas que trabalham de formas diferentes nessa contabilização, que são as funções DATEDIFF e NETWORKDAYS.

Mas qual a diferença entre elas?

A função DATEDIFF tende a contabilizar para você em um período de dias corridos, ou seja, contabilizando quaisquer feriados, finais de semana que tenha durante esse período.

Já a função NETWORKDAYS trabalha de uma forma um pouco diferente, pois ela não contabiliza finais de semana e você pode também passar uma coluna que contenham os feriados que você deseja excluir dessa contagem (já que feriado é algo muito relativo, pois depende do estado, região, cidade, etc.).

Mas vamos colocar em prática para entendermos melhor como essas duas funções trabalham.

Em nossa tabela abaixo, notem que nós temos duas colunas referentes a datas:

Supondo que queiramos realizar a contagem de dias que se passaram desde a data do estoque até a data em que o produto foi efetivamente vendido, nesse momento entram as duas funções que comentamos anteriormente.

Essas funções são:

DATEDIFF – Conta quanto tempo (tempo corrido) se passou entre dois períodos

NETWORKDAYS – Conta quanto tempo (dias úteis) se passou entre dois períodos

Como comentamos, ambas vão tratar de realizar a contagem de quanto tempo se passou entre duas datas que você especificar

Por exemplo, iniciando a contagem de dias corridos usando a função DATEDIFF.

Vamos iniciar criando uma Coluna Calculada dentro da Tabela Fato Vendas e inserindo nossa função DATEDIFF:

Ela nos pede três informações:

Data1 – Data inicial que você deseja começar a contabilizar

Data2 – Data Final

Interval – Se você deseja contar esse intervalo em:

  1. Segundos (Second)
  2. Minutos (Minutes)
  3. Horas (Hour),
  4. Dias (Day)
  5. Semanas (Week)
  6. Meses (Month)
  7. Trimestres (Quarter)
  8. Anos (Year)

 

Criando nossa coluna calculada:

Dias Corridos = DATEDIFF('Fato Vendas'[Data Estoque];'Fato Vendas'[Data Transação];DAY)

Temos então como resultado:

Mas lembrando que aqui estamos contando quantos dias corridos se passaram, ou seja, ignorando feriados e finais de semana.

Mas podemos também contabilizar somente dias úteis utilizando a função NETWORKDAYS, que trabalha de forma muito similar já que ela pede para nós os seguintes argumentos:

Para que ela possa funcionar, as únicas coisas que ela realmente precisa para trabalhar é a data inicial e final (bem parecido com a Datediff que usamos anteriormente).

Mas temos também como especificar os dias que você considera como parte do final de semana de acordo com a tabela de códigos da Microsoft:

Então dependendo do código que você informar no terceiro argumento do final de semana, ele irá contabilizar somente os dias descritos na tabela de códigos acima como final de semana.

Criando então nossa coluna calculada para calcularmos os dias úteis:

Dias Úteis = NETWORKDAYS('Fato Vendas'[Data Estoque];'Fato Vendas'[Data Transação])

Temos então como resultado:

Lembrando que aqui, como não especifiquei um código para a contagem dos finais de semana, ele está contabilizando sábado e domingo como sendo parte do final de semana.

E uma parte muito interessante é que você pode utilizar junto delas outras funções que especifiquem a sua data final.

Por exemplo, digamos que eu queira contar quantos dias se passaram da data da transação até o dia de hoje (mas sempre de forma dinâmica, fazendo com que ele contabilize de forma automática ao passar o dia).

Para isso, podemos substituir a data final de alguma das funções que vimos acima pela função Today ().

Today () – Retorna o dia atual de forma dinâmica

Aplicando isso na nossa coluna por exemplo:

Data venda até o dia de hoje = NETWORKDAYS('Fato Vendas'[Data Transação];TODAY() )

Teremos como resultado:

Então não necessariamente precisamos ficar presos a colunas que contenham datas para que você especifique a data final ou a data inicial.

Então no artigo de hoje vimos como é possível realizar contagem de períodos utilizando essas duas funções DAX no Power BI, por isso é importante você sempre manter o seu Power BI o mais atualizado possível (já que muitas funções vão aparecendo ao decorrer das atualizações mensais).

Gostou deste conteúdo?




 

 

Erick Reis

Erick Reis

Graduado em Análise e desenvolvimento de sistemas pela FAM, apaixonado por tecnologias que envolvam análise de dados, programação, banco de dados. Atualmente atuando em tecnologias de análise de dados como: Power BI, Excel, Banco de dados. Erick conquistou sua Certificação em Power BI, na ENG DTP & Multimídia. E veio a se tornar um MCT em Power BI, na ENG DTP & Multimídia.

ENG DTP & Multimídia - Logo

 

 

ENVIE SEU CONTATO e SEUS COMENTÁRIOS


LinkedIn da ENG DTP Multimídia
     Facebook da ENG DTP Multimídia     Instagram da ENG DTP Multimídia

 Jornad Graphic Design