Forum Discussion

Lukasz004's avatar
Lukasz004
Frequent Visitor
5 years ago
Solved

TOTALYTD (Stop for specific month)

Dear all,

I´m trying a "simple" measure to calculate the cumulative values from the beginning of the year until a month from the most recent date.

For example, In FactSales table I have column OrderDate where the last date is 2020.07.30

The formula below works:

 

Sum Of Sales Amount YTD = 
VAR max_month = 7
RETURN
TOTALYTD(
    [Sum Of SalesAmount],
    DimDate[Date],
    MONTH(FactSales[OrderDate]) <= max_month 
)

 

but this formula does not work:

 

Sum Of Sales Amount YTD = 
VAR max_month = MONTH(MAX(FactSales[OrderDate]))
RETURN
TOTALYTD(
    [Sum Of SalesAmount],
    DimDate[Date],
    MONTH(FactSales[OrderDate]) <= max_month 
)

 

 

Any help?

 

  • Lukasz004 , You have try like example

     

    YTD=
    var _max = maxx(allselected('order'),'order'[order date])
    var _min = date(year(_max ),1,1)

    return
    CALCULATE(sum('order'[Qty]), FILTER(ALL('Date'),'Date'[Date] >=_min && 'Date'[Date] <= _max) )

     

    or

     

    YTD=
    var _max = maxx(allselected('order'),'order'[order date])
    var _min = date(year(_max ),1,1)

    return
    CALCULATE(sum('order'[Qty]), FILTER(('Date'),'Date'[Date] >=_min && 'Date'[Date] <= _max) )

2 Replies

  • Lukasz004 , You have try like example

     

    YTD=
    var _max = maxx(allselected('order'),'order'[order date])
    var _min = date(year(_max ),1,1)

    return
    CALCULATE(sum('order'[Qty]), FILTER(ALL('Date'),'Date'[Date] >=_min && 'Date'[Date] <= _max) )

     

    or

     

    YTD=
    var _max = maxx(allselected('order'),'order'[order date])
    var _min = date(year(_max ),1,1)

    return
    CALCULATE(sum('order'[Qty]), FILTER(('Date'),'Date'[Date] >=_min && 'Date'[Date] <= _max) )

    • Lukasz004's avatar
      Lukasz004
      Frequent Visitor

      I changed my variable:

      VAR max_month = MONTH(MAX(FactSales[OrderDate]))

      to

      VAR max_month = MONTH(MAXX(ALL(FactSales), FactSales[OrderDate]))

       

      and the formula works fine 😉

       

      Thanks for your help amitchandak