Forum Discussion

rcorn's avatar
rcorn
Frequent Visitor
4 years ago

Dynamically get top 12 time periods when switching between date field parameters

All - 

 

I am trying to show the most recent twelve date results for each selection "Year", "Quarter and Year", and "Month and Year" which are field parameters from my date table 'date'.

 

Date Table is the following:

Date =
VAR Days = CALENDAR(min(test[PIF Date]),max(test[PIF Date]))
RETURN ADDCOLUMNS (
    Days,
    "Year", YEAR ( [Date] ),
    "Month", FORMAT ( [Date], "mmmm" ),
    "Month Number", MONTH([Date]),
    "Start of the Month", DATE( YEAR([Date]), MONTH([Date]),1),
    "End of the Month", EOMONTH([Date],0),
    "Quarter and Year", "Q"&FORMAT([Date],"Q YYYY"),
    "Month and Year", FORMAT([Date],"MMM YYYY")
)
 
Graphs show volume by field parameter dates. 
Volume calculation = 
Volume = CALCULATE(SUM(test[Volume]), USERELATIONSHIP(test[Date],'Date'[Date]))

 

 

Do I need to write a new measure for Volume that only pulls top 12 most recent date periods?  In the Quarter and Year instance I only want to show Q1-Q4 for 2020 - 2022 volume. How do I write this?

 

 

5 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi

     

    Yes, you can create a measure that checks which data format is in scope and then filter the 12 most recent dates.

    Something like this:

     

    Volume Last 12 Periods = 
    
    RETURN
        SWITCH (
            TRUE (),
            ISINSCOPE ( Date[Year] ), 
                CALCULATE(
                    [Volume],
    				DATESINPERIOD(
    					'Date'[Date],
    					MAX('Date'[Date]),
    					-12,
    					YEAR
    				)
        )
    
                ),
            ISINSCOPE ( Date[Quarter] ) && ISINSCOPE ( Date[Year] ), 
                CALCULATE(
                    [Volume],
    				DATESINPERIOD(
    					'Date'[Date],
    					MAX('Date'[Date]),
    					-12,
    					QUARTER
    				)
        ),
        ISINSCOPE ( Date[Month] ) && ISINSCOPE ( Date[Year] ), 
                CALCULATE(
                    [Volume],
    				DATESINPERIOD(
    					'Date'[Date],
    					MAX('Date'[Date]),
    					-12,
    					MONTH
    				)
        )
        )
    
    
     

     

    Kind regards,
    José
    Please mark this answer as the solution if it resolves your issue.
    Appreciate your kudos! 🙂 

    • rcorn's avatar
      rcorn
      Frequent Visitor

      This did not work, it did not get rid of dates prior to the most recent 12 time periods and sum of the volume was inaccurate.

      • Anonymous's avatar
        Anonymous
        Not applicable

        Would you mind sharing a pbix file with some sample data?