Spotfire - 多年来ID的差异

时间:2017-07-01 19:08:29

标签: spotfire tibco

我有一个这样的数据集:一份3年的员工名单,其中有一些员工在三年内都出现(ID:1,2,3),有些员工在不同年份加入/离开公司。

Year IDEmployee
2014 1
2014 2
2014 3
2014 4
2015 1
2015 2
2015 3
2015 5
2015 6
2016 1
2016 2
2016 3
2016 6
2016 7
2016 8

我需要计算所有期间的进/出通量(2015年对2014年和2016年对2015年)

  • “In”flux = N + 1年的员工人数,N年不存在
  • “Out”flux = N年内的员工人数,N + 1年内不存在

在这种情况下,结果是:
  - 2015年 - 流动:2(ID:前一年不存在的5,6)。输出通量:1(ID:前一年出现但现在不存在的4)
  - 2016年 - 流动:2(ID:前一年不存在的7,8)。输出量:1(ID:前一年出现但现在不存在的5)

最简单的方法应该是使用计算列,但我不能写它:

InFlux column: UniqueCount([IDEmployee]) OVER ([Year]) - UniqueCount([IDEmployee]) OVER (PreviousPeriod([Year]))
OutFlux column: UniqueCount([IDEmployee]) OVER ([Year]) - UniqueCount([IDEmployee]) OVER (NextPeriod([Year]))

有什么建议吗? 非常感谢, Lollone

1 个答案:

答案 0 :(得分:0)

@ Lollone-请检查以下解决方案,并告诉我它是否适用于所有可能的情况。

In-flux列:

If(Count([ID]) over (intersect(previousperiod([Year]),[ID]))=0,"In")

Out-flux列:

If(([Year]!=Max([Year])) and (Count([ID]) over (intersect(nextperiod([Year]),[ID]))=0),"Out")

最终输出:

enter image description here