如何利用报表工具实现排名分析
排名分析是常见的分析方法,主要是通过排名让使用者了解当前业务维度下数据记录的次序,多用于业绩考核和对比分析。虽然排名的需求看着很简单,但实际操作时会发现有常常并不容易实现,这是因为排名的花样实在不少。今天我就来带大家玩转排名,开外挂分分钟搞定需求下班去浪!
一般来讲,常见的排名方式有以下几类:单级排名、去重排名、横向排名、多级排名等。下面就详细说明各种排名是如何被外挂软件——润乾报表——轻松搞定的。
一、单级排名
单级排名也称为组间排名,即对一个字段的数值进行排名,例如,对各个城市的订单总价进行排名,效果图如下:
具体实现操作如下:
其中,
A2:=ds1.group(货主城市, 货主城市:1) 按照城市进行分组进行数据计算
B2:=ds1.sum(单价 * 数量) 计算每个城市的额销售额
C2:=count(B2[`0]{B2>$B2})+1 根据订单总价进行城市排名分析,也就是统计订单总价比当前单元格订单总价大的城市个数,第一名这个个数是 0,所以需要加 1
这样就实现了单级排名分析,是不是 so easy?
不出所料,有同学举手说第 4 名重复(广州和石家庄)了,那么如果需要实现去重排名,应该怎么做呢?
二、去重排名
去重排名顾名思义,就是排名中没有重复的名次,如果出现相同的名次,后面的名次加 1。
很简单,我们只需要增加一列协助列处理就可以,如下图所示:
增加协助处理列:
C2 表达式:=row() 取得当前单元格所在行的行号
E2 表达式:=D2+count(B2[`0]{D2==$D2&&C2<$C2}) 取得不重复名次
其中,count(B2[`0]{D2==$D2&&C2<$C2}) 表示统计 B2 单元格中满足下面条件的个数:对应行的 D2 单元格值相同且行号小于当前行。在此基础上加上原来的名次就实现了不重复名次的计算。
最后把不需要的 C 列和 D 列设置隐藏,最终效果如下图所示:
上面都是纵向扩展排名,如果是横向扩展的数据,如何实现横向排名呢?
三、横向排名
横向和纵向是根据数据扩展的方向来区分的,顾名思义,横向排名是对横向扩展数据的排名例如,对各个城市的订单总价进行排名,配置方法如下:
我们只需要在排名单元格 A3 表达式中增加一个英文分号就可以,表示横向扩展取数计算,即:=count(A2[;`0]{A2>$A2})+1
结果如下:
上面我们已经将简单排名需求的制作方法做了详细说明,下面我来考大家一下,如果我在上一个报表的基础上增加了货主地区分组,统计排名时不光统计总的排名,还要统计每一地区内的排名,该如何做呢?这就是我们接下来要说的多级排名。
四、多级排名
多级排名也称为组内排名,对应单级排名的“组间排名”,即在某个分组内各个数据的排名,不同分组之间的排名互不影响,如下图所示,我们除了统计各城市的总排名外,还需要统计这个城市在所属地区下的排名:
聪明的你是不是很快就做出来了?我们再来看下具体配置:
其中,
A2:=ds1.group(货主地区:1, 货主地区!=null) 按照货主地区分组取数
B2:=ds1.group(货主城市; 货主城市:1) 按照货主城市分组取数
C2:=ds1.sum(单价 * 数量) 计算订单总价
D2:=count(C2[A2]{C2>$C2})+1 计算同一地区下的订单总价排名
E2:=count(C2[`0]{C2>$C2})+1 计算所有地区下的订单总价排名
count(C2[A2]{C2>$C2})+1 为统计 A2 单元格扩展后某一区域内的订单总价大于当前单元格订单总价的城市个数,然后加一,从而实现对订单总价多级排名的效果。
回顾
好了,至此,常见排名需求效果已经介绍完毕,我们来回顾一下其中遇到的问题和解决的技巧:
单元格定位:
【技巧】:前面我们在很多地方都用了类似“count(C2[`0]{C2>$C2})”的表达式,在润乾报表中,这个表达式有一个正式的名称:层次坐标表示法:cellx[`0, Lk:lk]。通过层次坐标表示法,我们就可以定位特定的单元格了,其中,`0 代表了根坐标。