Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more

Reply
Anonymous
Not applicable

Summarize differences between every 5 years?

Hi,

 

I'd like to know if there's a way to summarize differences between every 5 years in DAX? Basically, I got a measure to calculate difference of values between 2022 and 2017, 2017 and 2012, and so on (using PARALLELPERIOD). Now, I kind of need to summarize those differences.

 

Hope someone can help. Thanks!

1 ACCEPTED SOLUTION
Anonymous
Not applicable

Hi  @Anonymous ,

I created some data:

vyangliumsft_0-1667787616805.png

Here are the steps you can follow:

1. Create calculated column.

Year = YEAR('Table'[Date])
Flag =
var _today=TODAY()
var _yeartoday=YEAR(_today)
var _round=
ROUNDUP(
('Table'[Year] - _yeartoday ) /5,0)
return
IF(
    'Table'[Year]=_yeartoday,-1,_round)
Title =
var _minyear=MINX(FILTER(ALL('Table'),'Table'[Flag]=EARLIER('Table'[Flag])),[Year])
var _minx=MINX(FILTER(ALL('Table'),'Table'[Flag]=EARLIER('Table'[Flag])+1),[Year])
var _indexmax=MAXX(ALL('Table'),[Flag])
return
IF(
    'Table'[Flag]=_indexmax,
   YEAR(TODAY()) &" and "& _minyear,
 _minx &" and "& _minyear
)
Sum all =
var _minyear=MINX(FILTER(ALL('Table'),'Table'[Flag]=EARLIER('Table'[Flag])),[Year])
var _minx=MINX(FILTER(ALL('Table'),'Table'[Flag]=EARLIER('Table'[Flag])+1),[Year])
var _indexmax=MAXX(ALL('Table'),[Flag])
return
IF(
    'Table'[Flag]=_indexmax,
    SUMX(FILTER(ALL('Table'),[Year]>=_minyear &&[Year]<=YEAR(TODAY())),[Value]),
    SUMX(FILTER(ALL('Table'),[Year]>=_minyear &&[Year]<=_minx),[Value])
)

vyangliumsft_1-1667787616809.png

2. Create calculated table.

Table 2 =
SUMMARIZE('Table','Table'[Title],'Table'[Sum all])

vyangliumsft_2-1667787616812.png

3. Result:

vyangliumsft_3-1667787616813.png

 

Best Regards,

Liu Yang

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

View solution in original post

1 REPLY 1
Anonymous
Not applicable

Hi  @Anonymous ,

I created some data:

vyangliumsft_0-1667787616805.png

Here are the steps you can follow:

1. Create calculated column.

Year = YEAR('Table'[Date])
Flag =
var _today=TODAY()
var _yeartoday=YEAR(_today)
var _round=
ROUNDUP(
('Table'[Year] - _yeartoday ) /5,0)
return
IF(
    'Table'[Year]=_yeartoday,-1,_round)
Title =
var _minyear=MINX(FILTER(ALL('Table'),'Table'[Flag]=EARLIER('Table'[Flag])),[Year])
var _minx=MINX(FILTER(ALL('Table'),'Table'[Flag]=EARLIER('Table'[Flag])+1),[Year])
var _indexmax=MAXX(ALL('Table'),[Flag])
return
IF(
    'Table'[Flag]=_indexmax,
   YEAR(TODAY()) &" and "& _minyear,
 _minx &" and "& _minyear
)
Sum all =
var _minyear=MINX(FILTER(ALL('Table'),'Table'[Flag]=EARLIER('Table'[Flag])),[Year])
var _minx=MINX(FILTER(ALL('Table'),'Table'[Flag]=EARLIER('Table'[Flag])+1),[Year])
var _indexmax=MAXX(ALL('Table'),[Flag])
return
IF(
    'Table'[Flag]=_indexmax,
    SUMX(FILTER(ALL('Table'),[Year]>=_minyear &&[Year]<=YEAR(TODAY())),[Value]),
    SUMX(FILTER(ALL('Table'),[Year]>=_minyear &&[Year]<=_minx),[Value])
)

vyangliumsft_1-1667787616809.png

2. Create calculated table.

Table 2 =
SUMMARIZE('Table','Table'[Title],'Table'[Sum all])

vyangliumsft_2-1667787616812.png

3. Result:

vyangliumsft_3-1667787616813.png

 

Best Regards,

Liu Yang

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

Helpful resources

Announcements
Power BI DataViz World Championships

Power BI Dataviz World Championships

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!

December 2025 Power BI Update Carousel

Power BI Monthly Update - December 2025

Check out the December 2025 Power BI Holiday Recap!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.