<?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: Events In Progress Problem - How long each day are work orders open each day in DAX Commands and Tips</title>
    <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Events-In-Progress-Problem-How-long-each-day-are-work-orders/m-p/5176778#M187912</link>
    <description>&lt;UL&gt;&lt;LI&gt;For this you can use the classic events in progress overlap calculation. With a disconnected Date table in the model, write a measure that, for each day in scope, intersects each work order's open interval with that day and sums the hours.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Open Hours =&lt;/P&gt;&lt;P&gt;VAR DayStart = MIN ( 'Date'[Date] )&lt;/P&gt;&lt;P&gt;VAR DayEnd = DayStart + 1&lt;/P&gt;&lt;P&gt;RETURN&lt;/P&gt;&lt;P&gt;SUMX (&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; FILTER (&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ALL ( 'Work Orders' ),&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 'Work Orders'[Open Date] &amp;lt; DayEnd&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;amp;&amp;amp; ( ISBLANK ( 'Work Orders'[Closed Date] ) || 'Work Orders'[Closed Date] &amp;gt; DayStart )&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; ),&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; VAR OpenAt&amp;nbsp; &amp;nbsp;= 'Work Orders'[Open Date]&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; VAR CloseAt&amp;nbsp; = IF ( ISBLANK ( 'Work Orders'[Closed Date] ), NOW (), 'Work Orders'[Closed Date] )&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; VAR EffStart = IF ( OpenAt &amp;gt; DayStart, OpenAt, DayStart )&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; VAR EffEnd&amp;nbsp; &amp;nbsp;= IF ( CloseAt &amp;lt; DayEnd, CloseAt, DayEnd )&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; RETURN ( EffEnd - EffStart ) * 24&lt;/P&gt;&lt;P&gt;)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Drop Date[Date] on rows for the daily total. To get hours per work order per day, also add Work Order ID on rows; the same measure works because the row context narrows SUMX to that single order. Replace NOW() with TODAY() + 1 if you want still open work orders to count up to end of day rather than the current minute.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If this helped, a thumbs up and accepting the solution would be appreciated.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best,&lt;/P&gt;&lt;P&gt;Shai Karmani&lt;/P&gt;</description>
    <pubDate>Fri, 01 May 2026 20:14:12 GMT</pubDate>
    <dc:creator>Shai_Karmani</dc:creator>
    <dc:date>2026-05-01T20:14:12Z</dc:date>
    <item>
      <title>Events In Progress Problem - How long each day are work orders open each day</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Events-In-Progress-Problem-How-long-each-day-are-work-orders/m-p/5176776#M187911</link>
      <description>&lt;DIV&gt;&lt;P&gt;I have a set of work orders that may remain open across multiple days. I want to calculate:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;The number of hours each work order is open &lt;STRONG&gt;per day&lt;/STRONG&gt;, and&lt;/LI&gt;&lt;LI&gt;The total downtime &lt;STRONG&gt;per day&lt;/STRONG&gt;, calculated by summing the open hours of all work orders for that date.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;I plan to do this using a DAX formula. Below is a small sample of the data.&lt;/P&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Work Order ID&lt;/TD&gt;&lt;TD&gt;Equipment Name&lt;/TD&gt;&lt;TD&gt;Open Date&lt;/TD&gt;&lt;TD&gt;Closed Date&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A1&lt;/TD&gt;&lt;TD&gt;Thing 1&lt;/TD&gt;&lt;TD&gt;4/16/2026 10:00&lt;/TD&gt;&lt;TD&gt;4/16/2026 12:00&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B1&lt;/TD&gt;&lt;TD&gt;Thing 2&lt;/TD&gt;&lt;TD&gt;4/16/2026 15:30&lt;/TD&gt;&lt;TD&gt;4/17/2026 8:48&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;C1&lt;/TD&gt;&lt;TD&gt;Thing 2&lt;/TD&gt;&lt;TD&gt;4/17/2026 11:10&lt;/TD&gt;&lt;TD&gt;4/17/2026 15:21&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;D1&lt;/TD&gt;&lt;TD&gt;Thing 1&lt;/TD&gt;&lt;TD&gt;4/17/2026 13:49&lt;/TD&gt;&lt;TD&gt;4/18/2026 11:27&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;E1&lt;/TD&gt;&lt;TD&gt;Thing 3&lt;/TD&gt;&lt;TD&gt;4/16/2026 14:15&lt;/TD&gt;&lt;TD&gt;4/18/2026 9:38&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;F1&lt;/TD&gt;&lt;TD&gt;Thing 2&lt;/TD&gt;&lt;TD&gt;4/18/2026 10:30&lt;/TD&gt;&lt;TD&gt;4/18/2026 18:23&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;G1&lt;/TD&gt;&lt;TD&gt;Thing 5&lt;/TD&gt;&lt;TD&gt;4/16/2026 21:15&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;H1&lt;/TD&gt;&lt;TD&gt;Thing 6&lt;/TD&gt;&lt;TD&gt;4/17/2026 8:30&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A2&lt;/TD&gt;&lt;TD&gt;Thing 5&lt;/TD&gt;&lt;TD&gt;4/15/2026 10:30&lt;/TD&gt;&lt;TD&gt;4/16/2026 5:01&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B2&lt;/TD&gt;&lt;TD&gt;Thing 4&lt;/TD&gt;&lt;TD&gt;4/16/2026 16:15&lt;/TD&gt;&lt;TD&gt;4/17/2026 2:10&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;C2&lt;/TD&gt;&lt;TD&gt;Thing 4&lt;/TD&gt;&lt;TD&gt;4/17/2026 5:00&lt;/TD&gt;&lt;TD&gt;4/17/2026 21:21&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;D2&lt;/TD&gt;&lt;TD&gt;Thing 6&lt;/TD&gt;&lt;TD&gt;4/17/2026 15:25&lt;/TD&gt;&lt;TD&gt;4/18/2026 3:33&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;E2&lt;/TD&gt;&lt;TD&gt;Thing 7&lt;/TD&gt;&lt;TD&gt;4/16/2026 19:25&lt;/TD&gt;&lt;TD&gt;4/18/2026 2:16&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;F2&lt;/TD&gt;&lt;TD&gt;Thing 3&lt;/TD&gt;&lt;TD&gt;4/18/2026 0:01&lt;/TD&gt;&lt;TD&gt;4/18/2026 8:12&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;G2&lt;/TD&gt;&lt;TD&gt;Thing 8&lt;/TD&gt;&lt;TD&gt;4/16/2026 0:00&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;H2&lt;/TD&gt;&lt;TD&gt;Thing 9&lt;/TD&gt;&lt;TD&gt;4/17/2026 2:15&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;Some work orders span multiple days, so the number of open hours must be split by day. For example, work order &lt;STRONG&gt;E1&lt;/STRONG&gt; is open across three days, and the hours are calculated differently for each day:&lt;/DIV&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Date&lt;/TD&gt;&lt;TD&gt;16-Apr&lt;/TD&gt;&lt;TD&gt;17-Apr&lt;/TD&gt;&lt;TD&gt;18-Apr&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Hours Open&lt;/TD&gt;&lt;TD&gt;9.75&lt;/TD&gt;&lt;TD&gt;24.00&lt;/TD&gt;&lt;TD&gt;9.63&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Calculation&lt;/TD&gt;&lt;TD&gt;BOD 4/17 - Open Date&lt;/TD&gt;&lt;TD&gt;24*(4/18 - 4/17)&lt;/TD&gt;&lt;TD&gt;Closed Date - BOD 4/18&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;I’ve found examples online (often using hotel guest data) that calculate how many records are open per day or during a time range, but they don’t address calculating &lt;STRONG&gt;hours per day&lt;/STRONG&gt; for records that span multiple days. I’m struggling with where to start for this scenario.&lt;/DIV&gt;</description>
      <pubDate>Fri, 01 May 2026 20:01:26 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Events-In-Progress-Problem-How-long-each-day-are-work-orders/m-p/5176776#M187911</guid>
      <dc:creator>amcooper</dc:creator>
      <dc:date>2026-05-01T20:01:26Z</dc:date>
    </item>
    <item>
      <title>Re: Events In Progress Problem - How long each day are work orders open each day</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Events-In-Progress-Problem-How-long-each-day-are-work-orders/m-p/5176778#M187912</link>
      <description>&lt;UL&gt;&lt;LI&gt;For this you can use the classic events in progress overlap calculation. With a disconnected Date table in the model, write a measure that, for each day in scope, intersects each work order's open interval with that day and sums the hours.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Open Hours =&lt;/P&gt;&lt;P&gt;VAR DayStart = MIN ( 'Date'[Date] )&lt;/P&gt;&lt;P&gt;VAR DayEnd = DayStart + 1&lt;/P&gt;&lt;P&gt;RETURN&lt;/P&gt;&lt;P&gt;SUMX (&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; FILTER (&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ALL ( 'Work Orders' ),&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 'Work Orders'[Open Date] &amp;lt; DayEnd&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;amp;&amp;amp; ( ISBLANK ( 'Work Orders'[Closed Date] ) || 'Work Orders'[Closed Date] &amp;gt; DayStart )&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; ),&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; VAR OpenAt&amp;nbsp; &amp;nbsp;= 'Work Orders'[Open Date]&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; VAR CloseAt&amp;nbsp; = IF ( ISBLANK ( 'Work Orders'[Closed Date] ), NOW (), 'Work Orders'[Closed Date] )&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; VAR EffStart = IF ( OpenAt &amp;gt; DayStart, OpenAt, DayStart )&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; VAR EffEnd&amp;nbsp; &amp;nbsp;= IF ( CloseAt &amp;lt; DayEnd, CloseAt, DayEnd )&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; RETURN ( EffEnd - EffStart ) * 24&lt;/P&gt;&lt;P&gt;)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Drop Date[Date] on rows for the daily total. To get hours per work order per day, also add Work Order ID on rows; the same measure works because the row context narrows SUMX to that single order. Replace NOW() with TODAY() + 1 if you want still open work orders to count up to end of day rather than the current minute.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If this helped, a thumbs up and accepting the solution would be appreciated.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best,&lt;/P&gt;&lt;P&gt;Shai Karmani&lt;/P&gt;</description>
      <pubDate>Fri, 01 May 2026 20:14:12 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Events-In-Progress-Problem-How-long-each-day-are-work-orders/m-p/5176778#M187912</guid>
      <dc:creator>Shai_Karmani</dc:creator>
      <dc:date>2026-05-01T20:14:12Z</dc:date>
    </item>
    <item>
      <title>Re: Events In Progress Problem - How long each day are work orders open each day</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Events-In-Progress-Problem-How-long-each-day-are-work-orders/m-p/5176789#M187913</link>
      <description>&lt;P&gt;BTW Forgot to add, thank youi so much for really prompt response! Can you recommend a video with a good explanation of these concepts?&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 01 May 2026 21:12:28 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Events-In-Progress-Problem-How-long-each-day-are-work-orders/m-p/5176789#M187913</guid>
      <dc:creator>amcooper</dc:creator>
      <dc:date>2026-05-01T21:12:28Z</dc:date>
    </item>
    <item>
      <title>Re: Events In Progress Problem - How long each day are work orders open each day</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Events-In-Progress-Problem-How-long-each-day-are-work-orders/m-p/5176797#M187914</link>
      <description>&lt;P&gt;Of course&amp;nbsp;&lt;/P&gt;&lt;P&gt;I like this explainer:&lt;/P&gt;&lt;P&gt;&lt;A href="https://youtu.be/YL7H1Rqckb0?si=jvgedej1JDMWvfU1" target="_blank"&gt;https://youtu.be/YL7H1Rqckb0?si=jvgedej1JDMWvfU1&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It's&amp;nbsp; a bit old yet still relevant&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hope that helps!&lt;/P&gt;</description>
      <pubDate>Fri, 01 May 2026 22:14:51 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Events-In-Progress-Problem-How-long-each-day-are-work-orders/m-p/5176797#M187914</guid>
      <dc:creator>Shai_Karmani</dc:creator>
      <dc:date>2026-05-01T22:14:51Z</dc:date>
    </item>
  </channel>
</rss>

