Forum Discussion

tomekm's avatar
tomekm
Icon for Helper III rankHelper III
5 years ago
Solved

Dinamic Month over Month change calculation

Hi,

 

I'm trying to create a column that will show the "Change" in Volume for each ID. Please see table below. If I filter on a specific month, I'd like to see the total of Changes for each ID number. Can you please help me with the DAX formula?

 

Thank you.

 

 

IDVolumePeriods_TableChange (expected outcome)
101February 1, 20210
105March 1, 20214
103April 1, 2021-2
202March 1, 20210
203April 1, 20213
3012February 1, 20210
3013March 1, 20211
304April 1, 2021-9
402March 1, 20210
402April 1, 20210
  • Hi, tomekm ;

    Please try:

    new column = 
    VAR _last =
        EOMONTH ( [Periods_Table], -1 )
    RETURN
        IF (
            [Periods_Table]= CALCULATE ( MIN ( [Periods_Table] ), ALLEXCEPT ( 'Table', 'Table'[ID] ) ),
            0,
            [Volume]- CALCULATE (SUM ( [Volume] ), FILTER (
                        ALLEXCEPT ( 'Table', 'Table'[ID] ),
                        EOMONTH ( [Periods_Table], 0 ) = _last)))

    The final output is shown below:

    Best Regards,
    Community Support Team_ Yalan Wu
    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

5 Replies

  • tomekm , Try a new column like

    new colum =
    var _period = eomonth([Periods_Table],-1)
    var _id = [ID]
    return
    [Volume] - (sumx(filter(table, eomonth([Periods_Table],0) = _period && [ID] = _id),[Volume])+0)

    • tomekm's avatar
      tomekm
      Icon for Helper III rankHelper III

      Hello,

       

      Would you be able to help me with my previous post? "The formula works but partially. Please see screenshot. Ideally I would want to show "+8" in the July row, instead of "-8" in June, as we are measuring the changes from previous month to current month (i.e. July)."

       

      Thank you.

  •  

    The formula works but partially. Please see screenshot. Ideally I would want to show "+8" in the July row, instead of "-8" in June, as we are measuring the changes from previous month to current month (i.e. July).

     

  • v-yalanwu-msft's avatar
    v-yalanwu-msft
    Icon for Community Support rankCommunity Support

    Hi, tomekm ;

    Please try:

    new column = 
    VAR _last =
        EOMONTH ( [Periods_Table], -1 )
    RETURN
        IF (
            [Periods_Table]= CALCULATE ( MIN ( [Periods_Table] ), ALLEXCEPT ( 'Table', 'Table'[ID] ) ),
            0,
            [Volume]- CALCULATE (SUM ( [Volume] ), FILTER (
                        ALLEXCEPT ( 'Table', 'Table'[ID] ),
                        EOMONTH ( [Periods_Table], 0 ) = _last)))

    The final output is shown below:

    Best Regards,
    Community Support Team_ Yalan Wu
    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.