我想计算有冗余行的列的百分比。例如……我想计算下表中A和B的"成功"百分比
+-------+---------+
| Name | Result |
+-------+---------+
| A | Success |
| B | Success |
| A | Fail |
| A | Success |
| B | Fail |
| B | Fail |
| A | Success |
+-------+---------+
我尝试使用计算字段,将If([NAME]) = "Success"然后1 else 0然后编辑表的计算百分比->表的上下…
您完全可以使用"Percent of Total"表进行计算。棘手的一点是进入"编辑表计算"对话框,告诉Tableau你希望它如何执行计算。
这里有一个例子,如何做到这一点,你可以调整,以满足您的具体需求。将[Name]
和[Result]
放置在Rows机箱中。然后将SUM(Number of Records)
放入Text中。你会得到这样的结果:
Name Result | |
---------------------+-----+
A Fail | 1 |
Success | 3 |
--------------------+-----+
B Fail | 2 |
Success | 1 |
--------------------+-----+
右键单击SUM(Number of Records)
,单击"Add Table Calculation…"。在表计算对话框的顶部,转到"计算类型:"并选择"总数的百分比"。在"Summarize the values from:"中,它将默认为"Table (Down)"。点击Apply,看看会发生什么。坏消息——这是错误的。
Name Result | |
---------------------+-----+
A Fail | 14% |
Success | 43% |
--------------------+-----+
B Fail | 29% |
Success | 14% |
--------------------+-----+
默认的"Table (Down)"几乎不是你真正想要的。这就是说要计算整个分区总数的百分比,但实际上您希望看到每个Name占总数的百分比。
在你真正擅长这部分之前(甚至可能在你成为一个Tableau禅师和一个Tableau大神之后),我建议你在定义表格计算时总是使用高级菜单。这是一个很好的机会来思考Tableau如何执行计算。在本例中,您希望计算每个名称的每个结果(成功和失败)的百分比。
进入高级对话框(在"总结来自:的值"下)。您将在Partitioning下看到Name和Result,而在Addressing下看不到任何内容。移动结果到寻址,并在分区下留下名称。你在这里所说的是"我希望Tableau计算每个结果(成功或失败)的百分比。我希望它对每个名字都这样做。"
应用这些更改,您应该看到如下所示:
Name Result | |
---------------------+-----+
A Fail | 25% |
Success | 75% |
--------------------+-----+
B Fail | 67% |
Success | 33% |
--------------------+-----+
完美。如果您只想看到成功,只需右键单击表中的"失败"并单击"隐藏"。不要把它们过滤掉。这将从分区中删除这些行,从而从总计算百分比中考虑的总数中删除这些行。通过隐藏失败而不是过滤它们,您可以将它们保留在分区中,但不会在数据视图中显示它们。