我在Spotfire中有一个数据表,其中包含两个我感兴趣的列:Time
(例如31/01/2015)和Value
(整数)。
我希望将最近的日期(例如2015年12月)设置为当前时间。然后我想根据之前的1个月,3个月,6个月等选择Value
。因此,如果我想要过去6个月的所有值,那么2015年12月,2015年11月,我应该Sum(Values)
, 2015年10月,2015年9月,2015年8月,并返回。
到目前为止,我只能通过在将其插入Spotfire之前在Excel中手动执行任务来完成此操作,那么有没有办法为我想要的每个时段创建计算列? (过去一个月,三个月等)
答案 0 :(得分:1)
可能有很多方法可以解决这个问题,但我会提出一个建议,我们会看到它如何适合您的具体案例。
您可以为感兴趣的每个时间跨度添加计算列,定义如下:
Sum(if (DateAdd('month', 3, [Time]) >= Max([Time]), [Value], null))
此示例将为您提供一个列,其中包含过去3个月内发生的所有值,替换其中的数字3以修改您感兴趣的时间跨度。计算列的完整总和将使您获得总时间。
可能更好地使用布尔列而不是复制值列。然后,您计算的列将定义为:
DateAdd('month', 3, [Time]) >= Max([Time])
在计算总计时,您将使用计算列使用if语句,如下所示:
Sum(if([3Months],[Value],null))
其中[3Months]是一个布尔列。