Forum Discussion

Sir_night's avatar
Sir_night
Frequent Visitor
9 years ago
Solved

Previous Record

With help from dearwatson i was able to identify the status changes between records 

https://community.powerbi.com/t5/Desktop/Combining-Dynamic-Query-Parameters-and-Append-Queries/m-p/206856#M91132

 

But i still need to be able to identify the previos record

 

my data looks like this , but how do i creat the prevouse record column 

 

DateRefstatusindexstatus changeprevouse  record
1/02/20171A000
2/02/20171A101
3/02/20171O211
4/02/20171G310
5/02/20171G400
6/02/20171G500
  • Hi Sir_night

     

    You could create the following measure as long as you have got a Date table, which is required for the measure below.

     

    To create a Date table you can follow this blog post: https://www.fourmoo.com/2016/09/13/power-bi-how-to-easily-create-dynamic-date-tabledimension-with-fiscal-attributes-using-power-query/

     

    And then once that is done you can then create the following measure.

     

    Measure Yesterday Rolling = 
    CALCULATE (
        [Measure Name],
        LASTNONBLANK ( DATEADD ( 'Date'[Date], -1, DAY ), [Measure Name] )
    )
  • Sir_night

     

    In your scenario, since you already have an index column, if you want to calculate previous record, you can create a calculated column with EARLIER to get the corresponding one:

     

    previous record =
    CALCULATE (
        MAX ( Table[status change] ),
        FILTER ( Table, Table[index] = EARLIER ( Table[Index] ) - 1 )
    )

    However, based on your data, it seems your "prevouse record" shows the next "status change", so your column might be:

     

     

    =
    CALCULATE (
        MAX ( Table[status change] ),
        FILTER ( Table, Table[index] = EARLIER ( Table[Index] ) + 1 )
    )

    Regards,

     

2 Replies

  • Hi Sir_night

     

    You could create the following measure as long as you have got a Date table, which is required for the measure below.

     

    To create a Date table you can follow this blog post: https://www.fourmoo.com/2016/09/13/power-bi-how-to-easily-create-dynamic-date-tabledimension-with-fiscal-attributes-using-power-query/

     

    And then once that is done you can then create the following measure.

     

    Measure Yesterday Rolling = 
    CALCULATE (
        [Measure Name],
        LASTNONBLANK ( DATEADD ( 'Date'[Date], -1, DAY ), [Measure Name] )
    )
  • v-sihou-msft's avatar
    v-sihou-msft
    Microsoft Employee

    Sir_night

     

    In your scenario, since you already have an index column, if you want to calculate previous record, you can create a calculated column with EARLIER to get the corresponding one:

     

    previous record =
    CALCULATE (
        MAX ( Table[status change] ),
        FILTER ( Table, Table[index] = EARLIER ( Table[Index] ) - 1 )
    )

    However, based on your data, it seems your "prevouse record" shows the next "status change", so your column might be:

     

     

    =
    CALCULATE (
        MAX ( Table[status change] ),
        FILTER ( Table, Table[index] = EARLIER ( Table[Index] ) + 1 )
    )

    Regards,