排名仅限最近一个月

时间:2018-04-25 01:51:15

标签: filter tableau rank

我有一个计算字段“Total Revenue”,它汇总了Tableau中多个数据源的收入。 根据这个字段(汇总字段)每月,我想只显示最近一个月收入最高的前五项。

table screenshot

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

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

1 个答案:

答案 0 :(得分: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()更改该部分

现在我们的值只包含最新月份的总和,我们可以使用度量对视觉进行排序。

您可以将新度量(我称之为度量:'上个月收入')拖到详细信息中,然后右键单击上的件,并对其进行排序通过你的新领域。

最后将项目拖到过滤器上,然后转到热门标签,根据“上个月收入”衡量标准的总和过滤您的数据。

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

enter image description here