<?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 The new OFFSET function to return the previous row  (production cycle times: a use case) in DAX Commands and Tips</title>
    <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/The-new-OFFSET-function-to-return-the-previous-row-production/m-p/2913818#M95295</link>
    <description>&lt;P&gt;Hi community,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;working with serial data you might know, how difficult it is, to calculate the previous row value. It can be achieved using the EARLIER function in a calculated column, but only if you have a column with a continuous sequence of numbers like an ID, date, or time. However, having millions of rows, it is not always best practice to work with calculated columns because it increases your data volume unnecessary. Furthermore, using CALCULATE and EARLIER in a direct query, you quickly find tricky obstacles to achieve your desired result.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&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;Here the new &lt;STRONG&gt;OFFSET&lt;/STRONG&gt; function comes to rescue. It is a new function released I think in September 2022, which can help to overcome some of the common challenges to return the previous row and build your calculation on it.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;A very common scenario or use case is the calculation of &lt;STRONG&gt;cycle times in serial production&lt;/STRONG&gt;, especially if the data only provides one time stamp for a part e.g. when leaving the line. This is my approach to achieve this calculations and presenting it in a small dashboard. Here are the DAX measures I came up with:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;1. Calculate the actual time stamp&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I tried to put the actual time stamp as a variable VAR in my main measure, somehow it didn’t work out. So it became the very first step.&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;0_Measure actual timestamp testdata = MAX(TestData[TimeStamp])&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;2. The main measure to get the previous row and the introduction of OFFSET&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The main difficulty wasn't the OFFSET function itself to get the previous row. But I had to learn later in the process, that by filtering the data e.g. on production date or production hour I got wrong results. That happened because filtering the data “removes the previous row” from the first record in the measures context thus it calculates the cycle time for that first part e.g. in a selected day wrongly. A calculated column using EARLIER avoids that, because the previous timestamp exists even by filtering the dataset. So I had to extend the measure as follows. Note that the OFFSET function need to have an ORDERBY statement.&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;1_Measure OFFSET prv row testdata =
VAR _prevrow =
CALCULATE(
    [0_Measure actual timestamp testdata],
    REMOVEFILTERS(TestData[Prodhour]),REMOVEFILTERS(TestData[CC_Proddate]),
    OFFSET(
        -1,
        ALLSELECTED(TestData[Part ID]),
        ORDERBY(TestData[Part ID], ASC)
        )
    )
RETURN
_prevrow&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;3. Calculate the cycle time in seconds&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Now it’s pretty straight forward to calculate the cycle time in seconds using the actual timestamp and deduct the previous one calculated before&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;2_Measure OFFSET cycle time testdata (sec) =
IF(ISBLANK(TestData[1_Measure OFFSET prv row testdata]),0,
([0_Measure actual timestamp testdata] - [1_Measure OFFSET prv row testdata]) * 86400)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;4. Get the average cycle time in the context of the production hour&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Now came the tricky part; somehow the OFFSET function “resists” the filter context and returns wrong results by putting it into a (table) visual. So I needed to get the help of a virtual table in order to calculate the average cycle time in the current production hour.&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;3_Measure average cycletime testdata =
VAR _table1 =
ADDCOLUMNS(
    SELECTCOLUMNS(
    TestData,
    "partid", TestData[Part ID],
    "prodhour",HOUR(TestData[TimeStamp])+1),
"cycletime",[2_Measure OFFSET cycle time testdata (sec)])
RETURN
AVERAGEX(_table1,[cycletime])&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;5. Getting the average daily cycle time &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For a card visual I want to show the average cycle time for the day, so I created another measure for that.&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;5_Measure daily average cycle time =
CALCULATE([3_Measure average cycletime testdata],
ALLEXCEPT(TestData,TestData[CC_Proddate]))&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Now we are pretty much done, the further measures are just for supporting some more KPIs, e.g. the PPH (parts per hour) or the cycle time deviation from a imaginary target (you can check it out in the pbix file).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You might think&amp;nbsp;all of that is pretty complicated instead of using EARLIER in a simple calculated&amp;nbsp;column and you might be right. But I wanted to learn more about this new function and challenge myself with some more advanced DAX.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;Please be so kind and comment, if you like it, or if you have suggestions, how solve this challenge in a different way.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here the dahsboard&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;img /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="https://app.powerbi.com/view?r=eyJrIjoiMzY2Njg5YTQtYzMxNS00ZThmLWE1MGUtY2NiMWQ5ZjU2OGY4IiwidCI6IjU0OGVmYThjLWI1MzEtNDRjOS05MGY4LTAzZDc4MTdkMzdmZSJ9" target="_blank"&gt;https://app.powerbi.com/view?r=eyJrIjoiMzY2Njg5YTQtYzMxNS00ZThmLWE1MGUtY2NiMWQ5ZjU2OGY4IiwidCI6IjU0OGVmYThjLWI1MzEtNDRjOS05MGY4LTAzZDc4MTdkMzdmZSJ9&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;or get the pbix here&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="https://github.com/andysuzhou/PowerBi/commit/90d9ccec73b294fa2163758348de57b62d0ba9c1" target="_blank"&gt;The new OFFSET function in Power BI to calculate production cycle tim… · andysuzhou/PowerBi@90d9cce · GitHub&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks and have fun with DAX.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="313" data-lia-user-login="Greg_Deckler" class="lia-mention lia-mention-user"&gt;Greg_Deckler&lt;/a&gt;&amp;nbsp;what do you think?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 17 Nov 2022 21:20:21 GMT</pubDate>
    <dc:creator>datadonuts</dc:creator>
    <dc:date>2022-11-17T21:20:21Z</dc:date>
    <item>
      <title>The new OFFSET function to return the previous row  (production cycle times: a use case)</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/The-new-OFFSET-function-to-return-the-previous-row-production/m-p/2913818#M95295</link>
      <description>&lt;P&gt;Hi community,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;working with serial data you might know, how difficult it is, to calculate the previous row value. It can be achieved using the EARLIER function in a calculated column, but only if you have a column with a continuous sequence of numbers like an ID, date, or time. However, having millions of rows, it is not always best practice to work with calculated columns because it increases your data volume unnecessary. Furthermore, using CALCULATE and EARLIER in a direct query, you quickly find tricky obstacles to achieve your desired result.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&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;Here the new &lt;STRONG&gt;OFFSET&lt;/STRONG&gt; function comes to rescue. It is a new function released I think in September 2022, which can help to overcome some of the common challenges to return the previous row and build your calculation on it.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;A very common scenario or use case is the calculation of &lt;STRONG&gt;cycle times in serial production&lt;/STRONG&gt;, especially if the data only provides one time stamp for a part e.g. when leaving the line. This is my approach to achieve this calculations and presenting it in a small dashboard. Here are the DAX measures I came up with:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;1. Calculate the actual time stamp&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I tried to put the actual time stamp as a variable VAR in my main measure, somehow it didn’t work out. So it became the very first step.&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;0_Measure actual timestamp testdata = MAX(TestData[TimeStamp])&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;2. The main measure to get the previous row and the introduction of OFFSET&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The main difficulty wasn't the OFFSET function itself to get the previous row. But I had to learn later in the process, that by filtering the data e.g. on production date or production hour I got wrong results. That happened because filtering the data “removes the previous row” from the first record in the measures context thus it calculates the cycle time for that first part e.g. in a selected day wrongly. A calculated column using EARLIER avoids that, because the previous timestamp exists even by filtering the dataset. So I had to extend the measure as follows. Note that the OFFSET function need to have an ORDERBY statement.&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;1_Measure OFFSET prv row testdata =
VAR _prevrow =
CALCULATE(
    [0_Measure actual timestamp testdata],
    REMOVEFILTERS(TestData[Prodhour]),REMOVEFILTERS(TestData[CC_Proddate]),
    OFFSET(
        -1,
        ALLSELECTED(TestData[Part ID]),
        ORDERBY(TestData[Part ID], ASC)
        )
    )
RETURN
_prevrow&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;3. Calculate the cycle time in seconds&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Now it’s pretty straight forward to calculate the cycle time in seconds using the actual timestamp and deduct the previous one calculated before&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;2_Measure OFFSET cycle time testdata (sec) =
IF(ISBLANK(TestData[1_Measure OFFSET prv row testdata]),0,
([0_Measure actual timestamp testdata] - [1_Measure OFFSET prv row testdata]) * 86400)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;4. Get the average cycle time in the context of the production hour&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Now came the tricky part; somehow the OFFSET function “resists” the filter context and returns wrong results by putting it into a (table) visual. So I needed to get the help of a virtual table in order to calculate the average cycle time in the current production hour.&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;3_Measure average cycletime testdata =
VAR _table1 =
ADDCOLUMNS(
    SELECTCOLUMNS(
    TestData,
    "partid", TestData[Part ID],
    "prodhour",HOUR(TestData[TimeStamp])+1),
"cycletime",[2_Measure OFFSET cycle time testdata (sec)])
RETURN
AVERAGEX(_table1,[cycletime])&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;5. Getting the average daily cycle time &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For a card visual I want to show the average cycle time for the day, so I created another measure for that.&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;5_Measure daily average cycle time =
CALCULATE([3_Measure average cycletime testdata],
ALLEXCEPT(TestData,TestData[CC_Proddate]))&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Now we are pretty much done, the further measures are just for supporting some more KPIs, e.g. the PPH (parts per hour) or the cycle time deviation from a imaginary target (you can check it out in the pbix file).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You might think&amp;nbsp;all of that is pretty complicated instead of using EARLIER in a simple calculated&amp;nbsp;column and you might be right. But I wanted to learn more about this new function and challenge myself with some more advanced DAX.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;Please be so kind and comment, if you like it, or if you have suggestions, how solve this challenge in a different way.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here the dahsboard&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;img /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="https://app.powerbi.com/view?r=eyJrIjoiMzY2Njg5YTQtYzMxNS00ZThmLWE1MGUtY2NiMWQ5ZjU2OGY4IiwidCI6IjU0OGVmYThjLWI1MzEtNDRjOS05MGY4LTAzZDc4MTdkMzdmZSJ9" target="_blank"&gt;https://app.powerbi.com/view?r=eyJrIjoiMzY2Njg5YTQtYzMxNS00ZThmLWE1MGUtY2NiMWQ5ZjU2OGY4IiwidCI6IjU0OGVmYThjLWI1MzEtNDRjOS05MGY4LTAzZDc4MTdkMzdmZSJ9&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;or get the pbix here&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="https://github.com/andysuzhou/PowerBi/commit/90d9ccec73b294fa2163758348de57b62d0ba9c1" target="_blank"&gt;The new OFFSET function in Power BI to calculate production cycle tim… · andysuzhou/PowerBi@90d9cce · GitHub&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks and have fun with DAX.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="313" data-lia-user-login="Greg_Deckler" class="lia-mention lia-mention-user"&gt;Greg_Deckler&lt;/a&gt;&amp;nbsp;what do you think?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 17 Nov 2022 21:20:21 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/The-new-OFFSET-function-to-return-the-previous-row-production/m-p/2913818#M95295</guid>
      <dc:creator>datadonuts</dc:creator>
      <dc:date>2022-11-17T21:20:21Z</dc:date>
    </item>
    <item>
      <title>Re: The new OFFSET function to return the previous row  (production cycle times: a use case)</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/The-new-OFFSET-function-to-return-the-previous-row-production/m-p/2913856#M95298</link>
      <description>&lt;P&gt;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="244606" data-lia-user-login="datadonuts" class="lia-mention lia-mention-user"&gt;datadonuts&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Such calculations had been performed long before OFFSET existed. And it's not that hard, after all, to come by the correct formula that uses neither OFFSET (obviously), nor EARLIER which has been deprecated a long time ago as there are much better ways to achieve what the function achieves, namely VARIABLES.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Getting the previous row is nothing else than finding the maximum number (or date) that does not exceed the current one. And this can easily be achieved by taking the max of suitably filtered data.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Also, as much as I remember from a vid on YT by &lt;A href="mailto:alberto.ferrari@sqlbi.com" target="_blank"&gt;alberto.ferrari@sqlbi.com&lt;/A&gt;,&amp;nbsp;there are some caveats regarding the use of OFFSET one should have in mind when trying to use this function. Such caveats are non-existent when using the method I described above.&lt;/P&gt;</description>
      <pubDate>Thu, 17 Nov 2022 21:51:32 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/The-new-OFFSET-function-to-return-the-previous-row-production/m-p/2913856#M95298</guid>
      <dc:creator>daXtreme</dc:creator>
      <dc:date>2022-11-17T21:51:32Z</dc:date>
    </item>
    <item>
      <title>Re: The new OFFSET function to return the previous row  (production cycle times: a use case)</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/The-new-OFFSET-function-to-return-the-previous-row-production/m-p/2914127#M95328</link>
      <description>&lt;P&gt;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="244606" data-lia-user-login="datadonuts" class="lia-mention lia-mention-user"&gt;datadonuts&lt;/a&gt;&amp;nbsp;First, this is a fine post and very well done. However, I am not a fan of the OFFSET function and I have grave concerns if this is the path Microsoft is taking with visual level calculations. The problem, once again, is self-service visualization. &lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="507" data-lia-user-login="parry2k" class="lia-mention lia-mention-user"&gt;parry2k&lt;/a&gt;&amp;nbsp;(Perytus) has a good video on this actually (YouTube). The basic problem is that DAX has no real sense of the visual layer. So if a user sorts the visual differently, OFFSET is going to make no sense in many circumstances. I cover the basics of this in the following video. Bottom line, trying to make DAX comprehend the visual layer is a recipe for failure and disaster. Visual level calculations should be their own thing and not DAX. It's the same mis-guided behavior and wrong thinking that has resulted in broken measure totals for table and matrix visuals. In my opinion of course.&lt;/P&gt;
&lt;P&gt;&lt;div data-video-id="http://youtu.be/HHOByJgamWc" data-video-remote-vid="http://youtu.be/HHOByJgamWc" class="lia-video-container lia-media-is-center lia-media-size-medium"&gt;&lt;iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FHHOByJgamWc%3Ffeature%3Doembed&amp;amp;display_name=YouTube&amp;amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DHHOByJgamWc&amp;amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FHHOByJgamWc%2Fhqdefault.jpg&amp;amp;type=text%2Fhtml&amp;amp;schema=youtube" allowfullscreen="" style="max-width: 100%"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 18 Nov 2022 02:26:51 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/The-new-OFFSET-function-to-return-the-previous-row-production/m-p/2914127#M95328</guid>
      <dc:creator>Greg_Deckler</dc:creator>
      <dc:date>2022-11-18T02:26:51Z</dc:date>
    </item>
    <item>
      <title>Re: The new OFFSET function to return the previous row  (production cycle times: a use case)</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/The-new-OFFSET-function-to-return-the-previous-row-production/m-p/2914260#M95333</link>
      <description>&lt;P&gt;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="313" data-lia-user-login="Greg_Deckler" class="lia-mention lia-mention-user"&gt;Greg_Deckler&lt;/a&gt;&amp;nbsp;Totally agree with you and thanks for the reference to my #video. We all get carried away when a new feature gets introduced whether it is a new DAX function or anything else.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Since the OFFSET function is not been officially announced and we don't what will change when it is announced but given what we have seen so far I have no single use case of this function, and I worked on almost 100+ projects, and I cannot think of any single project which I will change because this new functionality is available.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;At end of the day, the aim of my videos is to look into how effective these new functionalities are, and not to get carried away but to find out where these functionalities can fall apart. These are good features/enhancements but always have some side effects that never get highlighted.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Having said that, in the next coming weeks (maybe days), I will also have another video that will show why/when the highly talked about feature will not work.&amp;nbsp;&lt;span class="lia-unicode-emoji" title=":zipper_mouth_face:"&gt;🤐&lt;/span&gt;&amp;nbsp;Stay tuned!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 18 Nov 2022 03:46:31 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/The-new-OFFSET-function-to-return-the-previous-row-production/m-p/2914260#M95333</guid>
      <dc:creator>parry2k</dc:creator>
      <dc:date>2022-11-18T03:46:31Z</dc:date>
    </item>
  </channel>
</rss>

