Forum Discussion
Dynamic previous week up to 4 weeks
- 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.
atjt217 , refer my blog , have additional column on week rank in you date table and use those. If needed; you can have date table in power bi even in direct query mode
See if this can help
Power BI — Week on Week and WTD
https://medium.com/@amitchandak.1978/power-bi-wtd-questions-time-intelligence-4-5-98c30fab69d3
https://community.powerbi.com/t5/Community-Blog/Week-Is-Not-So-Weak-WTD-Last-WTD-and-This-Week-vs-Last-Week/ba-p/1051123
https://www.youtube.com/watch?v=pnAesWxYgJ8
Date table in power bi in Direct query https://www.youtube.com/watch?v=cQfJ0GmQ5os&list=PLPaNVDMhUXGbKatyDdOhGbTL3xW2Xy6pA&index=7
- atjt2175 years ago
Helper III
I tried the formula on your blog as a calculated measure:
Week Rank2 = RANKX(ALL(DateDimension[Date]),(DateDimension[Week Start date],,ASC,Dense))But im getting an error that the syntax ASC is incorrect.
Could you please tell me if i happen to miss anything?
Thanks for you help amitchandak!