I have seen your file..The Measure you have written will not return any value neither on 00:04:59 timestamp or on any other timestamp which has blank on previous timestamp.look at the 00:00:01, your previous time stamp 00:00:00 has 0 min value so therefor you will get the min value of 00:00:00 into the 00:00:01 time stamp.but you will get the blank value of 00:00:02,00:00:03 and so on.beacause,there are no min of value on previous time stamp like (00:00:01 or 00:00:02).
The measure i have provided will not allow you to execute beacuse of heavy row size in CalendarTime table.The idle section of doing this kind of stuff is Manipulation section..Why cant you use power query?It will take just 1 min to achieve this.Assume that, you are bound to write a measure.Then only, you can create a supporting table and after that you can pull out the value by dax and then you can hide this table from report view.see your file, what i have done.
Hope you will get some help from this way.
I am tagging @Greg_Deckler ..Hope he will guide you more efficiently.
@sanalytics , ty for yours recomendations.
As an end result, this is what I need. But i can't use power query cause i get Statistics table from web service, its have over 2 bill rows and updated every day. In the example which I dropped only one sensor, in a real request 102 sensors, so i need to created support table in each sensor.
I can use the following measure formula to reproduce the chart as your snapshot displayed.
Measure = VAR currDate = MAX ( CalendarTime[Time] ) VAR prev = CALCULATE ( MAX ( Statistics[Timestamp] ), FILTER ( ALLSELECTED ( Statistics ), [Timestamp] <= currDate ) ) RETURN CALCULATE ( MAX ( Statistics[Value] ), FILTER ( ALLSELECTED ( Statistics ), [Timestamp] = prev ) )
How did you really table structure like? Can you please share some dummy data with multiple sensors then we can test to coding formula on it?
@v-shex-msft , ty for reply!
All is working fine, but a little bit slow.
Can you explain me how can i filtered this rows? Only the current line (with original value) and previous line needs to be left. The end result should look like:
My formula is included iterator calculation, if you are handling huge amount of records, it may reduce the performance.
>>Can you explain me how can i filtered this rows? Only the current line (with original value) and previous line needs to be left.
I'm not so clear about your requirement, can you please explain more about this? Did you mean the expression should end the calculate if they executed to the end of your fact table records?
If this is a case, you can add an if statement to package this expression to prevent the calculation on not existed date range:
Measure = VAR _lastDate = MAXX ( ALLSELECTED ( Statistics ), [Timestamp] ) VAR currDate = MAX ( CalendarTime[Time] ) VAR prev = CALCULATE ( MAX ( Statistics[Timestamp] ), FILTER ( ALLSELECTED ( Statistics ), [Timestamp] <= currDate ) ) RETURN IF ( currDate <= _lastDate, CALCULATE ( MAX ( Statistics[Value] ), FILTER ( ALLSELECTED ( Statistics ), [Timestamp] = prev ) ) )
Please try below formula,
Min value =
Ty for reply, @sanalytics
Tried yours measure, but power bi froz and couldn't load so much data. CalendarTime table have 86400 rows. I have an idea with another measure:
_DiscreteSensor / PreviousValue = VAR _1 = MAX ( 'CalendarTime'[Index] ) - 1 RETURN CALCULATE ( MAX ( StatisticsDiscreteSensors[Value] ), FILTER ( ALL ( 'CalendarTime' ), CalendarTime[Index] = _1) )
All is ok, but measure return return values in incorrect time row. For example:
Timestamp - value - previous value
05:53:40 - blank - 0 / timestamp must be 07:00:03
07:00:04 - 0 - blank
07:00:05 - blank - 0 / timestamp must be 08:02:58
08:02:59 - 0 - blank
Do you know how can i do it?
can you please provide us some dummy data and your exact output so that, we can try..it is very difficult to assume your exact requirement by a screenshot.
This is a must watch for a message from Power BI!
Click here to read more about the December 2020 Updates!
Click here to read the latest blog and learn more about contributing to the Power BI blog!
Mark your calendars and join us for our next Power BI Dev Camp!.