Forum Discussion

JeroenHD's avatar
JeroenHD
Icon for Helper I rankHelper I
4 years ago
Solved

Track date value changes and store new values in table

Hello Team,  I have a table with a purchase order number, line number and a promised date field. I simplified the table. The original table is refreshed overnight. This Promised Date is what ...
  • v-xiaotang's avatar
    4 years ago

    Hi JeroenHD 

    Power BI is used to analyze data, not create data, it means if data changed in your Data Source, then data in Power BI will also change accordingly after you click on refresh button. So if you want to analyze the difference between them, you need to create a new column or new table in your Data Source.

    After you add changes to your datasource, then you can create columns bellow,

    CHANGED DATE 1 = 
    var _predate=RANKX(FILTER(ALL('Table'),'Table'[LINE_NO]=EARLIER('Table'[LINE_NO]) && 'Table'[PURC_ORDER_ID] = EARLIER('Table'[PURC_ORDER_ID])),'Table'[PROMISED DATE],,ASC)
    return IF(_predate=2,'Table'[PROMISED DATE])
    CHANGED DATE 2 = 
    var _predate=RANKX(FILTER(ALL('Table'),'Table'[LINE_NO]=EARLIER('Table'[LINE_NO]) && 'Table'[PURC_ORDER_ID] = EARLIER('Table'[PURC_ORDER_ID])),'Table'[PROMISED DATE],,ASC)
    return IF(_predate=3,'Table'[PROMISED DATE])

    result

    If you need measures, 

    measure CHANGED DATE 1 = 
    var _predate=RANKX(FILTER(ALL('Table'),'Table'[LINE_NO]=MIN('Table'[LINE_NO]) && 'Table'[PURC_ORDER_ID] = MIN('Table'[PURC_ORDER_ID])),CALCULATE(MIN('Table'[PROMISED DATE])),,ASC)
    return IF(_predate=2,MIN('Table'[PROMISED DATE]))
    measure CHANGED DATE 2 = 
    var _predate=RANKX(FILTER(ALL('Table'),'Table'[LINE_NO]=MIN('Table'[LINE_NO]) && 'Table'[PURC_ORDER_ID] = MIN('Table'[PURC_ORDER_ID])),CALCULATE(MIN('Table'[PROMISED DATE])),,ASC)
    return IF(_predate=3,MIN('Table'[PROMISED DATE]))

     

    Best Regards,

    Community Support Team _Tang

    If this post helps, please consider Accept it as the solution to help the other members find it more quickly.