我正在使用Tableau Desktop,我的数据是这样的:
KPI,date,monthValue
coffee break,01/06/2015,10.50
coffee break,01/07/2015,8.30
Run Code Online (Sandbox Code Playgroud)
我想建立一个像这样的表
KPI, year(date), last value
coffee time, 2015, 8.30
Run Code Online (Sandbox Code Playgroud)
如何设置计算字段以显示该年度的最新值?我试着这样做:
LOOKUP([MonthValue], LAST())
Run Code Online (Sandbox Code Playgroud)
但它不起作用并且告诉我'不能混合聚合和非聚合',所以我做了:
LOOKUP(sum([MonthValue]), LAST())
Run Code Online (Sandbox Code Playgroud)
但它也没有用.我该怎么办?
如果您使用的是Tableau 9,则可以使用LOD计算来查找日期字段中的最大值,然后检查当前日期值是否与最大日期值相同.
[Date] == {fixed: max([Date])}
Run Code Online (Sandbox Code Playgroud)
正如您在下面的示例中所看到的,当您使用calc作为过滤器时,您将只从上面的示例中获取最后一行.
更新:要获得每年的价值,您可以执行以下操作:
在这里,我使用表格计算来查找每年的最大日期,然后对这些日期进行排名并过滤到每年的最新日期(这将是排名等于1的日期).
!max date 是 WINDOW_MAX(ATTR(Date))
!rank 是 RANK(Date)
您需要确保表计算是以正确的方式计算机(在这种情况下,跨越每年的值).