我正在尝试在Spotfire中创建自定义表达式,以计算交叉表中时间段之间的差异,该交叉表在列上具有多个层次结构(例如,一个是产品层次结构,另一个是产品层次结构)是时间层次)。我看到的所有示例似乎只有在时间层次结构是在轴上选择的单个属性时才起作用。
我的方案是,我希望在交叉表中显示不同时间段内每个类别或产品(通过列轴上的产品层次结构滑块选择)的销售总额(通过列轴上的时间层次结构选择) ),以及与前一时期f 或同一类别或产品的差异。行轴设置为客户名称。
Spotfire建议的默认表达式“差异”实际上显示了相对于交叉表中前一个“单元格”的差异,无论是否属于同一产品/类别。在示例屏幕截图here中,2014年产品A的差异显示为“13”,即使产品A没有上一个时间段。“13”的值实际上是产品销售额之间的差异A 2014年和2014年产品B的销售额来自另一个类别,恰好是同一行的先前值。
可以在here找到示例分析。
我非常感谢有关我如何能够获得相同产品和/或类别的前一时间段(取决于用户在产品层次滑块中选择的内容)的一些提示。
答案 0 :(得分:1)
我设法建立一个表达式来正确计算我想要的差异。表达式是:
Sum([Amount]) - Sum([Amount]) OVER (Intersect(PreviousPeriod([Axis.Columns]),[Hierarchy.ProductHierarchy]))
基本上,这与具有非时间层次结构的列的前一时段相交,这似乎产生了正确的结果。