排名
一、报表实例1
先看一张最简单的排名报表:
在快逸报表中,排序功能是如何实现的呢?
二、设计过程1
1、引用数据集demo_订单信息表
2、编辑报表
(1)A2单元格表达式为:=demo_订单信息表.group(货主城市,false)
(2)B2单元格表达式为:=demo_订单信息表.sum(单价*数量)
(3)C2单元格表达式为:=count(B2[`0]{B2>$B2})+1
该表达式是统计所有订单总价大于当前单元格订单总价的城市个数,然后加1,从而实现对订单总价排名的效果。
3、保存预览
此报表保存为“排名报表1”,预览结果如下:
通常我们在做这种报表的时候是先将订单总价做一个排序,然后再将订单总价编号,将编号做为排名。而快逸报表在这里引入了根坐标表示法,可以轻松实现排序功能。
三、报表实例2
下面我们把这个排名报表复杂化,看一下多级的排名如何实现,也就是下图所示的效果:
此报表保存为“排名报表2”,它在上一个报表的基础上增加了货主地区分组,统计排名时不光统计总的排名,还要统计每一地区内的排名,该如何做呢?
四、设计要点2
(1)E2单元格表达式:=count(C2[`0]{C2>$C2})+1
(2)D2单元格表达式:=count(C2[A2]{C2>$C2})+1
该表达式是统计A2单元格扩展后,某一区域内的订单总价大于当前单元格订单总价的城市个数,然后加1,从而实现对订单总价多级排名的效果。
比较D2和E2单元格的表达式,可以看到它们的区别仅仅在于扩展格范围的不同,D2单元格计算的是A2单元格扩展范围内的排名,所以为区内排名;而E2单元格计算的是根格下的扩展区域内的排名,所以为总价排名。
五、小结
1. 根格
报表左上角的灰色单元格称为报表首格,也称为根格。它用于存储描述整个报表的属性。如下图所示:
根格(报表首格)的书写规则为:`0 ,这里要强调的是 `0而不是‘0。
2. 根坐标表示法
报表中的扩展单元格是逐级扩展的,有主格、附属格的概念,呈树状的结构,而根格则是这棵树的根。如下图所示:
可以看出,单元格逐级扩展后实际形成了以根格(报表首格)为根的一棵树,报表中存在多片独立扩展,那么根上就长出多棵树,每一个可主动扩展的格子都是树上的一个节点,最末一级的不可扩展格则是节点上的叶子。而层次坐标相当于描述任意一个节点或者叶子到达根的路径。
由于根格是客观存在的,而树上的所有节点都是由根格发展而来,因此前面介绍的层次坐标忽略了根节点的描述,下面我们加上根坐标的描述,把层次坐标重新表示一下:
所以,完整的层次坐标是从根上开始的,而`0 则代表根坐标。