# 报表样例 分组后重新排名即组内排名,就是对每一组的元素进行排名。如下图中可以看出东北,华北等地区的排名是在各自所在组内排名,两者的排名是不连续的。 制作如下图所示的排名报表: ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_eb58b06b18dbd98616547fa1ead06402_r.png) # 制作方法 ## 第一步 定义数据集 报表中的数据来自产品中自带的数据表“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 ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_79c2506a6c32f32871ddf88f4fd31a8c_r.png) ## 第二步 制作表样并定义表达式 绘制报表基本结构并定义基本表达式。 ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_4aa0d9c17eef956b7f3a0784335836f4_r.png) 取数表达式如下: 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。 ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_c5dd8806946fbbd4ae6d1fdf23ac9db8_r.png) 2)设置C2单元格的水平对齐方式为“靠右”,并设置缩进为5。 ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_f9c573d9f6c27bec559f596ddf430025_r.png) ## 第五步 保存预览 点击设计界面左上角的【预览】按钮对报表模板进行保存和查看。 预览页面: ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_d95df0f642ac7dcfe32d08b47e108777_r.png)