Forum Discussion

jcamilo1985's avatar
jcamilo1985
Helper III
5 years ago
Solved

var dynamic time

Good Afternoon Experts

As I always have to resort to your collaboration, I have a table (I want to make it graphical), in which this year, month, week of the month.
The idea is to be able to see in it the variation with respect to the previous period
In other words, if I am showing the week of January 2, tell me how much variation in sales there was with respect to week 1 and thus with respect to the other periods.
The idea is that if I go up to the month hierarchy it will show me that same variation, but this time with respect to the month, that is, February vs January
and if I go to the same year

I appreciate you can guide me with this measure.

 

 

  • Hi, jcamilo1985 

     

    Based on your description, I created data to reproduce your scenario. The pbix file is attached in the end.

    Table:

     

    You may create a measure as below.

    Previous Period Value = 
    IF(
        ISINSCOPE('Table'[Date].[Day]),
        CALCULATE(
            SUM('Table'[Value]),
            FILTER(
                ALL('Table'),
                'Table'[Date]=MAX('Table'[Date])-1
            )
        ),
        IF(
            ISINSCOPE('Table'[Date].[Month]),
            CALCULATE(
                SUM('Table'[Value]),
                FILTER(
                    ALL('Table'),
                    'Table'[Date].[MonthNo]=MAX('Table'[Date].[MonthNo])-1&&
                    'Table'[Date].[Year]=MAX('Table'[Date].[Year])
                )
            ),
            IF(
                ISINSCOPE('Table'[Date].[Quarter]),
                CALCULATE(
                    SUM('Table'[Value]),
                    FILTER(
                        ALL('Table'),
                        'Table'[Date].[QuarterNo]=MAX('Table'[Date].[QuarterNo])-1&&
                        'Table'[Date].[Year]=MAX('Table'[Date].[Year])
                    )
                ),
                CALCULATE(
                    SUM('Table'[Value]),
                    FILTER(
                        ALL('Table'),
                        'Table'[Date].[Year]=MAX('Table'[Date].[Year])-1
                    )
                )
            )
        )
    )

     

    Result:

     

    Best Regards

    Allan

     

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

2 Replies

  • v-alq-msft's avatar
    v-alq-msft
    Community Support

    Hi, jcamilo1985 

     

    Based on your description, I created data to reproduce your scenario. The pbix file is attached in the end.

    Table:

     

    You may create a measure as below.

    Previous Period Value = 
    IF(
        ISINSCOPE('Table'[Date].[Day]),
        CALCULATE(
            SUM('Table'[Value]),
            FILTER(
                ALL('Table'),
                'Table'[Date]=MAX('Table'[Date])-1
            )
        ),
        IF(
            ISINSCOPE('Table'[Date].[Month]),
            CALCULATE(
                SUM('Table'[Value]),
                FILTER(
                    ALL('Table'),
                    'Table'[Date].[MonthNo]=MAX('Table'[Date].[MonthNo])-1&&
                    'Table'[Date].[Year]=MAX('Table'[Date].[Year])
                )
            ),
            IF(
                ISINSCOPE('Table'[Date].[Quarter]),
                CALCULATE(
                    SUM('Table'[Value]),
                    FILTER(
                        ALL('Table'),
                        'Table'[Date].[QuarterNo]=MAX('Table'[Date].[QuarterNo])-1&&
                        'Table'[Date].[Year]=MAX('Table'[Date].[Year])
                    )
                ),
                CALCULATE(
                    SUM('Table'[Value]),
                    FILTER(
                        ALL('Table'),
                        'Table'[Date].[Year]=MAX('Table'[Date].[Year])-1
                    )
                )
            )
        )
    )

     

    Result:

     

    Best Regards

    Allan

     

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

  • have you considered creating a measure based on ISINSCOPE() ?