最新历史版本
:分组排序仅显示排序为1的数据 返回文档
编辑时间:
内容长度:图片数:目录数:
修改原因:
1. 概述编辑
1.1 预期效果
在制作模板时,经常遇到数据表中有不同地区、不同产品、不同时间的销售数据,但进行展示时仅需要展示不同地区、不同产品的最新销售数据,如下图所示:
1.2 实现思路
思路一:在数据集中编写SQL语句,将数据先按区域、店铺名、分类进行重新分组,再按时间对数据进行重新排序,取出最新的数据即可。
思路二:在报表中使用层次坐标将数据按照不同区域、店铺名、分类、时间重新进行排序编号,然后设置条件属性,将序号不等于1的行高为0。
2. 示例一编辑
2.1 数据准备
新建数据集 ds1,数据库查询语句为:
select * from (select ROW_NUMBER()over(partition by 区域,店铺名称,分类 order by 销售时间 desc) rowId,* from 销售明细表 ) as AuctionRecords where rowId=1
SQL语句的含义为:将数据先按区域、店铺名、分类进行重新分组,再按时间对数据进行重新排序,并取编号为1的数据。
2.2 设计报表
设计表格样式如下图所示:
2.3 效果预览
2.3.1 PC端
如 1.1 节所示。
2.3.2 移动端
3. 示例二编辑
3.1 数据准备
新建数据集 ds1,数据库查询语句为:select * from 销售明细表
3.2 设计报表
设计表格样式如下图所示:
3.3 添加公式
在 F2 单元格中插入公式:COUNT(D2[!0]{A2 = $A2 && B2 = $B2 && C2 = $C2 && D2 > $D2}) + 1,如下图所示:
公式拆解 | 说明 |
---|---|
COUNT( ) | 统计括号里面所有数据的个数 |
D2[!0]{ } | 输出满足大括号里面条件的所有数据 |
A2 = $A2 B2 = $B2 C2 = $C2 | 条件表达式一部分,将计算限定在每个分组内,即每种能源各自统计自己的 |
D2 > $D2 | 条件表达式一部分,表示条件过滤比当前 D2 单元格的值大的值 |
3.4 设置条件属性
选择 F2 单元格,添加条件属性,设置 F2 单元格内值不等于1的行高为0,并隐藏 F 列,如下图所示:
3.5 效果预览
与 2.3 节相同。