Forum Discussion

schrodinger's avatar
schrodinger
New Member
4 years ago
Solved

Tracking Product wise price change

This is what the data looks like. Now, the problem statement is, I need to find the dates at which each product's price changed. This data keeps on updating on daily basis. I already have a slicer on my dashboard that allows me to select a product by Item ID.  So, if i select Item id 112 and from the price change slicer, I select True, it should give me the following output.

SO basically, I want to add a new column with boolean values (True/False), which shows True, if there is a cost change as compared to the previous cost and false if it is the same as the previous cost.

 

Price Change = IF(FILTER(Sheet1, Sheet1[Item ID]=EARLIER(Sheet1[Item ID]) && Sheet1[Rank]=EARLIER(Sheet1[Rank])+1 && Sheet1[Cost]<>EARLIER(Sheet1[Cost])),TRUE,FALSE)

 

I used this, but it's giving me an error 

 

 

  • schrodinger's avatar
    schrodinger
    4 years ago

    Vijay_A_Verma 's solution worked like a charm aswell!  

    Price Change = IF(Sheet1[Rank]=1,TRUE(),(COUNTROWS(FILTER(Sheet1, Sheet1[Item ID]=EARLIER(Sheet1[Item ID]) && Sheet1[Rank]=EARLIER(Sheet1[Rank])-1 && Sheet1[Cost]<>EARLIER(Sheet1[Cost])))>0))

4 Replies

  • schrodinger , This need to be something like that

    Price Change = IF(Sheet1[Cost] = maxx(FILTER(Sheet1, Sheet1[Item ID]=EARLIER(Sheet1[Item ID])
    && Sheet1[Rank]=EARLIER(Sheet1[Rank])+1 ) ,Sheet1[Cost]),TRUE(),FALSE() )

  • Hi schrodinger ,

    You can try something like this :

     

    Price Change =

    var _cost = max(Parts[Cost])
    var _dt = max(Parts[Date])

    var _prevdt =
    CALCULATE(
    max(Parts[Date]),
    FILTER(
    ALLEXCEPT(Parts, Parts[Part Number],Parts[Item ID]),
    Parts[Date] < _dt
    )
    )

    var _prevcost =
    CALCULATE(
    max(Parts[Cost]),
    FILTER(
    ALLEXCEPT(Parts, Parts[Part Number],Parts[Item ID]),
    Parts[Date] = _prevdt
    )
    )

    Return

    if(_cost = _prevcost , "False", "True")
     

    Kind regards,

    Rohit


    Please mark this answer as the solution if it resolves your issue.
    Appreciate your kudos! 🙂

    • schrodinger's avatar
      schrodinger
      New Member

      Vijay_A_Verma 's solution worked like a charm aswell!  

      Price Change = IF(Sheet1[Rank]=1,TRUE(),(COUNTROWS(FILTER(Sheet1, Sheet1[Item ID]=EARLIER(Sheet1[Item ID]) && Sheet1[Rank]=EARLIER(Sheet1[Rank])-1 && Sheet1[Cost]<>EARLIER(Sheet1[Cost])))>0))