Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
5 years ago
Solved

max value from last 14 days

Hi All,

 

I have below data.

 

for each row i need to look back 14 days and pick which is max value and display it.

pls see data below. 3rd column is the result i am looking for can you please tell me how to get that? i tried different dax but not working.  MFelix Anonymous simrantuli Pragati11 mwegener amitchandak 

 

Value.tradingDayValue.highMax Value
12/14/2018415.75 
12/17/2018417.75 
12/18/2018421.25 
12/19/2018421.25 
12/20/2018418.5 
12/21/2018418.25 
12/24/2018417.75 
12/26/2018416 
12/27/2018416.75 
12/28/2018418 
12/31/2018419.25 
1/2/2019419.5 
1/3/2019421 
1/4/2019422.5422.5
1/7/2019422.75422.75
1/8/2019421.75422.75
1/9/2019421.75422.75
1/10/2019419422.75
1/11/2019423.25423.75
1/14/2019420.5 
  • Anonymous , Try with help from a date table

    Rolling 14 = CALCULATE(max(Table[Value.high]),DATESINPERIOD('Date'[Date ],MAX('Date'[Date ]),-14,Day))

     

    or

     

    Rolling 14 = if(CALCULATE(distinctcount(Table[Value.tradingDay]),DATESINPERIOD('Date'[Date ],MAX('Date'[Date ]),-14,Day)) >=14, CALCULATE(max(Table[Value.high]),DATESINPERIOD('Date'[Date ],MAX('Date'[Date ]),-14,Day)) , blank())

  • Anonymous 

    you can try to create a column

    Column = if( 'Table'[Value.tradingDay]-min('Table'[Value.tradingDay])<14,blank(),MAXX(FILTER('Table','Table'[Value.tradingDay]>=EARLIER('Table'[Value.tradingDay])-14 &&'Table'[Value.tradingDay]<=EARLIER('Table'[Value.tradingDay])),'Table'[Value.high]))

     

5 Replies

  • Anonymous 

    you can try to create a column

    Column = if( 'Table'[Value.tradingDay]-min('Table'[Value.tradingDay])<14,blank(),MAXX(FILTER('Table','Table'[Value.tradingDay]>=EARLIER('Table'[Value.tradingDay])-14 &&'Table'[Value.tradingDay]<=EARLIER('Table'[Value.tradingDay])),'Table'[Value.high]))

     

    • Anonymous's avatar
      Anonymous
      Not applicable

      ryan_mayu Thanks Ryan, it works fine.

  • Anonymous , Try with help from a date table

    Rolling 14 = CALCULATE(max(Table[Value.high]),DATESINPERIOD('Date'[Date ],MAX('Date'[Date ]),-14,Day))

     

    or

     

    Rolling 14 = if(CALCULATE(distinctcount(Table[Value.tradingDay]),DATESINPERIOD('Date'[Date ],MAX('Date'[Date ]),-14,Day)) >=14, CALCULATE(max(Table[Value.high]),DATESINPERIOD('Date'[Date ],MAX('Date'[Date ]),-14,Day)) , blank())

    • Anonymous's avatar
      Anonymous
      Not applicable

      Hi amitchandak  its not working, shoot.

      for 5/1/2019 max value of last 14 days is 425 not 422.25

      i tried many dax functions it is not coming.

       

      pls assist.