The initial questions I ask myself when figuring things like this is out are:
- What do I want to initially filter? (In this case, filter for certain responses to a question)
- What is the thing that is being affected by the filter? (In this case, limiting to certain respondents)
- What do I want to do after that (see responses to other questions)
So in this case, the goal can be expressed as wanting to filter respondents based on a certain criteria (the response to a question), and then to display all of the responses for that respondent. In essence, this is a form of cohort analysis where the cohort is being defined in Tableau. There are a variety of ways to do this, here are ones I can come up with quickly:
A. Create a worksheet showing the list of Brands and the Respondent ID on the Level of Detail. Hide the marks by setting the color to white, transparency to 0%, size to smallest, and removing the borders. Set up a target worksheet that has the responses. Then build a dashboard with 1st worksheet using a Filter Action on the Respondent ID targeting the 2nd worksheet. Here I've done this with Superstore using Category as a stand-in for Brand and Customer ID as a stand-in for Respondent ID:
B. Use a conditional filter (in this case embedded in a Set) based on a parameter:
C. Instead of using a parameter, using a duplicate connection to the data source for a self-blend on only Customer ID while filtering for the Category:
An advantage to this technique over the parameter one is that multiple selection is possible, though it does introduce additional complications. See Creating a Dynamic “Parameter” with a Tableau Data Blend | Drawing with Numbers for details.
D. Set up a cross product on your data so all the chosen brands become members of a new dimension, then use that dimension to filter. You'd need to be careful how any aggregation happens due to the multiplied data.
I set up examples of A through C in the attached.
This is great, Jonathan - thank you so much for your thorough explanation of the options! I'll go through them all.
You are so generous with your support, and I'm very grateful. Thank you.
Perhaps you already solved your issue but I recently ran into this and came up with a solution so thought I'd share. In addition to Jonathan's suggestions, I have a slightly different approach that worked for me. Assuming you have a survey response ID, you can do a blend on that ID that allows you to filter on, in your case, Brand. Here's how I did it.
1) Set up your normal data as the primary datasource (either with or without the brand-based questions, doesn't matter).
2) Create a copy of your data and keep only the Brand-related questions, as per the following:
ID Brand1 Brand2 Brand3 1 1 0 0 2 0 1 1 3 1 1 0
The data can be 0s & 1s, or Brand1s & Brand2s, it doesn't really matter what the value is.
3) Reshape your data (in Excel or using Tableau's Pivot feature), so now it looks like this:
ID Brand Value 1 Brand1 1 1 Brand2 0 1 Brand3 0 2 Brand1 0 2 Brand2 1 2 Brand3 1 3 Brand1 1 3 Brand2 1 3 Brand3
4) Then filter it down only to those instances of a positive response (i.e. where Value=1), again either in Excel or Tableau. You can also remove the Value column since we don't need it anymore. Now your data looks like this:
ID Brand 1 Brand1 2 Brand2 2 Brand3 3 Brand1 3 Brand2
5) Connect to this reshaped dataset as your secondary datasource and blend on ID only. You should now be able to add "Brand" as a filter to any dashboard or viz and it will return only those IDs that satisfy the criterion of whether that person indicated they owned the brand or not. There is one serious downside to this approach which is that you can't filter groups in a primary datasource from a secondary datasource, so any groups you are using in your primary will need to be converted to calculated fields or addressed in some other way.
Hope this helps!
Thank you Alex! This is an interesting approach. I'm going to give it a whirl. Appreciate the suggestion!