Excluding row item from a group calcuation

masplin

Active Member
Joined
May 10, 2010
Messages
411
I would like to compare results from one of my shops with the result form all my other shops EXCLUDING the shop in question.

so I have pivot table with [Location Name] as rows. In values I have [Transactions per hour per store] and I have been able calculate the transactions per hour for all shops using

Code:
CALCULATE(                       [Trans per hour per store],ALL(Location[Location Name])
                       )

However what i really want is to calculate this excluding the location on that row. For example

Location Trans/h Trans/h for others
A 10 25 (av B&C)
B 20 20 (A&C)
C 30 15 (A&B)

Is this possible ?

Thanks
Mike
 

Excel Facts

Wildcard in VLOOKUP
Use =VLOOKUP("Apple*" to find apple, Apple, or applesauce

Ozeroth

Active Member
Joined
Dec 14, 2013
Messages
264
Hi Mike,
It sure is possible.

(Note: I'm assuming your [Trans per hour per store] measure will average over all stores in the filter context, otherwise this would need to be changed to an appropriate average in the below measure.)

One possible measure is:

Code:
Trans per hour for other locations := CALCULATE([Trans per hour per store],
       FILTER(ALL(Location[Location Name]),
       NOT(  CONTAINS(VALUES(Location[Location Name]),Location[Location Name],Location[Location Name] )  )  )

It uses a FILTER over all locations to include only those not in the current filter context. So it will work for any number of locations in the current filter context.
I have to admit, the repeated references to [Location Name] within CONTAINS look confusing when written out!

Would be interested in others' solutions.
 

scottsen

Well-known Member
Joined
Mar 16, 2014
Messages
1,263
That looks awesome, Ozeroth! :)

Didn't try it ... at all, but I'm wonder if this slightly different (but same idea) measure would work:

Code:
Other Locations := CALCULATE([Trans per hour per store],
       FILTER(ALL(Location[Location Name]),  Location[Location Name] != VALUES(Location[Location Name]))

Probably the VALUES() will end up blowing up on grand totals, so probably:

Code:
Other Locations := IF (HASONEVALUE(Location[Location Name]),
       CALCULATE([Trans per hour per store],
       FILTER(ALL(Location[Location Name]),  Location[Location Name] != VALUES(Location[Location Name]))
  )

No better, same idea, and generally pretty cool.
 

scottsen

Well-known Member
Joined
Mar 16, 2014
Messages
1,263
lol. oooops! Too many languages. the != should be <> (the NOT equal operator)
 

masplin

Active Member
Joined
May 10, 2010
Messages
411
I that case your is slightly more elegant as less code!!! i'll try it thanks
 

Watch MrExcel Video

Forum statistics

Threads
1,132,912
Messages
5,655,914
Members
418,251
Latest member
aondrla

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Top