Forum Discussion

cassidy4's avatar
cassidy4
Regular Visitor
7 years ago
Solved

Show Changes between two given periods

I'm trying to calculate the percent change between two given periods based on the dates selected in the date filter.

 

For instance, I want to calculate the % change for spend when the date filter is set to 10/21/2018 - 11/3/2018 (14 days). I would want to compare that spend to the spend that occurred between 10/7/2018 - 10/20/2018 (previous 14 days)

 

Thank you!

  • Hi cassidy4,

     

    Based on my assumption, I tested with below sample data. The right image shows a date dimention table created by:

    calendar = CALENDAR(DATE(2018,10,1),DATE(2018,11,30) )

     

    There is no relationship between tables. Add 'Calendar'[Date] into slicer. Then, create measures:

    Sum1 =
    CALCULATE (
        SUM ( 'Table1'[Sales] ),
        FILTER (
            'Table1',
            'Table1'[Date] >= MIN ( 'calendar'[Date] )
                && 'Table1'[Date] <= MAX ( 'calendar'[Date] )
        )
    )
    
    Sum2 =
    VAR countdays =
        DATEDIFF ( MIN ( 'calendar'[Date] ), MAX ( 'calendar'[Date] ), DAY )
    VAR startdate =
        MIN ( 'calendar'[Date] ) - 1
            - countdays
    VAR enddate =
        MIN ( 'calendar'[Date] ) - 1
    RETURN
        CALCULATE (
            SUM ( 'Table1'[Sales] ),
            FILTER (
                'Table1',
                'Table1'[Date]
                    <= MIN ( 'calendar'[Date] ) - 1
                    && 'Table1'[Date]
                        >= MIN ( 'calendar'[Date] ) - 1
                            - countdays
            )
        )
    
    change = ([Sum1]-[Sum2])/[Sum1]

    Best regards,

    Yuliana Gu

2 Replies

  • v-yulgu-msft's avatar
    v-yulgu-msft
    Icon for Microsoft Employee rankMicrosoft Employee

    Hi cassidy4,

     

    Based on my assumption, I tested with below sample data. The right image shows a date dimention table created by:

    calendar = CALENDAR(DATE(2018,10,1),DATE(2018,11,30) )

     

    There is no relationship between tables. Add 'Calendar'[Date] into slicer. Then, create measures:

    Sum1 =
    CALCULATE (
        SUM ( 'Table1'[Sales] ),
        FILTER (
            'Table1',
            'Table1'[Date] >= MIN ( 'calendar'[Date] )
                && 'Table1'[Date] <= MAX ( 'calendar'[Date] )
        )
    )
    
    Sum2 =
    VAR countdays =
        DATEDIFF ( MIN ( 'calendar'[Date] ), MAX ( 'calendar'[Date] ), DAY )
    VAR startdate =
        MIN ( 'calendar'[Date] ) - 1
            - countdays
    VAR enddate =
        MIN ( 'calendar'[Date] ) - 1
    RETURN
        CALCULATE (
            SUM ( 'Table1'[Sales] ),
            FILTER (
                'Table1',
                'Table1'[Date]
                    <= MIN ( 'calendar'[Date] ) - 1
                    && 'Table1'[Date]
                        >= MIN ( 'calendar'[Date] ) - 1
                            - countdays
            )
        )
    
    change = ([Sum1]-[Sum2])/[Sum1]

    Best regards,

    Yuliana Gu