Chinaunix首页 | 论坛 | 博客
  • 博客访问: 97452
  • 博文数量: 56
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 340
  • 用 户 组: 普通用户
  • 注册时间: 2018-09-19 14:48
个人简介

下雨了,不想打伞

文章分类
文章存档

2019年(12)

2018年(44)

我的朋友

分类: 敏捷开发

2018-12-10 17:32:59

【摘要】
排名分析是常见的一种数据分析方式,比如成绩排名、销售额排名等都是常见的业务场景,那么如何实现不同地区内部的排名效果呢?
看这里的实现方式


“一眨眼又到年中了,各种业绩考核结果即将出炉。这不头儿明天要对于各个地区的订单情况做个排名分析,吩咐我下班前吧材料准备好,可是离下班就剩下五分钟了!好巧不巧仰慕已久的女神又突然约饭!怎么办?怎么办?!”

嗯 ~ 是时候展现真正的技术了。

【技术装备】:润乾报表

【核心技术】:坐标定位单元格

我们都知道排名分析是常见的分析方法,主要是通过排名让使用者了解当前业务维度下数据记录的次序,多用于业绩考核和对比分析。排名分析中除了之前讲到的总(组间)排名,还涉及到组内排名,这就是今天要放的大招。

组内排名就是在分组内对数据进行独立排名,不同分组之间的排名互不影响。如下图所示,我们除了统计各城市的总排名外,还需要统计这个城市在所属地区下的排名情况:

话不多说,开干!总排名按照我们之前讲解的内容很容易就能做出来:

那地区内各个城市的排名如何计算呢?

如果我们能获取到各个地区下的订单总价,然后对这些数据进行排名就很简单了,在润乾报表中,这确实就是一件很简单的事情,答案是用坐标来获取:通过 C2[A2],就可以获取 A2(地区) 下的 C2(订单总价) 数据了。说到这里,想必你应该都已经制作出来了吧,鼓掌 ~

报表设计如下图所示:

其中,

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 单元格扩展后某一地区内的订单总价大于当前单元格订单总价的城市个数,然后加一,从而实现对订单总价进行组内排名的效果。

一个表达式就实现了组内排名分析,是不是 so easy?

好了,至此,组内排名需求效果已完美实现,我们来回顾一下其中遇到的问题和解决的技巧:

【问题】单元格定位:

【技巧】:前面我们在很多地方都用了类似“count(C2[A2]{C2>$C2})”的表达式,在润乾报表中,这个表达式有一个正式的名称:层次坐标表示法:cellx[`0, Lk:lk]。通过层次坐标表示法,我们就可以定位特定的单元格了。


阅读(744) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~