my error. your expression is fine. my solution works if there is a single dimesion in the report.
You can see that in your second example where the accumulation works for the stores in the Inland area which are supermarkets.
Given your data this coudl be a possible workaround.
Working on the assumption that each store can only be in one area and of one type then instead of having these attributes as columns/dimensions put them in as expressions. for this use only(Area), only(TypeOfStore).
Your report will then have a single dimension and the accumulation should work for the whole dataset.