I think that a parameter is what is going to be needed here for the user who belongs to multiple groups to choose which values they want to see. However, this parameter control will show for all users, but when they toggle through it, nothing will change unless they belong to a different group.
So for example, there are 3 groups, Group A, Group B, and Group C
Group A: Group B: Group C:
John Jane Jane
Jim Jill Jack
Jill Will Jerry
Then, there are three calculations created for Category.
If ismemberof('Group A') then (if [Category]='Technology' then 'Technology' end) end
If ismemberof('Group B') then (if [Category]='Furniture' then 'Furniture' end) end
Office Supplies Calc
If ismemberof('Group C') then (if [Category]='Office Supplies' then 'Office Supplies' end) end
So, according to this setup/calculations, Jill should be able to see Technology and Furniture. Jane should be able to see the data for Furniture and Office Supplies. Create a string parameter listing Furniture, Office Supplies and Technology. Then, create a calculation that uses this parameter:
case [Category Parameter]
when 'Technology' then 'Technology Calc'
when 'Furniture' then 'Furniture Calc'
when 'Office Supplies' then 'Office Supplies Calc' end
Then, place this on the filter shelf, check the Exclude box, as well as the null box. Then, show the Parameter control. When Jill or Jane are logged in, they will be able to toggle through to their desired views. However, when someone who only belongs to one group, changing the parameter control will have no effect. I hope this helps/makes sense!