排名
报表样例
分组后重新排名即组内排名,就是对每一组的元素进行排名。如下图中可以看出东北,华北等地区的排名是在各自所在组内排名,两者的排名是不连续的。
制作如下图所示的排名报表:
制作方法
第一步 定义数据集
报表中的数据来自产品中自带的数据表“DEMO_ORDERDETAILS“。
新建复杂SQL数据集“订单统计”,SQL语句为:select DEMO_ORDERS.货主地区,DEMO_ORDERS.货主城市,DEMO_ORDERS.货主名称,DEMO_ORDERDETAILS.单价,DEMO_ORDERDETAILS.数量 from DEMO_ORDERS,DEMO_ORDERDETAILS where DEMO_ORDERS.订单ID=DEMO_ORDERDETAILS.订单ID
第二步 制作表样并定义表达式
绘制报表基本结构并定义基本表达式。
取数表达式如下:
A2:=订单统计.Group(货主地区,false)
B2:=订单统计.Group(货主城市,false)
C2:=订单统计.Sum(单价*数量)
第三步 排名设置
1.订单总价排名
在E2单元格写入表达式:=count(C2[`0]{C2>$C2})+1,该表达式是统计所有订单总价大于当前单元格订单总价的城市个数,然后加1,从而实现对订单总价排名的效果。
函数说明: C2[`0]:表示C2扩展的所有值。 C2>$C2:表示条件过滤比当前C2单元格的值大的值。 count():表示计算C2纵向扩展的所有值比当前单元格的大的值的数目,最大的则为 0,依次为 1……n ,+1 后就是排名(从 1 开始)。
2.区内排名
在D2单元格写入表达式:=count(C2[A2]{C2>$C2})+1,该表达式是统计A2单元格扩展后,某一区域内的订单总价大于当前单元格订单总价的城市个数,然后加1,从而实现对订单总价多级排名的效果。
函数说明: C2[A2]:表示A2单元格扩展范围内的C2的值。 C2>$C2:表示条件过滤比当前C2单元格的值大的值。 count():表示计算C2纵向扩展的组内的比当前单元格的大的值的数目,最大的则为 0,依次为 1……n ,+1 后就是排名(从 1 开始)。
比较D2和E2单元格的表达式,可以看到它们的区别仅仅在于扩展格范围的不同,D2单元格计算的是A2单元格扩展范围内的排名,所以为区内排名;而E2单元格计算的是根格下的扩展区域内的排名,所以为总价排名。
第四步 设置显示格式和单元格格式
1)设置C2单元格的显示格式为¥#,##0.00。
2)设置C2单元格的水平对齐方式为“靠右”,并设置缩进为5。
第五步 保存预览
点击设计界面左上角的【预览】按钮对报表模板进行保存和查看。
预览页面: