Spotfire:根据条件

时间:2016-02-24 13:58:44

标签: calculated-columns spotfire

我在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中手动执行任务来完成此操作,那么有没有办法为我想要的每个时段创建计算列? (过去一个月,三个月等)

1 个答案:

答案 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]是一个布尔列。