1. 概述编辑
1.1 应用场景
有时表格中数据过多,但只希望展示最新时间数据。
例如,展示不同区域不同店铺不同分类的最新销售数据,如下图所示:
1.2 实现思路
方案一:在数据集中编写 SQL 语句,将数据先按区域、店铺名称、分类进行重新分组,再按时间对数据进行降序排列,最后取出最新的销售数据。
方案二:使用层次坐标将数据按照不同区域、店铺名称、分类、时间重新进行排序编号,然后设置条件属性,将序号不等于 1 的行高设置为 0 。
2. 方案一:SQL语句实现编辑
2.1 新建模板
新建一张普通报表,如下图所示;
2.2 准备数据
新建数据库查询 ds1,输入 SQL 语句:
select * from (select ROW_NUMBER()over(partition by 区域,店铺名称,分类 order by 销售时间 desc) rowId,* from 销售明细表 ) as AuctionRecords where rowId=1
表示将数据先按区域、店铺名、分类进行重新分组,再按时间对数据进行降序排列,最后取最新的销售数据(rowId=1),步骤如下图所示:
2.3 设计报表
A1~E1 单元格输入文本,A2~E2 单元格拖入相应的数据列,如下图所示:
2.4 效果预览
1) PC端
保存模板,点击「分页预览」,效果如下图所示:
2)移动端
同时支持 App 及 HTML5 端预览,效果如下图所示:
3. 示例二:层次坐标实现编辑
3.1 新建模板
新建一张普通报表,如下图所示:
3.2 准备数据
新建数据库查询 ds1,输入 SQL 查询语句为:select * from 销售明细表,如下图所示:
3.3 设计报表
A1~E1 单元格输入文本,A2~E2 单元格拖入相应的数据列,如下图所示:
3.4 插入层次坐标公式
1)F2 单元格中插入公式:COUNT(D2[!0]{A2 = $A2 && B2 = $B2 && C2 = $C2 && D2 > $D2}) + 1,如下图所示:
2)公式说明如下表所示:
公式 | 说明 |
---|---|
A2 = $A2 && B2 = $B2 && C2 = $C2 | 条件表达式的一部分,将计算限定在每个分组内 |
D2 > $D2 | 条件表达式的一部分,表示条件过滤比当前 D2 单元格数据大的数据 |
D2[!0]{A2 = $A2 && B2 = $B2 && C2 = $C2 && D2 > $D2} | 返回 D2 单元格扩展出来的满足条件表达式 {A2 = $A2 && B2 = $B2 && C2 = $C2 && D2 > $D2} 的数据 |
COUNT(D2[!0]{A2 = $A2 && B2 = $B2 && C2 = $C2 && D2 > $D2}) | 返回 D2 单元格扩展出来的满足条件表达式 {A2 = $A2 && B2 = $B2 && C2 = $C2 && D2 > $D2} 的数据个数 |
COUNT(D2[!0]{A2 = $A2 && B2 = $B2 && C2 = $C2 && D2 > $D2})+1 | 返回 D2 单元格扩展出来的满足条件表达式 {A2 = $A2 && B2 = $B2 && C2 = $C2 && D2 > $D2} 的数据个数与数字 1 之和 |
3.5 设置条件属性
为 F2 单元格设置条件属性,添加行高属性 0 毫米,普通条件:不等于整型 1 ,如下图所示:
3.6 隐藏列
隐藏不需要的 F 列,如下图所示:
3.7 效果预览
1) PC端
保存模板,点击「分页预览」,效果如下图所示:
2)移动端
同时支持 App 及 HTML5 端预览,效果如下图所示:
4. 模板下载编辑
点击下载方案一已完成模板:方案一SQL语句实现.cpt
点击下载方案二已完成模板:方案二层次坐标实现.cpt