<?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: Time Measure - Productive hours with duplicates and overlaps. in DAX Commands and Tips</title>
    <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Time-Measure-Productive-hours-with-duplicates-and-overlaps/m-p/1772106#M37087</link>
    <description>&lt;P&gt;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="4037" data-lia-user-login="stevedep" class="lia-mention lia-mention-user"&gt;stevedep&lt;/a&gt;&amp;nbsp;I reviewed the post and I tested on my case but unfortunately that doesn't work since this option doesn't deal with overlaps (in my case the workorders W_03, W_04, W_05).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any idea?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks again&lt;/P&gt;</description>
    <pubDate>Wed, 07 Apr 2021 11:59:29 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2021-04-07T11:59:29Z</dc:date>
    <item>
      <title>Time Measure - Productive hours with duplicates and overlaps.</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Time-Measure-Productive-hours-with-duplicates-and-overlaps/m-p/1172685#M18154</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am looking for some help calculating productive hours where employees can record multiple entries when working with groups of clients.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For example&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Worker ID&lt;/TD&gt;&lt;TD&gt;Client ID&lt;/TD&gt;&lt;TD&gt;Start&lt;/TD&gt;&lt;TD&gt;End&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;25&lt;/TD&gt;&lt;TD&gt;25/10/2019 9:30&lt;/TD&gt;&lt;TD&gt;25/10/2019 10:30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;15&lt;/TD&gt;&lt;TD&gt;25/10/2019 11:00&lt;/TD&gt;&lt;TD&gt;25/10/2019 11:30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;86&lt;/TD&gt;&lt;TD&gt;25/10/2019 11:00&lt;/TD&gt;&lt;TD&gt;25/10/2019 12:00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;21&lt;/TD&gt;&lt;TD&gt;25/10/2019 11:00&lt;/TD&gt;&lt;TD&gt;25/10/2019 12:00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;25/10/2019 11:00&lt;/TD&gt;&lt;TD&gt;25/10/2019 12:00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;169&lt;/TD&gt;&lt;TD&gt;25/10/2019 11:00&lt;/TD&gt;&lt;TD&gt;25/10/2019 12:00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;85&lt;/TD&gt;&lt;TD&gt;28/10/2019 9:00&lt;/TD&gt;&lt;TD&gt;28/10/2019 10:00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;91&lt;/TD&gt;&lt;TD&gt;28/10/2019 9:00&lt;/TD&gt;&lt;TD&gt;28/10/2019 10:00&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So for the 25/10/2019 for Worker 1 it should return 2 hours ie 2 hours of the workers time was spent providing services.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;</description>
      <pubDate>Mon, 22 Jun 2020 02:06:14 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Time-Measure-Productive-hours-with-duplicates-and-overlaps/m-p/1172685#M18154</guid>
      <dc:creator>Credible</dc:creator>
      <dc:date>2020-06-22T02:06:14Z</dc:date>
    </item>
    <item>
      <title>Re: Time Measure - Productive hours with duplicates and overlaps.</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Time-Measure-Productive-hours-with-duplicates-and-overlaps/m-p/1172957#M18163</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="170261" data-lia-user-login="Credible" class="lia-mention lia-mention-user"&gt;Credible&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I had this one lying on the shelf, this is an interesting DAX challenge since we do not want to duplicate time and consider that some activities for another client start while the timer might be running for another. Here is the code:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;Measure = 
// first get distinct times per worker, per date
var _NewTbl = CALCULATETABLE(SUMMARIZE('Table';'Table'[Worker ID];'Table'[Start];'Table'[End]);ALLEXCEPT('Table';'Table'[Worker ID];'Table'[Start];'Table'[End]))
return
SUMX(_NewTbl; // iterating the rows to calculate the values for each row, of these values the sum is taken
    CALCULATE( // calculate to force context transition, set the context to the row being iterated!
        // set the outer variable values, for the row being interated.
        var __startdate =       SELECTEDVALUE('Table'[Start])
        var __enddate =         SELECTEDVALUE('Table'[end])
        var __EQ    =           SELECTEDVALUE('Table'[Worker ID])
        var __Contract =        SELECTEDVALUE('Table'[Client ID])

        // calculate a new duration based on the adjusted end date, taken from the client which extends the clienttime being interated.
        var __adjustedduration =    CALCULATE( // for the row being interated we iterate the table again (for the worker) to find clientactivities which might extend its duration
                                    SUMX('Table';  DATEDIFF(__startdate;[End];MINUTE)) ;  
                                    // below is the filter context to get all clientactivities for this worker that might extend.                                   
                                    FILTER(ALL('Table'); 'Table'[Start] &amp;gt; __startdate &amp;amp;&amp;amp; 'Table'[end] &amp;gt; __enddate &amp;amp;&amp;amp; 'Table'[Start] &amp;lt; __enddate &amp;amp;&amp;amp; 'Table'[Worker ID] = SELECTEDVALUE('Table'[Worker ID]))
                                    )
         // below code checks to see if there are any clientactivity which might extend its duration.            
        var __check_dependant = FILTER(ALL('Table'); 
                                                ('Table'[end] &amp;gt; __startdate &amp;amp;&amp;amp; 'Table'[Start] &amp;lt; __startdate) // end date of clientactivity beyond start of current &amp;amp; started before current
                                                || //or
                                                ('Table'[Start] &amp;lt; __enddate &amp;amp;&amp;amp; 'Table'[end] &amp;gt; __enddate) // started before and end later
                                                &amp;amp;&amp;amp;  'Table'[Worker ID] = SELECTEDVALUE('Table'[Worker ID])
                                                )
        return 
        IF(COUNTROWS(__check_dependant)=0; // if the clientactivity is independant / disjunct just takes its own start and end
            DATEDIFF(MIN('Table'[Start]);MIN('Table'[End]);MINUTE) / 60;
            // if not take the adjusted duration
            __adjustedduration / 60)
        )
)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;With the output visible here:&lt;/P&gt;&lt;P&gt;&lt;img /&gt;&lt;/P&gt;&lt;P&gt;The challenge with this one is to make sure it aggregates well, I therefore show the hierarchy to demonstrate its support.&amp;nbsp;&lt;/P&gt;&lt;P&gt;The file is available &lt;EM&gt;&lt;STRONG&gt;&lt;A href="https://1drv.ms/u/s!AvU6hhKLfmEcgdh5K9kdtoR3ZkITIg?e=DJ5vBf" target="_self"&gt;here&lt;/A&gt;&lt;/STRONG&gt;&lt;/EM&gt;.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Does this answer your question? If so, please mark as &lt;U&gt;&lt;STRONG&gt;solution&lt;/STRONG&gt;&lt;/U&gt;. Thumbs up for the effort is appreciated.&lt;/P&gt;&lt;P&gt;Kind regards,&amp;nbsp;&lt;/P&gt;&lt;P&gt;Steve.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 22 Jun 2020 05:53:44 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Time-Measure-Productive-hours-with-duplicates-and-overlaps/m-p/1172957#M18163</guid>
      <dc:creator>stevedep</dc:creator>
      <dc:date>2020-06-22T05:53:44Z</dc:date>
    </item>
    <item>
      <title>Re: Time Measure - Productive hours with duplicates and overlaps.</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Time-Measure-Productive-hours-with-duplicates-and-overlaps/m-p/1172974#M18164</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="170261" data-lia-user-login="Credible" class="lia-mention lia-mention-user"&gt;Credible&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Create a Calculated column&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;CALCULATE(Min('Table'[Start]),FILTER( ALLEXCEPT('Table','Table'[Column]), 'Table'[Client ID] = MAX('Table'[Client ID])))&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;img /&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Create the&amp;nbsp; measure&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Service Rendered (in Hours) = &lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;var a = CALCULATE(Min('Table'[Start]),FILTER(ALL('Table'),'Table'[Date Column] = MAX('Table'[Date Column]) &amp;amp;&amp;amp; 'Table'[Worker ID] = MAX('Table'[Worker ID])))&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;var b = CALCULATE(MAX('Table'[End]),FILTER(ALL('Table'),'Table'[Date Column] = MAX('Table'[Date Column]) &amp;amp;&amp;amp; 'Table'[Worker ID] = MAX('Table'[Worker ID])))&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;RETURN&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;DIVIDE(DATEDIFF(a,b,MINUTE),60)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;img /&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;P&gt;Regards,&lt;BR /&gt;Harsh Nathani&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Did I answer your question? Mark my post as a solution! Appreciate with a Kudos!! (Click the Thumbs Up Button)&lt;/STRONG&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Mon, 22 Jun 2020 06:03:36 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Time-Measure-Productive-hours-with-duplicates-and-overlaps/m-p/1172974#M18164</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2020-06-22T06:03:36Z</dc:date>
    </item>
    <item>
      <title>Re: Time Measure - Productive hours with duplicates and overlaps.</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Time-Measure-Productive-hours-with-duplicates-and-overlaps/m-p/1176665#M18282</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="170261" data-lia-user-login="Credible" class="lia-mention lia-mention-user"&gt;Credible&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;I made a calculated column version to address the performance issue:&lt;/P&gt;&lt;P&gt;&lt;img /&gt;&lt;/P&gt;&lt;P&gt;I broke it up in a bunch of calc columns, here they are:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;Dependant = 
        var __Startdate     =   [Start].[Date]
        var __StartDateTime =   [Start]
        var __Enddate       =   [end]
        var __WorkerID     =    [Worker ID]
        var __Client        =   [Client ID] 


var __check_dependant = FILTER(ALL('Table');    'Table'[Worker ID] = __WorkerID &amp;amp;&amp;amp; [Start].[Date] = __Startdate &amp;amp;&amp;amp; 
                                                (
                                                ([end] &amp;gt; __StartDateTime &amp;amp;&amp;amp; [Start] &amp;gt;= __StartDateTime) // end date of clientactivity beyond start of current &amp;amp; started before current
                                                &amp;amp;&amp;amp; //or
                                                ([Start] &amp;lt; __Enddate &amp;amp;&amp;amp; [end] &amp;gt; __Enddate)
                                                ) // started before and end later
)
return
IF(COUNTROWS(__check_dependant)=0;FALSE();TRUE())
                                                &lt;/LI-CODE&gt;&lt;LI-CODE lang="markup"&gt;Adjusted_EndTime = 
        var __Startdate         =   [Start].[Date]
        var __StartDateTime     =   'Table'[Start]
        var __Enddate           =   [end]
        var __WorkerID          =   [Worker ID]
        var __Client            =   [Client ID] 
   
       var __Filter        =    FILTER(ALL('Table');'Table'[Worker ID]=__WorkerID &amp;amp;&amp;amp; [Start].[Date] = __Startdate &amp;amp;&amp;amp;
                                        [Start] &amp;gt;= __StartDateTime &amp;amp;&amp;amp; [end] &amp;gt; __Enddate &amp;amp;&amp;amp; [Start] &amp;lt; __Enddate
                                        )
return
CALCULATE(MAX('Table'[End]);__Filter)&lt;/LI-CODE&gt;&lt;LI-CODE lang="markup"&gt;Absorbed = 
        var __Startdate     =   [Start].[Date]
        var __StartDateTime =   [Start]
        var __Enddate       =   [end]
        var __WorkerID     =    [Worker ID]
        var __Client        =   [Client ID] 


var __check_absorbed = FILTER(ALL('Table');    [Worker ID] = __WorkerID &amp;amp;&amp;amp; [Start].[Date] = __Startdate &amp;amp;&amp;amp; 
                                                 __StartDateTime &amp;gt;= [Start] &amp;amp;&amp;amp; __StartDateTime &amp;lt; [End] &amp;amp;&amp;amp; __Enddate &amp;gt; [End])
                                             
return
IF(COUNTROWS(__check_absorbed)=0;FALSE();TRUE())&lt;/LI-CODE&gt;&lt;LI-CODE lang="markup"&gt;RankSupport = RANDBETWEEN(1;100)&lt;/LI-CODE&gt;&lt;LI-CODE lang="markup"&gt;Rank = 
var __WorkerID = [Worker ID]
var __Start = [Start]
var __End = [End]
return
RANKX (
    FILTER ( ALL('Table'); [Worker ID] = __WorkerID &amp;amp;&amp;amp; [Start] = __Start &amp;amp;&amp;amp; [End] = __End ) ;
    [RankSupport]
)&lt;/LI-CODE&gt;&lt;LI-CODE lang="markup"&gt;NewEnd = IF([Rank]=1 &amp;amp;&amp;amp; [Absorbed]=FALSE;
                IF([Dependant]=TRUE;[Adjusted_EndTime];[End]))&lt;/LI-CODE&gt;&lt;LI-CODE lang="markup"&gt;Timespent = IF(NOT(ISBLANK('Table'[NewEnd]));DATEDIFF([Start];[NewEnd];MINUTE)/60;BLANK())&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Looking forward to hearing how this works.&lt;/P&gt;&lt;P&gt;Kind regards, Steve.&lt;/P&gt;</description>
      <pubDate>Wed, 24 Jun 2020 05:11:38 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Time-Measure-Productive-hours-with-duplicates-and-overlaps/m-p/1176665#M18282</guid>
      <dc:creator>stevedep</dc:creator>
      <dc:date>2020-06-24T05:11:38Z</dc:date>
    </item>
    <item>
      <title>Re: Time Measure - Productive hours with duplicates and overlaps.</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Time-Measure-Productive-hours-with-duplicates-and-overlaps/m-p/1178131#M18312</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="4037" data-lia-user-login="stevedep" class="lia-mention lia-mention-user"&gt;stevedep&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The calculated columns are working well from a performance point of view. There is still some issues with calculation though.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Consider the&lt;SPAN&gt;&amp;nbsp;data set below. I would expect timespent to output:&lt;/SPAN&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;SPAN&gt;27/07/2019 2 hours&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;29/07/2019 4.5 hours&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;30/07/2019 6.5 hours&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;SPAN&gt;The current results output 1, 4.5 and 3.5 respectively.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Worker ID&lt;/TD&gt;&lt;TD&gt;Start&lt;/TD&gt;&lt;TD&gt;End&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;27/07/2019 9:00&lt;/TD&gt;&lt;TD&gt;27/07/2019 10:00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;27/07/2019 9:00&lt;/TD&gt;&lt;TD&gt;27/07/2019 10:00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;27/07/2019 9:00&lt;/TD&gt;&lt;TD&gt;27/07/2019 10:00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;27/07/2019 9:00&lt;/TD&gt;&lt;TD&gt;27/07/2019 10:00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;27/07/2019 9:00&lt;/TD&gt;&lt;TD&gt;27/07/2019 10:00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;27/07/2019 9:00&lt;/TD&gt;&lt;TD&gt;27/07/2019 10:00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;27/07/2019 10:00&lt;/TD&gt;&lt;TD&gt;27/07/2019 11:00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;29/07/2019 10:30&lt;/TD&gt;&lt;TD&gt;29/07/2019 12:00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;29/07/2019 10:30&lt;/TD&gt;&lt;TD&gt;29/07/2019 12:00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;29/07/2019 12:30&lt;/TD&gt;&lt;TD&gt;29/07/2019 13:30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;29/07/2019 12:30&lt;/TD&gt;&lt;TD&gt;29/07/2019 13:30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;29/07/2019 12:30&lt;/TD&gt;&lt;TD&gt;29/07/2019 14:00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;29/07/2019 12:30&lt;/TD&gt;&lt;TD&gt;29/07/2019 14:00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;29/07/2019 14:15&lt;/TD&gt;&lt;TD&gt;29/07/2019 15:15&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;29/07/2019 22:00&lt;/TD&gt;&lt;TD&gt;29/07/2019 22:30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;30/07/2019 9:00&lt;/TD&gt;&lt;TD&gt;30/07/2019 10:00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;30/07/2019 9:00&lt;/TD&gt;&lt;TD&gt;30/07/2019 10:30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;30/07/2019 9:00&lt;/TD&gt;&lt;TD&gt;30/07/2019 10:30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;30/07/2019 9:00&lt;/TD&gt;&lt;TD&gt;30/07/2019 10:30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;30/07/2019 9:00&lt;/TD&gt;&lt;TD&gt;30/07/2019 10:30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;30/07/2019 9:30&lt;/TD&gt;&lt;TD&gt;30/07/2019 9:30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;30/07/2019 10:00&lt;/TD&gt;&lt;TD&gt;30/07/2019 11:30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;30/07/2019 10:30&lt;/TD&gt;&lt;TD&gt;30/07/2019 12:00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;30/07/2019 10:30&lt;/TD&gt;&lt;TD&gt;30/07/2019 12:00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;30/07/2019 11:00&lt;/TD&gt;&lt;TD&gt;30/07/2019 12:00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;30/07/2019 12:30&lt;/TD&gt;&lt;TD&gt;30/07/2019 12:30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;30/07/2019 12:30&lt;/TD&gt;&lt;TD&gt;30/07/2019 12:30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;30/07/2019 12:30&lt;/TD&gt;&lt;TD&gt;30/07/2019 13:00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;30/07/2019 12:30&lt;/TD&gt;&lt;TD&gt;30/07/2019 14:00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;30/07/2019 12:30&lt;/TD&gt;&lt;TD&gt;30/07/2019 14:00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;30/07/2019 12:30&lt;/TD&gt;&lt;TD&gt;30/07/2019 14:00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;30/07/2019 12:30&lt;/TD&gt;&lt;TD&gt;30/07/2019 14:00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;30/07/2019 13:00&lt;/TD&gt;&lt;TD&gt;30/07/2019 14:00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;30/07/2019 14:15&lt;/TD&gt;&lt;TD&gt;30/07/2019 15:15&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;30/07/2019 22:30&lt;/TD&gt;&lt;TD&gt;30/07/2019 23:30&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Wed, 24 Jun 2020 04:27:00 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Time-Measure-Productive-hours-with-duplicates-and-overlaps/m-p/1178131#M18312</guid>
      <dc:creator>Credible</dc:creator>
      <dc:date>2020-06-24T04:27:00Z</dc:date>
    </item>
    <item>
      <title>Re: Time Measure - Productive hours with duplicates and overlaps.</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Time-Measure-Productive-hours-with-duplicates-and-overlaps/m-p/1180428#M18382</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="170261" data-lia-user-login="Credible" class="lia-mention lia-mention-user"&gt;Credible&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I changed the approach by adjusting the start time. This is giving the expected results:&lt;/P&gt;&lt;P&gt;&lt;img /&gt;&lt;/P&gt;&lt;P&gt;The calc columns now are:&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;TimeSpentV2 = 
IF([Rank]=1 &amp;amp;&amp;amp; 'Table'[AbsorbedV2]=FALSE(); 
    IF(NOT(ISBLANK('Table'[Adjusted_StartTime]));DATEDIFF([Adjusted_StartTime];[End];MINUTE)/60;DATEDIFF([Start];[End];MINUTE)/60);BLANK())&lt;/LI-CODE&gt;&lt;P&gt;Using Rank (unchanged):&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;Rank = 
var __WorkerID = [Worker ID]
var __Start = [Start]
var __End = [End]
return
RANKX (
    FILTER ( ALL('Table'); [Worker ID] = __WorkerID &amp;amp;&amp;amp; [Start] = __Start &amp;amp;&amp;amp; [End] = __End ) ;
    [RankSupport]
)&lt;/LI-CODE&gt;&lt;P&gt;Using (unchanged):&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;RankSupport = RANDBETWEEN(1;100)&lt;/LI-CODE&gt;&lt;P&gt;Check absorbed (changed):&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;AbsorbedV2 = 
        var __Startdate     =   [Start].[Date]
        var __StartDateTime =   [Start]
        var __Enddate       =   [end]
        var __WorkerID     =    [Worker ID]
        var __Client        =   [Client ID] 


var __check_absorbed = FILTER(ALL('Table');    [Worker ID] = __WorkerID &amp;amp;&amp;amp; [Start].[Date] = __Startdate &amp;amp;&amp;amp; 
                                                 [Start] &amp;lt;= __StartDateTime &amp;amp;&amp;amp; [End] &amp;gt;= __Enddate
                                                 &amp;amp;&amp;amp; [Client ID] &amp;lt;&amp;gt; __Client &amp;amp;&amp;amp; [Rank]=1)
                                             
return
//CONCATENATEX(__check_absorbed;[Client ID])
IF(
    COUNTROWS(__check_absorbed)
    =0;FALSE();TRUE())&lt;/LI-CODE&gt;&lt;P&gt;And the new start time (new):&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;Adjusted_StartTime = 
        var __Startdate         =   [Start].[Date]
        var __StartDateTime     =   'Table'[Start]
        var __Enddate           =   [end]
        var __WorkerID          =   [Worker ID]
        var __Client            =   [Client ID] 
   
       var __Filter        =    FILTER(ALL('Table');'Table'[Worker ID]=__WorkerID &amp;amp;&amp;amp; [Start].[Date] = __Startdate &amp;amp;&amp;amp;
                                       [End] &amp;gt; __StartDateTime &amp;amp;&amp;amp; [End] &amp;lt; __Enddate &amp;amp;&amp;amp; [Rank] = 1 &amp;amp;&amp;amp; [AbsorbedV2]=FALSE()
                                        )
return
CALCULATE(MAX('Table'[End]);__Filter)&lt;/LI-CODE&gt;&lt;P&gt;That should be it. I sent your file via a PM.&lt;/P&gt;&lt;P&gt;Kind regards, Steve.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 24 Jun 2020 19:56:10 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Time-Measure-Productive-hours-with-duplicates-and-overlaps/m-p/1180428#M18382</guid>
      <dc:creator>stevedep</dc:creator>
      <dc:date>2020-06-24T19:56:10Z</dc:date>
    </item>
    <item>
      <title>Re: Time Measure - Productive hours with duplicates and overlaps.</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Time-Measure-Productive-hours-with-duplicates-and-overlaps/m-p/1764223#M36951</link>
      <description>&lt;P&gt;Hello All,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a pretty similar problem, except in my case the jobs can spread over several days and I need to figure out how to deal with opening hours.&lt;/P&gt;&lt;P&gt;Let me explain, I have jobs recorded against assets. I would like to know how long the workshop is used over a period.&lt;/P&gt;&lt;P&gt;Workshop is opened from 08:00 to 20:00 and is closed the Sunday.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;img /&gt;&lt;/P&gt;&lt;P&gt;I would expect the following results for the asset A_01&lt;/P&gt;&lt;P&gt;&lt;img /&gt;&lt;/P&gt;&lt;P&gt;And below the calculation details for the asset A_01 for the period of March&lt;/P&gt;&lt;P&gt;&lt;img /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks in advance for your help&lt;/P&gt;</description>
      <pubDate>Mon, 05 Apr 2021 15:40:43 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Time-Measure-Productive-hours-with-duplicates-and-overlaps/m-p/1764223#M36951</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2021-04-05T15:40:43Z</dc:date>
    </item>
    <item>
      <title>Re: Time Measure - Productive hours with duplicates and overlaps.</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Time-Measure-Productive-hours-with-duplicates-and-overlaps/m-p/1770398#M37025</link>
      <description>&lt;P&gt;Hi&amp;nbsp;Anonymous&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This post might help you:&amp;nbsp;&lt;A href="https://community.powerbi.com/t5/DAX-Commands-and-Tips/Availability-ratio-of-applications/m-p/1735933#M36038" target="_blank"&gt;https://community.powerbi.com/t5/DAX-Commands-and-Tips/Availability-ratio-of-applications/m-p/1735933#M36038&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Kind regards, Steve.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 06 Apr 2021 15:59:38 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Time-Measure-Productive-hours-with-duplicates-and-overlaps/m-p/1770398#M37025</guid>
      <dc:creator>stevedep</dc:creator>
      <dc:date>2021-04-06T15:59:38Z</dc:date>
    </item>
    <item>
      <title>Re: Time Measure - Productive hours with duplicates and overlaps.</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Time-Measure-Productive-hours-with-duplicates-and-overlaps/m-p/1771854#M37073</link>
      <description>&lt;P&gt;Thanks a lot Steve, I'm going to have a look on this post.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Cheers&lt;/P&gt;</description>
      <pubDate>Wed, 07 Apr 2021 09:16:58 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Time-Measure-Productive-hours-with-duplicates-and-overlaps/m-p/1771854#M37073</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2021-04-07T09:16:58Z</dc:date>
    </item>
    <item>
      <title>Re: Time Measure - Productive hours with duplicates and overlaps.</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Time-Measure-Productive-hours-with-duplicates-and-overlaps/m-p/1772106#M37087</link>
      <description>&lt;P&gt;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="4037" data-lia-user-login="stevedep" class="lia-mention lia-mention-user"&gt;stevedep&lt;/a&gt;&amp;nbsp;I reviewed the post and I tested on my case but unfortunately that doesn't work since this option doesn't deal with overlaps (in my case the workorders W_03, W_04, W_05).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any idea?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks again&lt;/P&gt;</description>
      <pubDate>Wed, 07 Apr 2021 11:59:29 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Time-Measure-Productive-hours-with-duplicates-and-overlaps/m-p/1772106#M37087</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2021-04-07T11:59:29Z</dc:date>
    </item>
    <item>
      <title>Re: Time Measure - Productive hours with duplicates and overlaps.</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Time-Measure-Productive-hours-with-duplicates-and-overlaps/m-p/1772614#M37109</link>
      <description>&lt;P&gt;If you can share the sample data I might find a moment to take a look.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://community.powerbi.com/t5/Community-Blog/How-to-provide-sample-data-in-the-Power-BI-Forum/ba-p/963216" target="_blank"&gt;https://community.powerbi.com/t5/Community-Blog/How-to-provide-sample-data-in-the-Power-BI-Forum/ba-p/963216&lt;/A&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 07 Apr 2021 15:55:19 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Time-Measure-Productive-hours-with-duplicates-and-overlaps/m-p/1772614#M37109</guid>
      <dc:creator>stevedep</dc:creator>
      <dc:date>2021-04-07T15:55:19Z</dc:date>
    </item>
    <item>
      <title>Re: Time Measure - Productive hours with duplicates and overlaps.</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Time-Measure-Productive-hours-with-duplicates-and-overlaps/m-p/1772633#M37112</link>
      <description>&lt;P&gt;Thanks a lot Steve, please find in attachment the link to my test file&lt;/P&gt;&lt;P&gt;&lt;A href="https://bollore-my.sharepoint.com/:x:/p/sebastien_agnes/Ef-T412hGA5LocJQHi8JcQ0BFIclwqOGcuuayOv4VNktYg?e=T6RpbN" target="_self"&gt;Test file&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 07 Apr 2021 16:12:57 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Time-Measure-Productive-hours-with-duplicates-and-overlaps/m-p/1772633#M37112</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2021-04-07T16:12:57Z</dc:date>
    </item>
    <item>
      <title>Re: Time Measure - Productive hours with duplicates and overlaps.</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Time-Measure-Productive-hours-with-duplicates-and-overlaps/m-p/1777905#M37292</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;I can't download files. Please paste your data as the link describes.&lt;/P&gt;
&lt;P&gt;Kind regards Steve&lt;/P&gt;</description>
      <pubDate>Sat, 10 Apr 2021 05:46:47 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Time-Measure-Productive-hours-with-duplicates-and-overlaps/m-p/1777905#M37292</guid>
      <dc:creator>stevedep</dc:creator>
      <dc:date>2021-04-10T05:46:47Z</dc:date>
    </item>
  </channel>
</rss>

