Неофициальный форум пользователей Qlik Sense & Qlikview

Для разработчиков => Вопросы по Qlik Sense & QlikView => Тема начата: Varvara от 30 июля 2015, 05:53:43

Название: кол-во рабочих дней между двумя датами (Qlikview, Qlik Sense)
Отправлено: Varvara от 30 июля 2015, 05:53:43
суть проблемы в следующем
есть 2 даты надо подсчитать кол- во дней межу этими датами которые были рабочими, т.е. исключить кол- во выходных и праздничных дней
Название: Re: кол-во рабочих дней между двумя датами
Отправлено: admin от 30 июля 2015, 05:59:57
Привет
ЦитироватьФункция networkdays возвращает число рабочих дней (понедельник-пятница) между и включая значения, указанные в поле start_date и end_date, учитывая выходные, которые можно дополнительно задать в поле holiday.
описание функции networkdays (http://help.qlik.com/sense/2.0/ru-RU/online/#../Subsystems/Hub/Content/Scripting/DateAndTimeFunctions/networkdays.htm?Highlight=%D1%80%D0%B0%D0%B1%D0%BE%D1%87%D0%B8%D1%85%20%D0%B4%D0%BD%D0%B5%D0%B9)
Если используются "хитрые графики", то можно привязать график к календарю, проставив единички в колонке рабочих дней и затем просто подсчитать сумму с выражением Set Analysis.
Название: Re: кол-во рабочих дней между двумя датами (Qlikview, Qlik Sense)
Отправлено: kvv от 31 июля 2015, 09:29:03
Добрый день.
Также, можно почитать http://qlikview-forum.ru/qvf/index.php/topic,656.msg1353.html#msg1353 (http://qlikview-forum.ru/qvf/index.php/topic,656.msg1353.html#msg1353).
Название: Re: кол-во рабочих дней между двумя датами (Qlikview, Qlik Sense)
Отправлено: Varvara от 31 июля 2015, 09:55:23
спасибо, а можно ли в функции networkdays в параметре holidays задать не перечисление конкретных дат, а подсунуть туда некий список, в котором будут прописаны праздничные дни
Название: Re: кол-во рабочих дней между двумя датами (Qlikview, Qlik Sense)
Отправлено: bibis от 31 июля 2015, 10:05:37
Добрый день. Возможно вм проще будет создать производственный календарь вида:
Дата | Рабочий день

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

Название: Re: кол-во рабочих дней между двумя датами (Qlikview, Qlik Sense)
Отправлено: Varvara от 31 июля 2015, 01:41:25
получилось вот такое решение
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 датами

А-В - получаем искомый результат
Название: Re: кол-во рабочих дней между двумя датами (Qlikview, Qlik Sense)
Отправлено: DmitryK от 03 августа 2015, 11:26:46
Можно сделать так:


Календарь:
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))