同期比- 动态格间运算-报表设计高级教程
目录
本节目录收起
  • 一、报表实例
  • 二、设计过程
  • 三、小结 
  • 同期比

    一、报表实例

    先看这张报表

     

    该报表是根据年分组并按年、月进行排序。在这个报表中,“比上期”这个指标的运算逻辑是:本月订单总金额/上月订单总金额。我们来看一下快逸报表是如何实现的。

    二、设计过程

    1、引用数据集demo_订单信息表

    2、编辑报表


        (1)A2单元格表达式:=demo_订单信息表.group(year(订购日期),false)

    (2)B2单元格表达式:=demo_订单信息表.group(month(订购日期),false)

    (3)C2单元格表达式:=demo_订单信息表.sum(单价*数量) ,显示格式:¥#,##0.00,缩进:3

    在这个报表中,“比上期”这个指标的运算逻辑是:本月订单总金额/上月订单总金额。 从图中可以看出,D2格的表达式最关键的在于如何表示出前一个月的订单总金额,该报表是根据年分组并按年、月进行排序,因此我们想得到上一期的订单总金额,只要能得到扩展后C2单元格上一单元格的订单金额就可以了。这里用到了快逸报表非线性模型中的位移坐标,我们把D2格的表达式写成:= C2/C2[-1]。

        
    3、保存预览

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

    三、小结 

    1. 位移坐标

    许多时候,报表设计者并不知道目标单元格的具体位置,仅仅知道目标单元格相对于当前单元格的位移,因此,我们给出了位移坐标。
        位移坐标的运用非常广泛,例如报表中常常需要计算同期比、比上期之类的与时间相关的数据,而这些运算往往需要用到下一行的数据减上一行数据,后一列数据减前一列数据等等。这种涉及到相邻n行或者n列的行间、列间的运算,称为位移运算,相关的表达式称为位移表达式。
        位移坐标是用来描述目标单元格和当前格之间的位置关系的表达式。

    例如:

    语法:

    说明:

    例如:

    大部分时候,对于单元格的定位是和当前格的位置有关系的,比如当前格的主格或者和当前格有着相同主格的单元格,这时可以采用省略主格的写法。

    2. 省略主格表示法

    层次坐标和位移坐标的表示比较烦琐,而且大部分时候,对于单元格的定位是和当前格的位置有关系的,比如当前格的主格或者和当前格有着相同主格的单元格,这时可以采用省略主格的写法。
        省略主格时,如果目标单元格的某个主格Lk和当前单元格的主格相同,那么层次坐标/位移坐标中该主格可以不写。
        如果目标单元格与当前格的关系满足缺省主格认定规则,那么直接遵循缺省引用规则的表示法,不需要层次坐标/位移坐标。

    例如:

    3. 缺省引用规则

     缺省情况下,在单元格的表达式中可以引用其它单元格的值,直接写单元格名即可,这样的运算称为格间运算,这种引用称为缺省的引用规则。在这里,被引用的单元格必须是能够由当前格唯一确定的。
        一般情况下,被引用单元格往往是当前格的主格,或者与当前格有相同的一级主格,或者是固定格。固定格由于不能复制,因此可以唯一确定。

    例1:

    其中B2单元格的表达式为:=ds2.sum(stock, product_id==A2)

    从中可以看到,B2单元格引用了A2单元格,因为A2是B2的主格,因此B2可以引用A2。

    例2:

    从图中可以看出,C1单元格引用了B1单元格的值,这里,B1的一级主格是A1,C1的一级主格也是A1,因此B1和C1有相同的一级主格,所以C1可以引用B1。

    例3:

    从图中可以看出,B2单元格的表达式引用了A1和A2单元格,A1单元格是个固定格,既不可以主动扩展复制也不可以被动复制,因此B2可以引用A1;A2是B2的主格,因此B2可以引用A2。