Função DiasUteis

Segue abaixo como criar uma “função” em Qlikview/Sense que permite calcular a quantidade de dias úteis entre duas datas, considerando uma lista de feriados.

Usei o conceito de variáveis com parâmetros para que pudesse criar essa função

Feriados: 
LOAD * INLINE [ 
 Data
 01/01/2018
 13/02/2018
 30/03/2018
 31/04/2018
 01/05/2017
 31/05/2018
 07/09/2018
 12/10/2018
 02/11/2018
 15/11/2018
 25/12/2018
];
// Junta os sabados, comente o comando abaixo se sábado for considerado um dia útil
load
    Date(MakeDate(2018,1,6) + (RecNo()-1)*7) as Data
autogenerate ceil((Today() - MakeDate(2018,1,6))/7)+1;            
// Gera variavel com lista de feriados 
T: 
LOAD Concat(Num(FieldValue('Data',RecNo())),',') as F AutoGenerate FieldValueCount('Data'); 

Let vFeriados=Peek('F'); 
Drop Table T, Feriados; 
// Cria "funcao" DiasUteis 
Set DiasUteis = (RangeMax(NetworkDays($1, $2, $(vFeriados)),0)); 
// Remoção 
Set vFeriados=; 
   
  // Agora vamos usar nossa "função"  
    LOAD  
      BeginTimePeriodDt,  
      $(DiasUteis(BeginTimePeriodDt,today())) as DiasUteis, // quantidade de dias uteis  
      TENANT,  
      [AGENT DISP ID],  
      [AGENT DISPOSITION],  
      [AGENT DISPOSITION DESC],  
      APPLICATION,  
      [CALL DURATION]  
    FROM [cloud_AOD_Calls_2016-06-15.qvd](qvd);

Essa variável continua válida na sua aplicação, então você pode usar em uma expressão algo como

  • $(DiasUteis(Today(),MonthEnd(Today()))) para calcular quantos dias uteis tem até o final do mês
  • $(DiasUteis(D1,D2)) para calcular a quantidade de dias úteis entre D1 e D2

Link para comunidade: https://community.qlik.com/groups/qlikview-brasil/blog/2016/06/16/fun%C3%A7%C3%A3o-diasuteis

Deixe uma resposta

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