复杂同期比- 动态格间运算-报表设计高级教程
目录

复杂同期比

一、报表实例

在同期比的例子中,年、月均为连续的,如果我们要做的比例不是根据连续的年月算出来的,该如何操作呢?我们先举一个例子,这里沿用同期比中的例子:

二、设计要点


   这个报表中,我们希望在E2单元格计算出“比去年同期”,这个指标的运算逻辑是:当前月的订单金额/去年当月的订单总金额,如果去年的该月无订单,则不计算。 从图中可以看出,E2格的表达式最关键的在于如何表示出上一年度中该月的订单总金额。该报表年度和月份都不是连续的,因此我们需要在E2格的表达式中加一些判断条件:

E2单元格的表达式:=C2/C2[`0]{A2==$A2-1 && B2==$B2}


此报表保存为“复杂同期比报表”,预览结果如下:

这里除了位移坐标还用到了$运算符,下面我们做些介绍。

三、小结 

$运算符

请看下面的表格:
 
    设计器中只有一行的单元格表达式,扩展后变成了很多行。而该表格中的难点是计算比去年同期,也就是说,对于2006年7月份的格子来说,需要和2005年7月份的数据进行对比运算,而2006年4月份的格子需要和2005年4月份的格子进行对比运算。而这个表格中的月份不是连续的,也不按顺序排列,因此仅仅靠层次坐标、位移坐标无法定位到去年同月份的单元格,需要借助条件表达式。
    此时我们在D2单元格中写入表达式:C2-C2[A2:-1]{当前格的B2主格值==目标格的B2主格值}
    这时我们会发现,条件表达式没法写了,当前格的主格是B2,目标格的主格也是B2,如果我们写成B2=B2,显然搞不清谁是谁的,于是我们引入了$运算符,它在格集条件表达式中指代当前格的主格。
    比如上面的条件表达式我们可以写成:C2-C2[A2:-1]{$B2==B2},其中$B2指代当前格的B2主格,B2指代目标格的B2主格。

语法: $Cellx

返回值:当前格的Cellx主格的值