【问题标题】:Rank only for latest month仅排名最近一个月
【发布时间】:2018-04-25 21:10:04
【问题描述】:

我有一个计算字段“总收入”,它混合了 Tableau 中多个数据源的收入。 基于此字段(聚合字段)每月,我想只显示截至最近一个月收入最高的 TOP 5 项目。

如上表所示,必须根据最近一个月(3 月)的收入数据过滤掉项目(因为它们是 3 月的 TOP 5)。如何使用RANK() 实现这一点?我无法按照下面的公式仅对最近一个月进行排名,因为它显示错误,因为我无法混合聚合和非聚合函数。

IF DATETRUNC('month'),ReportDate)=//March 1st date given// 
THEN RANK(Total Revenue)
END

【问题讨论】:

    标签: filter tableau-api rank


    【解决方案1】:

    我的解决方案是一种解决方法,但似乎有效:

    • 使用以下公式创建计算字段:

    IF DATEPART('month', {MAX([date])}) = DATEPART('month', [date]) and DATEPART('year', {MAX([date])}) = DATEPART('year', [date]) THEN [revenue] ELSE 0 END

    代码上的{MAX([date])} 部分获取数据中的最大日期,它使用{} 字符固定,因此该值不受过滤器、日期分区等的影响。如果您想要将月份排序为我们所在的月份,那么您应该使用 NOW() 更改该部分

    现在我们有了一个只包含最近一个月总和的值,我们可以使用这个Measure对我们的视觉对象进行排序。

    您可以将您的新度量(我将度量称为“上个月收入”)拖动到详细信息,然后右键单击 上的 item 药丸,对其进行排序通过你的新领域。

    最后将您的item拖到过滤器并转到顶部标签,根据“上个月收入”度量的总和过滤您的数据。

    下面的屏幕截图显示了 excel 数据和最终的 Tableau 表:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-17
      • 2022-11-10
      • 2011-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多