I ran into a similar issue a while back. The approach that I used, which might work depending on your requirements, was to replace my filters with parameters. You can then create a calculated field that only counts sales when the customer name matches your parameter.
The main issue with that approach is that parameters are single-select only and don't refresh from the data.
Thanks for the reply Stephen. However I'm not totally clear on how this would solve my issue.
Regardless, it is also a requirement that these filters are multi-select, so I don't think this is an option. But I appreciate the advice!
Sorry I can't be of more help. I think the solution you proposed is probably best given your requirements. What you really need here is multi-select parameters, which Tableau does not support.
Just for future reference, the way the approach above would solve the issue if you only needed to select a single value would be to create a parameter (let's say "Customer Name Param") and the following calculated field:
First Party Sales: IF [Customer Name] = [Customer Name Param] THEN [Sales (First Party)] ELSE 0 END
When you select "Aaron Bergman", SUM([First Party Sales]) would give you zero for all regions in which that customer had no data, and the sales for that customer in regions for which there is data. Because you wouldn't be filtering, all of the regions would still appear.
EDIT: fixed a typo, had an aggregate of an aggregate
I see. I am familiar with parameters as filters, but hadn't thought of applying that in this context. This is not my solution here but I'll keep it in mind for future scenarios. Thanks again Stephen.