如何执行计算并仅在列中至少有3个值时执行?

时间:2017-10-12 07:01:03

标签: spotfire tibco calculation

enter image description here我尝试了一些选项,但我没有得到正确的输出,所以我再次重新发布这个问题。

我想执行一个计算,只有在列中至少有3个值时才能执行。

只有在每列中至少有3个值时才应执行计算,如果没有3个值,例如:对于项目1 - 期间1我们没有任何先前的值,因此它应该终止。对于第2期,我们只有2个值,因此它应该终止。因为对于第3期,我们有至少3个值,它应该执行计算sum(*last 3 values*)

最终输出应为sum(HC)/ SUM(Time)

请参阅附图中的数据。

enter image description here

1 个答案:

答案 0 :(得分:0)

如果有3个可用值,如果你想要最后3个HC的总和或最后3个时间的总和,你可以使用:

if((If(Min(If([HC] is null,-1,[HC])) over (Intersect([Project],LastPeriods(3,[Period])))=-1,0,1))=1,Sum([HC]) over (Intersect([Project],LastPeriods(3,[Period]))) / Sum([Time]) over (Intersect([Project],LastPeriods(3,[Period]))))

如果你想要该行的最后3个HC /时间的总和,那么:

if((If(Min(If([HC] is null,-1,[HC])) over (Intersect([Project],LastPeriods(3,[Period])))=-1,0,1))=1,Sum([HC]) over (Intersect([Project],LastPeriods(3,[Period]))) / [Time])

请注意,这是基于Project对其进行分组。如果需要按项目,任务,子任务分组,则需要在交叉中使用逻辑。此外,您的数据顺序由“期间”列确定。