【发布时间】:2017-06-16 09:50:34
【问题描述】:
我需要创建一个计算列,该列根据其他两列的值计算一个值与前一行的差异。
FOR 示例。考虑如下所示的 4 列。 Col B 和 Col C 具有日期值,Col A 作为一些唯一值,Col D 将具有一些数值,这些数值将用于计算所需的列,因此当 Col B=Col C 时,Col D 的对应值必须是取并减去 Col D 值,直到下一次 Col B=Col C 出现。
表格的图像(PS:我无法以可复制的方式复制整个表格,因为格式会变得混乱)
我需要如下输出:即当日期值相等时,[COL B]=[COL C](即 20-12-2016 15:40),那么我必须考虑对应的 COL D 值并用 138 减去,直到发生下一次类似的事件。下一次出现的值是 12-01-2017 15:40 ,然后应该用 161 减去它,这样会继续下去,并且是动态的。
请注意:对于 [COL B]=[COL C] 之前的值,那些对应的值应与 COL D 相同,或者如果 COL C 的值为 NULL 或 BLank,则其也应与突出显示的 COL D 相同在绿色。
我在spotfire中使用了如下代码
if([COL B] is Not NULL,If([COL B]=[COL C],First[COL D] - [COL D]),[COL D])
,但是由于要减去的值是动态的,所以我无法实现它。 任何帮助表示赞赏
@Ksp585 : 请在下面的屏幕截图中找到计算错误的地方:在绿色链接之后,下一个值应该是 751 (2638-3389),而不是根据之前的计算 (3389-22=3367) 计算为 3367,即错误:
【问题讨论】:
-
我什至在下面也尝试过:但它给出的错误如“invalid after” if([COL C] is Not NULL=, First(If([COL B]=[COL C],[ COL D]),"NA")) ) OVER ([COL A, COL B, COL C , COL D]))), "NA")OVER""
标签: spotfire