繁体   English   中英

如何计算tableau 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%

有什么建议?

虽然这听起来很容易,但它有点复杂。 首先,您的数据不是基于行的,因此您必须转动它。

  1. 将数据加载到Tableau中
  2. 在DataSource屏幕中选择Q1和Q1列,右键单击它们并选择“Pivot”
  3. 使用答案“Answers”命名列(仅为了清楚起见。您应该得到一个如下所示的表:

在此输入图像描述

现在你需要创建一个计算字段(我称之为Overthreshold来检查你的情况:

if [Answer] > 3 then
[Answer]
End

此时,您可以使用参数替换3 ,以防您想要轻松更改该条件。 您可以按照以下方式丢弃药丸以获得计数: 在此输入图像描述

现在,如果你想要百分比,它会变得有点复杂,因为你必须确定问题的数量和答案的数量> 3,这是存储在两个不同列中的信息。

  1. 使用此计算创建另一个计算字段COUNT([Overthreshold]) / AVG({fixed [Question]:count([Answer])})
  2. 将创建的药丸放到“文本”字段或列抽屉中,然后查看百分比值
  3. 右键单击该字段并选择Default Propertiess / Number Format将其设置为百分比而不是浮点数

在此输入图像描述

解释公式的作用:它将超过阈值的答案计数,并将其与每个问题的答案计数分开。 这是通过公式的fixed部分完成的,它对“ Question列中具有相同值的行进行计数。 AVG仅在那里,因为Tableau需要在那里进行聚合。 由于问题的每个记录的值都相同,因此您也可以使用MINMAX

感觉应该有一个更好的解决方案,但现在我想不出一个。

以下是@Alex的正确答案的变体。 有些人可能会发现它稍微简单一点,它至少显示了一些用于计算百分比的Tableau功能。

  1. 从Alexander的答案开始,将Overtheshold修改为布尔值字段,定义为Answer > 3
  2. 不是为百分比创建第二个计算字段,而是将问题,超过阈值和SUM(记录数)拖到viz上,如下所示。 在此输入图像描述
  3. 右键单击SUM(记录数),然后选择快速表计算 - >总计百分比
  4. 双击左侧数据窗格中的“记录数”,将其添加到工作表中,这是显示“测量名称”和“测量值”元字段的快捷方式。 将度量名称从行移动到列以获取下面的视图,该视图还使用度量名称上的别名来缩短列标题。 在此输入图像描述
  5. 如果您不想显示以下阈值数据,只需右键单击列标题False并选择隐藏。 (如果需要,可以通过右键单击Overthreshold字段取消隐藏)
  6. 最后,为了让它更加美观,你可以将Overthreshold移动到细节架子(你不能从视图中移除它),并调整显示的字段的数字格式以获得结果。 在此输入图像描述

从技术上讲,Alexander的解决方案使用LOD计算来计算服务器端的百分比,而此解决方案使用Table计算来计算客户端的百分比。 两者都很有用,并且可能会产生不同的性能影响。 这几乎没有说明你可以用每种方法做的事情; 每个都有你需要开始理解的功能和复杂性,以便在更复杂的情况下使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM