轻松搞定分组报表中的各种排序

简介: 排序

在做分组报表统计时,我们经常会被要求按照数据升序或降序排序。在 group 函数的参数中,我们可以指定分组后对组的排序表达式,这样报表展现时能够直接根据该表达式进行排序了。我们先来看一个简单的例子,如下图所示:
1

其中,A1 表达式为:=ds1.group(货主地区, 货主地区!=null; 货主地区;ds1.sum( 数量 * 单价))
意思是:在根数据集 ds1 中取出货主地区不为空的数据,并按照货主地区进行分组,分组后求出每组的总价 sum(数量 * 单价),然后按照这个汇总值对组进行升序排列。
分组排序后的效果如下图所示:
2

但是有些时候,某些单元格的数据可能是通过其他单元格计算后的结果,这样就无法通过 group 函数的参数来指定了,例如下图这样:
3

报表 D2 单元格的数据是根据前两个单元格相减计算后的结果,这时就无法通过 group 函数来完成排序控制操作了,那么有什么方法能够实现依据这样计算出来的单元格结果进行排序呢?
(苦思冥想中····)额,我可以做一个排名,但是排序要怎么做呢?
Bingo··答对了一半,就是需要先排名哦。
下面由我给大家详细讲解一下实现流程:
1)首先按照上图中展现的报表格式,在 A 列左边和下边分别插入行、列,并且给报表追加一列。形成如下如所示的样式:
4

2)然后在 A3 中写表达式 =to(1,count(B2{}))。

3)在 F2 单元格中按照 E2 单元格的数据计算排名, 写入表达 =count(E2[`0]{E2<$E2})+1。如下图所示: 

5

A3 中的表达式是为了控制该行进行纵向扩展,有几个地区就扩展几行,这样报表在展现时就会在下方增加一片数据区域,并且第一列是 1、2、3 这种编号形式。而 F2 单元格则是根据实际金额做了对应的排名,出来的值也是 1、2、3 的形式。这样,就可以根据排名对数据进行选择了。
4)在 B3 单元格中写入表达式:=B2{F2==$A3}。
这个表达式的意思是:从 B2 单元格中取数,但是取数时加上了限定条件:F2(排名)单元格的值等于这一行的 A3(序号)单元格的值,也就是从 B2 单元格中按照排名顺序取出对应的地区放在 B3 单元格中。预览的效果如下图所示:
6

其余 C3、D3、E3 几个单元格的情况类似:
7

然后再将没用的行列隐藏掉,就能够实现我们的的需求了,即按照单元格表达式的计算结果进行排序展现,结果如下:
8

【总结一下:】
在上面的示例中,表达式:=B2{F2==$A3} 是【层次坐标】的用法。主要是在进行报表设计时,单元格尚未进行扩展,但是其它某些单元格的表达式往往需要对这个单元格扩展后的单元格进行精确定位并运算。
【层次坐标】的具体使用方法可以看一下我们的教程里面的 12.3.2 章节。
好啦,<( ̄▽ ̄)/> 按照上面操作步骤,根据计算后的结果排序就完成啦。小伙伴们是否学会了呢?赶紧下载我们的润乾报表设计器操练起来吧!

作者:Spoiled
链接:http://c.raqsoft.com.cn/article/1533716965785?r=IBelieve
来源:乾学院
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

目录
相关文章
|
SQL 数据库管理 索引
SQL基础——聚合与排序(下)
SQL基础——聚合与排序(下)
168 0
|
SQL
SQL基础——聚合与排序(上)
SQL基础——聚合与排序(上)
74 0
|
SQL 移动开发 BI
【SQL开发实战技巧】系列(二十三):数仓报表场景☞ 如何对数据排列组合去重以及通过如何找到包含最大值和最小值的记录这个问题再次用执行计划给你证明分析函数性能不一定高
怎样对数据组合重新排列并去重的问题、通过如何找到包含最大值和最小值的记录这个问题再次用执行计划给你证明分析函数性能不一定高【SQL开发实战技巧】这一系列博主当作复习旧知识来进行写作,毕竟SQL开发在数据分析场景非常重要且基础,面试也会经常问SQL开发和调优经验,相信当我写完这一系列文章,也能再有所收获,未来面对SQL面试也能游刃有余~。本篇文章主要介绍的两个方面,第一个方面曾经有好几个网友和同事问我,第二个问题真的是很多同行的通病,认为分析函数是万金油,一股脑用。
【SQL开发实战技巧】系列(二十三):数仓报表场景☞ 如何对数据排列组合去重以及通过如何找到包含最大值和最小值的记录这个问题再次用执行计划给你证明分析函数性能不一定高
|
数据挖掘
白话Elasticsearch43-深入聚合数据分析之案例实战__排序:按每种颜色的平均销售额升序排序
白话Elasticsearch43-深入聚合数据分析之案例实战__排序:按每种颜色的平均销售额升序排序
85 0
【Axure教程】中继器表格集合(增删改查筛选移动排序等效果)
【Axure教程】中继器表格集合(增删改查筛选移动排序等效果)
【Axure教程】中继器表格集合(增删改查筛选移动排序等效果)
|
Python
LeetCode 1282. 用户分组
有 n 位用户参加活动,他们的 ID 从 0 到 n - 1,每位用户都 恰好 属于某一用户组。给你一个长度为 n 的数组 groupSizes,其中包含每位用户所处的用户组的大小,请你返回用户分组情况(存在的用户组以及每个组中用户的 ID)。
80 0
|
存储 数据挖掘 BI
【python数据分析】数据的分组,遍历,统计
数据的分组,遍历,统计 俗话说:“人与类聚,物以群分”,到这里我们将学习数据的分组以及分组后统计。Pandas的分组相对于Excel会更加简单和灵活。
【python数据分析】数据的分组,遍历,统计
利用VeryReport快速完成分组报表设计
分组报表,最常用的功能是组内数据进行汇总,比如「小计」、「合计」。 数量汇总,是借助「SUM」函数来完成的。
|
SQL 索引
基于ES之业务数据分组求和TopN开发
需求:把作家所有作品的总点击数加起来求和再进行排序的一个实现
基于ES之业务数据分组求和TopN开发
|
分布式计算 Hadoop 开发者
分组排序案例分析| 学习笔记
快速学习分组排序案例分析
129 0
分组排序案例分析| 学习笔记