Forum Discussion

DatamirHub's avatar
DatamirHub
Advocate I
1 year ago
Solved

Custom Order mess time intelligent measures

I have this column RECORD_YEAR which is an integer and I have this measure _REVENUE_USD_YoY_Growth = VAR CurrentYear = MAX(COMPANIES[RECORD_YEAR]) VAR CurrentYearValue = CALCULATE( ...
  • danextian's avatar
    1 year ago

    Hi DatamirHub 

     

    COMPANIES[RECORD_YEAR] = CurrentYear - 1

    The above internally translates to

    FILTER ( ALL ( COMPANIES[RECORD_YEAR] ), COMPANIES[RECORD_YEAR] = CurrentYear - 1 )

    However, when the column wrapped in ALL is sorted by another column, that other column must also be included in ALL as well. Your new measure should be something like below:

    _REVENUE_USD_YoY_Growth = 
    VAR CurrentYear =
        MAX ( Companies[RECORD_YEAR] )
    VAR CurrentYearValue =
        CALCULATE (
            MAX ( Companies[REVENUE_USD] ),
            FILTER (
                ALL ( Companies[RECORD_YEAR], Companies[Reverse Sort] ),
                Companies[RECORD_YEAR] = CurrentYear
            )
        )
    VAR PreviousYearValue =
        CALCULATE (
            MAX ( Companies[REVENUE_USD] ),
            FILTER (
                ALL ( Companies[RECORD_YEAR], Companies[Reverse Sort] ),
                Companies[RECORD_YEAR] = CurrentYear - 1
            )
        )
    RETURN
        DIVIDE ( CurrentYearValue - PreviousYearValue, PreviousYearValue, 0 )