计算Tableau中有冗余行的列的百分比



我想计算有冗余行的列的百分比。例如……我想计算下表中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% |
 --------------------+-----+

完美。如果您只想看到成功,只需右键单击表中的"失败"并单击"隐藏"。不要把它们过滤掉。这将从分区中删除这些行,从而从总计算百分比中考虑的总数中删除这些行。通过隐藏失败而不是过滤它们,您可以将它们保留在分区中,但不会在数据视图中显示它们。

最新更新