I think it would work if your data source had '0' for week4 . But if its blank and the combination comes from a join from a fixed week dimension, then it could be being treated as missing or null...in which case null+ something else is always null (and being rendered as zero).
If you replace sum(Sales) with a check for null (and assign 0) does it help ?
sum(aggr(rangesum(above( if( isnull(sum(sales)) , 0, sum(Sales)) , 0, 2)), Type)/2)
A sample may help to give me a few attempts to solve.