Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content
Announcements
March 26 at 10am ET: See how Qlik drives growth and value in ISV segment - REGISTER NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
iluciano
Voyager
Voyager

Comparar Dias Úteis

Boa tarde pessoal

Estou fazendo um dash que preciso comparar uma métrica tendo como dimensão os dias úteis dos 2 meses antecessores ao mês atual.

Por exemplo, no banco tem um registro no dia 1 de outubro (1º dia util de outubro) e dia 2 de setembro (1º dia util de setembro). Em um gráfico de linha, por exemplo ele compare que no 1º dia util de setembro deu x reais de venda e no 1º dia util de agosto deu y reais.

Tipo assim:

diasuteis.png

 

Eu usei a função NetWorkDays() mas ela só retorna o número de dias uteis em um determinado range de datas. Existe alguma função ou alguma jeito de fazer isso que estou tentando?

Agradeço desde já.

1 Solution

Accepted Solutions
marco_almeida
Creator II
Creator II

Um jeito que não consumirá muita memória e processamento é criar uma dimensão que diz se aquela data é um dia útil ou não. Se for, você diz se é o primeiro, secundo etc dia útil do mês.

Esse é um template que você pode seguir pra executar a ideia.

LET _DATA_INICIAL = '01/12/2019';
SET _FERIADOS = '25/12/2019', '26/12/2019';

DATAS_EVENTO:
LOAD
	*
    , NetWorkDays(data, data, $(_FERIADOS)) as dia_util
;
LOAD
	DayName('$(_DATA_INICIAL)' + IterNo() - 1) as data
AutoGenerate 1
While
	'$(_DATA_INICIAL)' + IterNo() - 1 <= MonthEnd('$(_DATA_INICIAL)')
;

ORDEM_DATA:
LOAD
	data
    , RecNo() as ordem
RESIDENT DATAS_EVENTO
WHERE
	dia_util
ORDER BY
	dia_util desc
    , data
;
Grupo Telegram Qlik Brasil: https://t.me/joinchat/AeRmnUmcxQ02L00g3x-HtQ

View solution in original post

2 Replies
marco_almeida
Creator II
Creator II

Um jeito que não consumirá muita memória e processamento é criar uma dimensão que diz se aquela data é um dia útil ou não. Se for, você diz se é o primeiro, secundo etc dia útil do mês.

Esse é um template que você pode seguir pra executar a ideia.

LET _DATA_INICIAL = '01/12/2019';
SET _FERIADOS = '25/12/2019', '26/12/2019';

DATAS_EVENTO:
LOAD
	*
    , NetWorkDays(data, data, $(_FERIADOS)) as dia_util
;
LOAD
	DayName('$(_DATA_INICIAL)' + IterNo() - 1) as data
AutoGenerate 1
While
	'$(_DATA_INICIAL)' + IterNo() - 1 <= MonthEnd('$(_DATA_INICIAL)')
;

ORDEM_DATA:
LOAD
	data
    , RecNo() as ordem
RESIDENT DATAS_EVENTO
WHERE
	dia_util
ORDER BY
	dia_util desc
    , data
;
Grupo Telegram Qlik Brasil: https://t.me/joinchat/AeRmnUmcxQ02L00g3x-HtQ
iluciano
Voyager
Voyager
Author

Ótima ideia.
Obrigado pela ajuda.