按最新日期排序数据,选择前10名和图表(v.10.0.1)

时间:2017-05-10 09:58:20

标签: tableau top-n

这是我创建的数据表

enter image description here

我需要按照2017年4月的数据对数据进行排序'按降序排列,然后选择前10个项目。

当我们在2017年4月选择top10时,输出应为

Desired Output

相反,我得到的是enter image description here

这是我迄今为止尝试过的内容,

  1. 创建了一个计算字段 Calculation1 = iif([Year_Month] = MAKEDATE(2017,4,1),[Claim Count],0)
  2. 基于' Calculation1'
  3. 对项目进行排序
  4. 将项目拖动到过滤器,并根据总和([Calculation1])
  5. 选择Top10

    我无法理解这里的top10是如何派生的。

    我哪里错了?

    我想要获得的图表应该类似于 enter image description here

    请帮我解决这个问题。

2 个答案:

答案 0 :(得分:1)

您可以在计算中过滤到选定的数据部分,并根据需要使用。因此,创建一个名为 April_2017_Foobars 的计算字段,定义为:

if datetrunc('month', [Year_Month]) = #04/01/2017# then [Foobars] end

此字段返回2017年4月行的[Foobars],其他行返回null。聚合函数会忽略空值,因此如果您使用SUM()或AVG()等进行聚合,效果将仅针对该字段过滤到2017年4月。

然后,您可以使用 April_2017_Foobars 为项目字段排序和定义顶级过滤器。这是一种非常通用的技术,适用于各种情况。

如果您总是打算使用最近一个月,可以稍微概括一下使用特殊月份的参数而不是硬编码 - 或者使用LOD计算来查找数据集中的最后一个月。

P.S。如果您愿意,可以使用makedate()函数而不是日期文字,并且您的数据源支持该函数。可以避免在各个国家/地区对日期文字格式产生不同的混淆。

答案 1 :(得分:1)

  1. 创建Calculation1字段:iif([Year_Month] =" 2017年4月",[Number],0)
  2. 在Calculation1 Sum
  3. 上按降序排序项目
  4. 将Project拖动到过滤器,并执行Top>按字段>上:10计算1总和