Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
6 years ago
Solved

Last unit price

Hello all
I'm trying to demonstrate the last cost price of a product on my sales table.
I've add a column with this :

Latest UP =
CALCULATE(
SUM('Shops Products'[Un Price]),
FILTER('Shops Products','Shops Products'[Date]
= CALCULATE(
MAX('Shops Products'[Date]),
FILTER('Shops Products', 'Shops Products'[Product#] = EARLIER('Shops Products'[Product#]))
)
&& 'Shops Products'[Product#] = EARLIER('Shops Products'[Product#])
))

The weird part is that it doesn always work...
Any ideas, please?
Thanks in advance
Pedro
  • If you are looking as a measure

     

    Measure = 
    VAR __id = MAX ( 'Shops Products'[Product#] )
    VAR __date = CALCULATE ( MAX( 'Shops Products'[date] ), ALLSELECTED ( 'Shops Products' ),  'Shops Products'[Product#] = __id ) 
    RETURN CALCULATE ( MAX ( 'Shops Products'[Un Price] ), VALUES ( 'Shops Products'[Product#] ), 'Shops Products'[Product#] = __id, 'Shops Products'[date] = __date )
    

     

    As column

    Max Date = maxx(filter('Shops Products','Shops Products'[Product#] =earlier('Shops Products'[Product#])),'Shops Products'[Date])
    Max Price = maxx(filter('Shops Products','Shops Products'[Product#] =earlier('Shops Products'[Product#]) && 'Shops Products'[Date#] =earlier('Shops Products'[Max Date ])),'Shops Products'[Un Price])

     

5 Replies

  • FrankAT's avatar
    FrankAT
    Community Champion

    Hi Anonymous ,

    if you use a calculated column it will only be calculated after time of creation and when you refresh the report, until than it stays, it's not dynamically.

     

    Regards FrankAT

  • If you are looking as a measure

     

    Measure = 
    VAR __id = MAX ( 'Shops Products'[Product#] )
    VAR __date = CALCULATE ( MAX( 'Shops Products'[date] ), ALLSELECTED ( 'Shops Products' ),  'Shops Products'[Product#] = __id ) 
    RETURN CALCULATE ( MAX ( 'Shops Products'[Un Price] ), VALUES ( 'Shops Products'[Product#] ), 'Shops Products'[Product#] = __id, 'Shops Products'[date] = __date )
    

     

    As column

    Max Date = maxx(filter('Shops Products','Shops Products'[Product#] =earlier('Shops Products'[Product#])),'Shops Products'[Date])
    Max Price = maxx(filter('Shops Products','Shops Products'[Product#] =earlier('Shops Products'[Product#]) && 'Shops Products'[Date#] =earlier('Shops Products'[Max Date ])),'Shops Products'[Un Price])

     

    • Anonymous's avatar
      Anonymous
      Not applicable

      Cool!! Thank you so much!!

    • luchitogiuse's avatar
      luchitogiuse
      Frequent Visitor

      Hi amitchandak and FrankAT  , i have this issue. can you help me? 

       

      I got a table named Product Price that has 
      Product ID        Date                 Price

      1                  01/01/2020      20
      1                  02/01/2020      21
      2                  02/01/2020      2
      2                  03/01/2020      3

      and in other table i need a calculated column that brings me the last price of the product.

      Product Id    Last Price

      1                  21
      2                   3

      I've seen other that worked but using a measure, i need the column. Thanks!  

    • celen's avatar
      celen
      Frequent Visitor

      Hi amitchandak , how should the measure be written when I have several years of data in my table and I want to calculate the last unit price from the different years? Last unit price in 2022, last unit price in 2023 and so on...