同期比

阅读(5263) 标签: 同期比,

本节将重点介绍同期比报表的制作,学习位移坐标的用法。

一个例子

先看这张报表

数据集ds1SELECT 订单.订购日期,订单明细.单价,订单明细.数量 FROM 订单,订单明细 WHERE 订单.订单ID = 订单明细.订单ID AND 订单.订购日期 is not null

A2单元格表达式:=ds1.group(year(订购日期);year(订购日期):1)

B2单元格表达式:=ds1.group(month(订购日期);month(订购日期):1)

C3单元格表达式:= ds1.sum(单价*数量)

预览如下:

在这个报表中,“比上期”这个指标的运算逻辑是:本月订单总金额/上月订单总金额。

从上图中可以看出,D2格的表达式最关键的在于如何表达出前一个月的订单总金额,该报表是根据年分组并按年、月进行排序,因此我们想得到上一期的订单总金额,只要能得到扩展后C2单元格上一单元格的订单金额就可以了,我们来看一下润乾报表是如何实现的。

这里用到了润乾报表非线性模型中的位移坐标,请参见 位移坐标 ,我们把D2格的表达式写成:= C2/C2[-1],报表保存为12.4.1.rpx,如下图所示:

位移坐标

有了层次坐标后,很多时候并不够用,因为大部分时候报表设计者并不知道目标单元格的具体位置,仅仅知道目标单元格相对于当前单元格的位置,基于这种考虑,我们给出了位移坐标,从而层次坐标更多时候成了模型上的意义,而非应用上的意义。

位移坐标的运用非常广泛,例如报表中常常需要计算同期比、比上期之类的与时间相关的运算,而这些运算往往需要用到下一行的数据减上一行数据,后一列数据减前一列数据,等等,这种涉及到相邻n行或者n列的行间、列间的运算,称为位移运算,相关的表达式称为位移表达式

位移坐标是用来描述目标单元格和当前格之间的位置关系的表达式。

表达式规则:

说明:

1、  LkCellx的左主格,lk为单元格的偏移量,即当前格所属的Lk主格和目标格所属的Lk主格之间的偏移量,如果不指定lk,则表示为当前所在的左主格LkCellx为目标单元格,一般为LkLk-1,。。。。。。L1的附属单元格

2、  如果没有左主格,只有上主格的话,分号不能省略,即写成Cellx [Tk ±tk, Tk-1 ±tk-1,……T1 ±t1]

3、  如果没有上主格,只有左主格的话,分号可以省略,即写成Cellx [Lk±lk, Lk-1±lk-1,……L1±l1 ]

4、  Lk的次序是从远到近的,也就是从离当前格最远的主格开始的,也可以理解为从最高级别的主单元格开始

5、  完整的位移坐标表达式应该包括Cellx的所有主格,位移坐标与写在哪个单元格中紧密相关。

12.4.2-1

坐标缺省表示法

由于层次坐标和位移坐标的表示很烦琐,而大部分时候对于单元格的定位是和当前格的位置有关系的,一般是指当前格的主格或者和当前格有着相同主格的单元格,此时可以采用缺省的写法。

缺省情况下,如果目标单元格的某个主格Lk和当前单元格的主格相同,那么层次坐标(位移坐标)中该主格可以不写

如果目标单元格与当前格的关系满足3.4.3-1中的缺省引用规则,那么直接遵循该规则的引用表示法,不需要层次坐标(位移坐标)

 

12.4.3-1