кол-во рабочих дней между двумя датами (Qlikview, Qlik Sense)

Автор Varvara, 30 июля 2015, 05:53:43

« назад - далее »

Varvara

суть проблемы в следующем
есть 2 даты надо подсчитать кол- во дней межу этими датами которые были рабочими, т.е. исключить кол- во выходных и праздничных дней

admin

#1
Привет
ЦитироватьФункция networkdays возвращает число рабочих дней (понедельник-пятница) между и включая значения, указанные в поле start_date и end_date, учитывая выходные, которые можно дополнительно задать в поле holiday.
описание функции networkdays
Если используются "хитрые графики", то можно привязать график к календарю, проставив единички в колонке рабочих дней и затем просто подсчитать сумму с выражением Set Analysis.


Varvara

спасибо, а можно ли в функции networkdays в параметре holidays задать не перечисление конкретных дат, а подсунуть туда некий список, в котором будут прописаны праздничные дни

bibis

Добрый день. Возможно вм проще будет создать производственный календарь вида:
Дата | Рабочий день

Во вторую колонку ставить 0 если рабочий день, 1, если не рабочий и просто считать сумму


Varvara

#5
получилось вот такое решение
1) грузим таблицу праздничных дней не попадающих на выходные
LOAD * INLINE [
Праздничные даты
'01.01.2015'
'02.01.2015'
'05.01.2015'
'06.01.2015'
'07.01.2015'
'08.01.2015'
'09.01.2015'
'23.02.2015'
'09.03.2015'
'01.05.2015'
'04.05.2015'
'11.05.2015'
'12.06.2015'
'04.11.2014'
];

и пишем затем вот такую формулу

А=sum(networkdays (Дата1 ,Дата2)) - считаем кол- во дней между двумя датами без выходных

В=sum(if([Праздничные даты]>=Дата1  and Праздничные даты<=Дата2,1,0 ))) - получаем кол- во праздничных дней между 2 датами

А-В - получаем искомый результат

DmitryK

Можно сделать так:


Календарь:
load * inline[
Дата
'01.01.2015'
'02.01.2015'
'03.01.2015'
'04.01.2015'
'05.01.2015'
'06.01.2015'
'07.01.2015'
'08.01.2015'
'09.01.2015'
'10.01.2015'
'11.01.2015'
'12.01.2015'
'13.01.2015'
'14.01.2015'
'15.01.2015'
'16.01.2015'
'17.01.2015'
];

left join (Календарь)
LOAD * INLINE [
Дата, ПраздничныеДаты
'01.01.2015', 1
'02.01.2015', 1
'05.01.2015', 1
'06.01.2015', 1
'07.01.2015', 1
'08.01.2015', 1
'09.01.2015', 1
];


А в выражении прописать:

count(distinct {<ПраздничныеДаты = {*}-{1}>} Дата)

Или как у Вас:

sum(if(ПраздничныеДаты=1,0,1))

Яндекс.Метрика