Forum Discussion
Next Week Function
- 7 years ago
Slightly amended the formula to take into account the first week as well
next_week = CALCULATE( SUM(Sheet1[Value]), FILTER(ALL(Sheet1), IF(WEEKNUM(Sheet1[Date], 21)=51,0,WEEKNUM(Sheet1[Date], 21)) = IF(WEEKNUM(MAX(Sheet1[Date]), 21)=51,0,WEEKNUM(MAX(Sheet1[Date]), 21)) + 1 && Sheet1[Filter1] = MAX(Sheet1[Filter1]) && Sheet1[Filter2] = MAX(Sheet1[Filter2]) ))
Add tis formula on a measure:
next_week = CALCULATE(
SUM(Sheet1[Value]),
FILTER(ALL(Sheet1), WEEKNUM(Sheet1[Date]) = WEEKNUM(MAX(Sheet1[Date])) + 1
&& Sheet1[Filter1] = MAX(Sheet1[Filter1])
&& Sheet1[Filter2] = MAX(Sheet1[Filter2])
))
OR THIS
next_week = CALCULATE(
SUM(Sheet1[Value]),
FILTER(ALL(Sheet1), WEEKNUM(Sheet1[Date]) = WEEKNUM(MAX(Sheet1[Date])) + 1
&& Sheet1[Filter1] = MAX(Sheet1[Filter1])
&& Sheet1[Filter2] = MAX(Sheet1[Filter2])
))Also it seems that you first YEARMONTHWEEK value may be wrong.
- andrehawari7 years agoHelper II
Hi, Thanks for the solution. Unfortunately I cannot use the WEEKNUM Function because the week definiton is customized and changed according to users. Instead, i Have to use YEAR_MONTH_WEEK column (it is formated as integer).
Also the first date row, 23 Dec 2017 is intended as it is, because the date can be any, as long as it is on the date 1,8,15,23
I modified your measure, but it gives me nothing . Any advice ?
next_week = CALCULATE( SUM(Sheet1[Value]), FILTER(ALL(Sheet1), WEEKNUM(Sheet1[WEEK_YEAR_MONTH]) = WEEKNUM(MAX(Sheet1[WEEK_YEAR_MONTH])) + 1 && Sheet1[Filter1] = MAX(Sheet1[Filter1]) && Sheet1[Filter2] = MAX(Sheet1[Filter2]) ))- themistoklis7 years agoCommunity Champion
You mentioned that you cant use weeknum function but you are using it in your formula.
Were you referring to something different?
Also the first YEARMONTHWEEK is wrong.
It says 20181204 and the relevant date is 23/12/2017
- affan7 years agoSolution Sage
Hi andrehawari,
If you need your measure to be based on Year_Month_Week then try the below measure
NextWeek = var _weekn=RIGHT(MAX(Sheet1[YEAR_MONTH_WEEK]),1) var _diff=IF(_weekn="4",97,1) RETURN CALCULATE( SUM(Sheet1[Value]), FILTER(ALL(Sheet1), Sheet1[YEAR_MONTH_WEEK] = MAX(Sheet1[YEAR_MONTH_WEEK]) + _diff && Sheet1[Filter1] = MAX(Sheet1[Filter1]) && Sheet1[Filter2] = MAX(Sheet1[Filter2]) ))If this helped you, please mark this post as an accepted solution and like to give KUDOS .
Regards,
Affan