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

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

« предыдущая - следующая »

Varvara

июля 30, 2015, 05:53:43 pm Последнее редактирование: июля 30, 2015, 09:33:17 pm от admin
суть проблемы в следующем
есть 2 даты надо подсчитать кол- во дней межу этими датами которые были рабочими, т.е. исключить кол- во выходных и праздничных дней

admin

июля 30, 2015, 05:59:57 pm #1 Последнее редактирование: июля 30, 2015, 06:02:17 pm от admin
Привет
ЦитироватьФункция networkdays возвращает число рабочих дней (понедельник-пятница) между и включая значения, указанные в поле start_date и end_date, учитывая выходные, которые можно дополнительно задать в поле holiday.

описание функции networkdays
Если используются "хитрые графики", то можно привязать график к календарю, проставив единички в колонке рабочих дней и затем просто подсчитать сумму с выражением Set Analysis.


Varvara

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

bibis

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

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


Varvara

июля 31, 2015, 01:41:25 pm #5 Последнее редактирование: августа 02, 2015, 09:59:33 pm от admin
получилось вот такое решение
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))

Рейтинг@Mail.ru Яндекс.Метрика