Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
7 years ago
Solved

Price Change Indicator

Dears,

 

I have below table and would like to create a new column on in same prices column to show indicator for prices change increase/decrease comparing previous date prices.

 

ITEMIDPURCHUNITLatest INVENTDATECurrencyPRICEUNIT
PKG-021Pcs11/22/2018 0:00SAR             0.50
PKG-021Pcs11/01/2018 0:00SAR             0.50
PKG-021Pcs08/27/2018 0:00SAR             0.50
PKG-021Pcs11/26/2017 0:00SAR             0.50
PKG-021Pcs06/01/2017 0:00SAR             0.52
PKG-021Pcs03/22/2017 0:00SAR             0.51
PKG-021Pcs12/21/2016 0:00SAR             0.55
PKG-021Pcs12/14/2016 0:00SAR             0.55
PKG-021Pcs09/25/2016 0:00SAR             0.70
PKG-021Pcs02/10/2016 0:00SAR             0.57
  • Hi Anonymous

     

    You may create a index column first. Then you may get the indicator with calculated column as below:

     

    Index =
    RANKX (
        Table1,
        CALCULATE (
            MIN ( Table1[Latest INVENTDATE] ),
            ALLEXCEPT ( Table1, Table1[PRICEUNIT] )
        ),
        ,
        ASC,
        DENSE
    )
    indicator =
    VAR pre =
        CALCULATE (
            MAX ( Table1[PRICEUNIT] ),
            FILTER ( Table1, Table1[Index] = EARLIER ( Table1[Index] ) - 1 )
        )
    RETURN
        IF ( ISBLANK ( pre ), BLANK (), Table1[PRICEUNIT] - pre )

     

    Regards,

    Cherie

2 Replies

  • v-cherch-msft's avatar
    v-cherch-msft
    Microsoft Employee

    Hi Anonymous

     

    You may create a index column first. Then you may get the indicator with calculated column as below:

     

    Index =
    RANKX (
        Table1,
        CALCULATE (
            MIN ( Table1[Latest INVENTDATE] ),
            ALLEXCEPT ( Table1, Table1[PRICEUNIT] )
        ),
        ,
        ASC,
        DENSE
    )
    indicator =
    VAR pre =
        CALCULATE (
            MAX ( Table1[PRICEUNIT] ),
            FILTER ( Table1, Table1[Index] = EARLIER ( Table1[Index] ) - 1 )
        )
    RETURN
        IF ( ISBLANK ( pre ), BLANK (), Table1[PRICEUNIT] - pre )

     

    Regards,

    Cherie

  • Hi,

     

    This calculated column formula should work

     

    =[PRICEUNIT]-LOOKUPVALUE(Table1[PRICEUNIT],[Latest INVENTDATE],CALCULATE(MAX(Table1[Latest INVENTDATE]),FILTER(Table1,Table1[ITEMID]=EARLIER(Table1[ITEMID])&&Table1[Latest INVENTDATE]<EARLIER(Table1[Latest INVENTDATE]))),Table1[ITEMID],Table1[ITEMID])