如何计算画面 public 中子集的值和百分比的出现?
How to count occurrence of value and percentage of a subset in tableau public?
我有一组数据,格式如下:
Resp | Q1 | Q2
P1 | 4 | 5
P2 | 1 | 2
P3 | 4 | 3
P4 | 6 | 4
我想显示给出答案大于 3 的人数和百分比。因此在这种情况下,输出将是:
Question | Count | Percent
Q1 | 3 | 75%
Q2 | 2 | 50%
有什么建议吗?
虽然这听起来很简单,但它有点复杂。
首先,您的数据不是基于行的,因此您必须对其进行透视。
- 将数据加载到 Tableau
- 在数据源屏幕中选择列 Q1 和 Q1,右键单击它们并选择 "Pivot"
- 将答案列命名为 "Answers"(为清楚起见。
你应该得到一个看起来像这样的 table:
现在您需要创建一个计算字段(我将其命名为 Overthreshold
以检查您的条件:
if [Answer] > 3 then
[Answer]
End
此时您可以将 3
替换为一个参数,以防您想轻松更改该条件。
您已经可以按如下方式放下药丸来计算数量:
现在如果你想要百分比,它会变得有点复杂,因为你必须确定问题的数量和答案的数量> 3,这是存储在两个不同列中的信息。
- 使用此计算创建另一个计算字段
COUNT([Overthreshold]) / AVG({fixed [Question]:count([Answer])})
- 将创建的药丸放到 "text" 字段或列抽屉中,然后查看百分比值
- 右键单击该字段并选择默认属性/数字格式以将其设置为百分比而不是浮点数
解释公式的作用:
它计算超过阈值的答案数,然后除以每个问题的答案数。这是由公式的 fixed
部分完成的,该部分对 Question
列中具有相同值的行进行计数。 AVG
之所以在那里,是因为 Tableau 需要在那里进行聚合。由于问题的每条记录的值都相同,您也可以使用 MIN
或 MAX
.
感觉应该有一个更简单的解决方案,但现在我想不出一个。
这是@Alexander 正确答案的变体。有些人可能会觉得它稍微简单一些,它至少显示了一些 Tableau 计算百分比的功能。
- 从 Alexander 的回答开始,将 Overtheshold 修改为布尔值字段,定义为
Answer > 3
- 不要为百分比创建第二个计算字段,而是将问题、超阈值和 SUM(记录数)拖到可视化项上,如下所示。
- 右键单击 SUM(记录数)并选择快速 Table 计算 -> 总计百分比
- 双击左侧数据窗格中的记录数将其添加到sheet,这是导出度量名称和度量值meta-fields的快捷方式。将 Measure Names 从 Rows 移动到 Columns 以获得下面的视图,它还使用 Measure Names 的别名来缩短列标题。
- 如果您不想显示低于阈值的数据,只需右键单击 header False 列并选择隐藏。 (如果需要,您可以通过右键单击 Overthreshold 字段来取消隐藏它)
- 最后,为了美化一下,您可以将 Overthreshold 移动到详细信息架(但您不能将其从视图中删除),并调整所显示字段的数字格式以获得结果。
从技术上讲,Alexander 的解决方案使用 LOD 计算来计算服务器端的百分比,而此解决方案使用 Table 计算来计算客户端的百分比。两者都很有用,并且会产生不同的性能影响。这只是您可以使用每种方法做的事情的表面。每一种都具有强大的功能和复杂性,您需要开始了解它们才能在更复杂的情况下使用。
我有一组数据,格式如下:
Resp | Q1 | Q2
P1 | 4 | 5
P2 | 1 | 2
P3 | 4 | 3
P4 | 6 | 4
我想显示给出答案大于 3 的人数和百分比。因此在这种情况下,输出将是:
Question | Count | Percent
Q1 | 3 | 75%
Q2 | 2 | 50%
有什么建议吗?
虽然这听起来很简单,但它有点复杂。 首先,您的数据不是基于行的,因此您必须对其进行透视。
- 将数据加载到 Tableau
- 在数据源屏幕中选择列 Q1 和 Q1,右键单击它们并选择 "Pivot"
- 将答案列命名为 "Answers"(为清楚起见。 你应该得到一个看起来像这样的 table:
现在您需要创建一个计算字段(我将其命名为 Overthreshold
以检查您的条件:
if [Answer] > 3 then
[Answer]
End
此时您可以将 3
替换为一个参数,以防您想轻松更改该条件。
您已经可以按如下方式放下药丸来计算数量:
现在如果你想要百分比,它会变得有点复杂,因为你必须确定问题的数量和答案的数量> 3,这是存储在两个不同列中的信息。
- 使用此计算创建另一个计算字段
COUNT([Overthreshold]) / AVG({fixed [Question]:count([Answer])})
- 将创建的药丸放到 "text" 字段或列抽屉中,然后查看百分比值
- 右键单击该字段并选择默认属性/数字格式以将其设置为百分比而不是浮点数
解释公式的作用:
它计算超过阈值的答案数,然后除以每个问题的答案数。这是由公式的 fixed
部分完成的,该部分对 Question
列中具有相同值的行进行计数。 AVG
之所以在那里,是因为 Tableau 需要在那里进行聚合。由于问题的每条记录的值都相同,您也可以使用 MIN
或 MAX
.
感觉应该有一个更简单的解决方案,但现在我想不出一个。
这是@Alexander 正确答案的变体。有些人可能会觉得它稍微简单一些,它至少显示了一些 Tableau 计算百分比的功能。
- 从 Alexander 的回答开始,将 Overtheshold 修改为布尔值字段,定义为
Answer > 3
- 不要为百分比创建第二个计算字段,而是将问题、超阈值和 SUM(记录数)拖到可视化项上,如下所示。
- 右键单击 SUM(记录数)并选择快速 Table 计算 -> 总计百分比
- 双击左侧数据窗格中的记录数将其添加到sheet,这是导出度量名称和度量值meta-fields的快捷方式。将 Measure Names 从 Rows 移动到 Columns 以获得下面的视图,它还使用 Measure Names 的别名来缩短列标题。
- 如果您不想显示低于阈值的数据,只需右键单击 header False 列并选择隐藏。 (如果需要,您可以通过右键单击 Overthreshold 字段来取消隐藏它)
- 最后,为了美化一下,您可以将 Overthreshold 移动到详细信息架(但您不能将其从视图中删除),并调整所显示字段的数字格式以获得结果。
从技术上讲,Alexander 的解决方案使用 LOD 计算来计算服务器端的百分比,而此解决方案使用 Table 计算来计算客户端的百分比。两者都很有用,并且会产生不同的性能影响。这只是您可以使用每种方法做的事情的表面。每一种都具有强大的功能和复杂性,您需要开始了解它们才能在更复杂的情况下使用。