Reputation: 1698
I have a set of data in the following format:
Resp | Q1 | Q2
P1 | 4 | 5
P2 | 1 | 2
P3 | 4 | 3
P4 | 6 | 4
I'd like to show the count and % of people who gave an answer greater than 3. So in this case, the output would be:
Question | Count | Percent
Q1 | 3 | 75%
Q2 | 2 | 50%
Any suggestions?
Upvotes: 3
Views: 12091
Reputation: 11896
Here is a variation on @Alexander's correct answer. Some folks might find it slightly simpler, and it at least shows some of the Tableau features for calculating percentages.
Answer > 3
Technically, Alexander's solution uses LOD calculations to compute the percentages on the server side, while this solution uses Table calculations to compute the percentage on the client side. Both are useful, and can have different performance impacts. This just barely nicks the surface of what you can do with each approach; each has power and complexity that you need to start to understand to use in more complex situations.
Upvotes: 1
Reputation: 1967
Although it sounds like a fairly easy thing, it is a bit more complicated. Firstly your data is not row based so you will have to pivot it.
Now you need to create a calculated field (I called it Overthreshold
to check for your condition:
if [Answer] > 3 then
[Answer]
End
At this point you could substitute the 3
with a parameter in case you want to easily change that condition.
You can already drop the pills as follows to get the count:
Now if you want the percentage it gets a bit more complicated, since you have to determine the count of the questions and the count of the answers > 3 which is information that is stored in two different columns.
COUNT([Overthreshold]) / AVG({fixed [Question]:count([Answer])})
To explain what the formular does:
It takes the count of the answers that are over the threshold and devides it by the count of answers for each question. This is done by the fixed
part of the formular which counts the rows that have the same value in the Question
column. The AVG
is only there because Tableau needs an aggregeation there. Since the value will be the same for every record of the question, you could also use MIN
or MAX
.
It feels like there should be an eassier solution but right now I cannot think of one.
Upvotes: 1