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

Tableau api Tableau如何返回最高度量值的维度(如何返回最高分数的名称)?,tableau-api,Tableau Api,假设我有一个简单的数据: +-------+-------+---------+ | Tests | Names | Scores | +-------+-------+---------+ | Test1 | John | 95 | | Test1 | Becky | 90 | | Test2 | John | 80 | | Test2 | Becky | 85 | +-------+-------+---------+ 我想写一个计算字段,返回

假设我有一个简单的数据:

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

我想写一个计算字段,返回每次考试得分最高的学生的姓名。我不希望对整个图表应用筛选器来执行此操作。

找到的最接近的解决方案是对整个图表使用筛选器()。经过一些修改,我能够构建并避免应用过滤器:

这是我想出的解决办法。它有两个步骤:

步骤#1:创建一个计算字段,该字段是用作筛选器的维度。当学生得分最高时,此筛选器为真。 过滤器:
[Scores]={固定的[Tests]:MAX([Scores])}

步骤#2:创建一个计算字段,该字段是一个度量值,在筛选为真时返回学生的姓名

TopStudent: attr(if [Fan] then [Name] END)
ATTR将清除空值。

(编辑:ATTR()返回一个唯一的非空值(如果有),否则它会显示一个“*”,表示有多个值。因此,如果多个学生获得相同的最高分数,ATTR()将显示一个“*”。如果要在打成平局的情况下显示一个学生名,则需要一个打破平局的规则——例如,使用MIN()或者用MAX()代替ATTR(),按字母顺序从获奖者中挑选。)

现在,您可以使用此度量创建一个图表,显示最优秀的学生,而无需对整个图表应用过滤器


找到的最接近的解决方案是在整个图表上使用过滤器()。经过一些修改,我能够构建并避免应用过滤器:

这是我想出的解决办法。它有两个步骤:

步骤#1:创建一个计算字段,该字段是用作筛选器的维度。当学生得分最高时,此筛选器为真。 过滤器:
[Scores]={固定的[Tests]:MAX([Scores])}

步骤#2:创建一个计算字段,该字段是一个度量值,在筛选为真时返回学生的姓名

TopStudent: attr(if [Fan] then [Name] END)
ATTR将清除空值。

(编辑:ATTR()返回一个唯一的非空值(如果有),否则它会显示一个“*”,表示有多个值。因此,如果多个学生获得相同的最高分数,ATTR()将显示一个“*”。如果要在打成平局的情况下显示一个学生名,则需要一个打破平局的规则——例如,使用MIN()或者用MAX()代替ATTR(),按字母顺序从获奖者中挑选。)

现在,您可以使用此度量创建一个图表,显示最优秀的学生,而无需对整个图表应用过滤器