Forum Discussion
atjt217
Helper III
5 years agoDynamic previous week up to 4 weeks
Hello, I hope someone could please help me with this report im working on. I need to get the sum of each week for the last 4 weeks. It was still working well last year and i was using these formulas ...
- 5 years ago
atjt217 ,
According to my understanding, the formula should be like this,
prevWEEK4 = VAR __weekNum = WEEKNUM(TODAY(), 1) VAR __year = YEAR(TODAY()) VAR __maxWeekNum = MAXX( FILTER( ALL(DateDimension), [Year] = __year - 1), [Week_Number] ) RETURN SWITCH( __weekNum = 1, CALCULATE( [Billed_total], FILTER( DateDimension, [Year] = __year - 1 && [Week_Number] = __maxWeekNum -3 ) ), __weekNum = 2, CALCULATE( [Billed_total], FILTER( DateDimension, [Year] = __year - 1 && [Week_Number] = __maxWeekNum -2 ) ), __weekNum = 3, CALCULATE( [Billed_total], FILTER( DateDimension, [Year] = __year - 1 && [Week_Number] = __maxWeekNum -1 ) ), __weekNum = 4, CALCULATE( [Billed_total], FILTER( DateDimension, [Year] = __year - 1 && [Week_Number] = __maxWeekNum ) ), CALCULATE( [Billed_total], FILTER( DateDimension, [Week_Number] = __weekNum-4 ) ) )prevWEEK3 = VAR __weekNum = WEEKNUM(TODAY(), 1) VAR __year = YEAR(TODAY()) VAR __maxWeekNum = MAXX( FILTER( ALL(DateDimension), [Year] = __year - 1), [Week_Number] ) RETURN SWITCH( __weekNum = 1, CALCULATE( [Billed_total], FILTER( DateDimension, [Year] = __year - 1 && [Week_Number] = __maxWeekNum -2 ) ), __weekNum = 2, CALCULATE( [Billed_total], FILTER( DateDimension, [Year] = __year - 1 && [Week_Number] = __maxWeekNum -1 ) ), __weekNum = 3, CALCULATE( [Billed_total], FILTER( DateDimension, [Year] = __year - 1 && [Week_Number] = __maxWeekNum ) ), CALCULATE( [Billed_total], FILTER( DateDimension, [Week_Number] = __weekNum -3 ) ) )prevWEEK2 = VAR __weekNum = WEEKNUM(TODAY(), 1) VAR __year = YEAR(TODAY()) VAR __maxWeekNum = MAXX( FILTER( ALL(DateDimension), [Year] = __year - 1), [Week_Number] ) RETURN SWITCH( __weekNum = 1, CALCULATE( [Billed_total], FILTER( DateDimension, [Year] = __year - 1 && [Week_Number] = __maxWeekNum -1 ) ), __weekNum = 2, CALCULATE( [Billed_total], FILTER( DateDimension, [Year] = __year - 1 && [Week_Number] = __maxWeekNum ) ), CALCULATE( [Billed_total], FILTER( DateDimension, [Week_Number] = __weekNum -2 ) ) )prevWEEK1 = VAR __weekNum = WEEKNUM(TODAY(), 1) VAR __year = YEAR(TODAY()) VAR __maxWeekNum = MAXX( FILTER( ALL(DateDimension), [Year] = __year - 1), [Week_Number] ) RETURN SWITCH( __weekNum = 1, CALCULATE( [Billed_total], FILTER( DateDimension, [Year] = __year - 1 && [Week_Number] = __maxWeekNum) ), CALCULATE( [Billed_total], FILTER( DateDimension, [Week_Number] = __weekNum -1 ) ) )Best regards,
Lionel ChenIf this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
v-lionel-msft
Community Support
5 years agoHi atjt217 ,
Please try this formula again.
prevWEEK1 =
VAR __weekNum = WEEKNUM(TODAY(), 1)
VAR __year = YEAR(TODAY())
VAR __maxWeekNum =
MAXX(
FILTER( ALL(DateDimension), [Year] = __year - 1),
[Week_Number]
)
RETURN
IF(
__weekNum = 1,
CALCULATE(
[Billed_total],
FILTER(
DateDimension,
[Year] = __year - 1 && [Week_Number] = __maxWeekNum
)
),
CALCULATE(
[Billed_total],
FILTER(
DateDimension,
[Week_Number]= __weekNum - 1
)
)
)
Best regards,
Lionel Chen
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
- atjt2175 years ago
Helper III
Hello, Thank you for the reponse. It was working for Weeks 1-3 but week 4 is returning blank.
For week 4 here is what i used:
prevWEEK4 =VAR __weekNum = WEEKNUM(TODAY(), 1)VAR __year = YEAR(TODAY())VAR __maxWeekNum =MAXX(FILTER( ALL(DateDimension), [Year] = __year - 1),[Week_Number])RETURNIF(__weekNum = 1,CALCULATE([Billed_total],FILTER(DateDimension,[Year] = __year - 1 && [Week_Number] = __maxWeekNum)),CALCULATE([Billed_total],FILTER(DateDimension,[Week_Number]= __weekNum - 4)))Is there something else i should have changed?