Tableau如何返回最高度量的维度(如何返回最高分的名称)?

时间:2016-10-11 05:55:50

标签: tableau

假设我有这么简单的数据:

+-------+-------+---------+
| Tests | Names | Scores  |
+-------+-------+---------+
| Test1 | John  |      95 |
| Test1 | Becky |      90 |
| Test2 | John  |      80 |
| Test2 | Becky |      85 |
+-------+-------+---------+

我想写一个计算字段,该字段将返回每个考试中得分最高的学生的姓名。我想这样做而不对整个图表应用过滤器。

1 个答案:

答案 0 :(得分:2)

找到最接近的解决方案是在整个图表上使用过滤器(https://community.tableau.com/message/443167#443167)。通过一些修改,我能够构建并避免应用过滤器:

这是我提出的解决方案。这是两步:

第1步:创建一个计算字段,该字段是一个尺寸,用作过滤器。当学生得分最高时,此过滤器将为true。 过滤:[Scores] = {FIXED [Tests] : MAX([Scores])}

第2步:创建一个计算字段,它是一个Measurement,用于在过滤器为true时返回学生的姓名。

TopStudent: attr(if [Fan] then [Name] END)

ATTR将摆脱NULL。

(编辑:ATTR()返回单个唯一的非空值(如果有),否则显示“*”表示有多个值。所以如果多个学生得到同样的最高值得分,ATTR()将显示“*”。如果你想在关系的情况下显示一个学生姓名,你需要一个打破平局规则 - 例如,使用MIN()或MAX()而不是ATTR( )按字母顺序选出获胜者。)

现在,您可以使用此度量来创建图表,显示最佳学生,而不对整个图表应用过滤器。

Screenshot at the end