<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How to calculate working time in QlikView</title>
    <link>https://community.qlik.com/t5/QlikView/How-to-calculate-working-time/m-p/665791#M669129</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;there are some good post of&amp;nbsp; &lt;A href="https://community.qlik.com/people/jagan"&gt;jagan&lt;/A&gt; on working days calculation &lt;/P&gt;&lt;P&gt;&lt;A href="/t5/forums/searchpage/tab/message?q=working day&amp;amp;author=/people/23109"&gt;http://community.qlik.com/search.jspa?q=working+day&amp;amp;author=%2Fpeople%2F23109&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 20 Oct 2014 18:40:42 GMT</pubDate>
    <dc:creator>maxgro</dc:creator>
    <dc:date>2014-10-20T18:40:42Z</dc:date>
    <item>
      <title>How to calculate working time</title>
      <link>https://community.qlik.com/t5/QlikView/How-to-calculate-working-time/m-p/665790#M669128</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am trying to calculate the working time (in minutes) between two timestamps including working time and working days (...).&lt;/P&gt;&lt;P&gt;I have made a lot of tries and I found a working solution.&lt;/P&gt;&lt;P&gt;However, my solution is not relevant because it uses too many "if" statement combined with the intervalmatch function.&lt;/P&gt;&lt;P&gt;The script is too complicated ! &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Did someone meet the same problem ? How did you solve it ? Did you find a smarter solution ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for your help and your time ! &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Main data are looking like this :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE border="1" class="jiveBorder" style="border: 1px solid rgb(0, 0, 0); width: 100%;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;Projet&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;TimeStamp Start&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;TimeStamp End&lt;/TH&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;Projetct A&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;2014-02-03T09:00:00&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;2014-02-04T17:20:00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;Project B&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;2014-02-05T15:37:00&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;2014-02-10T09:50:05&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;...&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have another Table with the working hours / day in the week :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE border="1" class="jiveBorder" style="border: 1px solid rgb(0, 0, 0); width: 100%;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;Day&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;MorningStart&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;MorningEnd&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;AfterNoonStart&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;AfterNoonEnd&lt;/TH&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;Monday&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;08:00:00&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;12:00:00&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;14:00:00&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;18:00:00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;... (the same as monday)&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;Friday&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;08:00:00&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;12:00:00&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;14:00:00&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;17:00:00&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And a last table with each day off :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE border="1" class="jiveBorder" style="border: 1px solid rgb(0, 0, 0); width: 100%;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;Day Off&lt;/TH&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;2014-02-06&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;2014-08-08&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;...&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The result should be :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE border="1" class="jiveBorder" style="border: 1px solid rgb(0, 0, 0); width: 100%;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;Project&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;ProjectWorkingTime (minutes)&lt;/TH&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;Project A&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;1040 (calc : 09:00:00-&amp;gt;12:00:00 + 14:00:00-&amp;gt;18:00:00 + 08:00:00-&amp;gt;12:00:00 + 14:00:00-&amp;gt;17:20:00)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;Project B&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;673&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Oct 2014 17:58:10 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/How-to-calculate-working-time/m-p/665790#M669128</guid>
      <dc:creator />
      <dc:date>2014-10-20T17:58:10Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate working time</title>
      <link>https://community.qlik.com/t5/QlikView/How-to-calculate-working-time/m-p/665791#M669129</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;there are some good post of&amp;nbsp; &lt;A href="https://community.qlik.com/people/jagan"&gt;jagan&lt;/A&gt; on working days calculation &lt;/P&gt;&lt;P&gt;&lt;A href="/t5/forums/searchpage/tab/message?q=working day&amp;amp;author=/people/23109"&gt;http://community.qlik.com/search.jspa?q=working+day&amp;amp;author=%2Fpeople%2F23109&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Oct 2014 18:40:42 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/How-to-calculate-working-time/m-p/665791#M669129</guid>
      <dc:creator>maxgro</dc:creator>
      <dc:date>2014-10-20T18:40:42Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate working time</title>
      <link>https://community.qlik.com/t5/QlikView/How-to-calculate-working-time/m-p/665792#M669130</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Massimo,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Unfortunately, the problem is not on working days wich I can handle with NetWorkDays(...) function.&lt;/P&gt;&lt;P&gt;The main problem is the working hours.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Oct 2014 09:39:50 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/How-to-calculate-working-time/m-p/665792#M669130</guid>
      <dc:creator />
      <dc:date>2014-10-21T09:39:50Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate working time</title>
      <link>https://community.qlik.com/t5/QlikView/How-to-calculate-working-time/m-p/665793#M669131</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Have a look here: &lt;A href="http://community.qlikview.com/thread/60227" title="http://community.qlikview.com/thread/60227"&gt;Calculate hours between two Date/Time strings | Qlik Community&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Oct 2014 09:46:01 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/How-to-calculate-working-time/m-p/665793#M669131</guid>
      <dc:creator>tresB</dc:creator>
      <dc:date>2014-10-21T09:46:01Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate working time</title>
      <link>https://community.qlik.com/t5/QlikView/How-to-calculate-working-time/m-p/665794#M669132</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;Sorry for this late reply.&lt;/P&gt;&lt;P&gt;Thanks &lt;STRONG&gt;Tresesco&lt;/STRONG&gt;, this post was very helpful.&lt;/P&gt;&lt;P&gt;I have attached an example of my solution in a sub function.&lt;/P&gt;&lt;P&gt;An excel file is attached and used to list Holydays and Working hours.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;
&lt;P&gt;SUB CALC_DURATION(TableName,KeyField,StartDate,EndDate,DurationFieldName,CalendarParamDir)&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; //Generate each day between StartDate and EndDate&lt;/P&gt;
&lt;P&gt;&amp;nbsp; tmpCALC_DURATION:&lt;/P&gt;
&lt;P&gt;&amp;nbsp; LOAD $(KeyField),&lt;/P&gt;
&lt;P&gt;&amp;nbsp; iterno() as Iter,&lt;/P&gt;
&lt;P&gt;&amp;nbsp; daystart($(StartDate))+iterno()-1 as Date,&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp; weekday(daystart($(StartDate))+iterno()-1) as DayNumber,&lt;/P&gt;
&lt;P&gt;&amp;nbsp; $(StartDate),&lt;/P&gt;
&lt;P&gt;&amp;nbsp; $(EndDate)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; RESIDENT $(TableName)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; WHILE DAYSTART($(EndDate)) &amp;gt;= DAYSTART($(StartDate))+ITERNO()-1;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; //Add Holidays Table&lt;/P&gt;
&lt;P&gt;&amp;nbsp; LEFT JOIN(tmpCALC_DURATION)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; LOAD &lt;/P&gt;
&lt;P&gt;&amp;nbsp; Date, //key&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IsHoliday&lt;/P&gt;
&lt;P&gt;&amp;nbsp; FROM&lt;/P&gt;
&lt;P&gt;&amp;nbsp; $(CalendarParamDir)CalendarParams.xlsx&lt;/P&gt;
&lt;P&gt;&amp;nbsp; (ooxml, embedded labels, table is Holiday_Table);&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; //Add Working Hours table&lt;/P&gt;
&lt;P&gt;&amp;nbsp; LEFT JOIN(tmpCALC_DURATION)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; LOAD&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp; DayNumber, //key&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; time(DayStart) as DayStart, &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; time(BreakStart) as BreakStart,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; time(BreakEnd) as BreakEnd,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; time(DayEnd) as DayEnd&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp; FROM&lt;/P&gt;
&lt;P&gt;&amp;nbsp; $(CalendarParamDir)CalendarParams.xlsx&lt;/P&gt;
&lt;P&gt;&amp;nbsp; (ooxml, embedded labels, table is WorkingHours_Table);&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; //Calc Start hour and en hour for each day in the week&lt;/P&gt;
&lt;P&gt;&amp;nbsp; tmpCALC_DURATION_2:&lt;/P&gt;
&lt;P&gt;&amp;nbsp; LOAD &lt;/P&gt;
&lt;P&gt;&amp;nbsp; $(KeyField),&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp; Date,&lt;/P&gt;
&lt;P&gt;&amp;nbsp; DayStart,&lt;/P&gt;
&lt;P&gt;&amp;nbsp; BreakStart,&lt;/P&gt;
&lt;P&gt;&amp;nbsp; BreakEnd,&lt;/P&gt;
&lt;P&gt;&amp;nbsp; DayEnd,&lt;/P&gt;
&lt;P&gt;&amp;nbsp; IsHoliday,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp; if(Iter=1, &lt;/P&gt;
&lt;P&gt;&amp;nbsp; rangemin(rangemax(frac($(StartDate)),DayStart),DayEnd)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; ,DayStart) as Start,&lt;/P&gt;
&lt;P&gt;&amp;nbsp; if(Date=daystart($(EndDate)),&lt;/P&gt;
&lt;P&gt;&amp;nbsp; rangemax(DayStart,rangemin(frac($(EndDate)),DayEnd))&lt;/P&gt;
&lt;P&gt;&amp;nbsp; ,DayEnd) as End&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; RESIDENT tmpCALC_DURATION;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; DROP TABLE tmpCALC_DURATION;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; //Calc Duration with End and Start&lt;/P&gt;
&lt;P&gt;&amp;nbsp; LEFT JOIN($(TableName))&lt;/P&gt;
&lt;P&gt;&amp;nbsp; LOAD&lt;/P&gt;
&lt;P&gt;&amp;nbsp; $(KeyField), //key&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; interval(&lt;/P&gt;
&lt;P&gt;&amp;nbsp; sum(End-Start+&lt;/P&gt;
&lt;P&gt;&amp;nbsp; if(Start&amp;lt;BreakStart and End&amp;gt;BreakStart,&lt;/P&gt;
&lt;P&gt;&amp;nbsp; BreakStart-BreakEnd&lt;/P&gt;
&lt;P&gt;&amp;nbsp; ,0)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; )&lt;/P&gt;
&lt;P&gt;&amp;nbsp; ) as $(DurationFieldName)&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; RESIDENT tmpCALC_DURATION_2&lt;/P&gt;
&lt;P&gt;&amp;nbsp; WHERE IsHoliday&amp;lt;&amp;gt;1&lt;/P&gt;
&lt;P&gt;&amp;nbsp; GROUP BY $(KeyField);&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; DROP TABLE tmpCALC_DURATION_2;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;END SUB&lt;/P&gt;
&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 28 Oct 2014 17:30:07 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/How-to-calculate-working-time/m-p/665794#M669132</guid>
      <dc:creator />
      <dc:date>2014-10-28T17:30:07Z</dc:date>
    </item>
  </channel>
</rss>

