1. 概述
1.1 应用场景
直接使用seq( )的方法,分页预览会使序号承接上一页的序号继续递增。
例如,第一页显示了 50 行,第二页序号直接从 51 开始。如下图所示:
希望分页预览表格时,每一页的序号计数重新从 1 开始计算。如下图所示:
1.2 实现思路
1)原有序号虽然是递增的,但是每一行数据都是唯一的。
2)在原有序号的基础,判断当前序号在本页内的位置,每页即可重新得到从 1 开始的序号。
2. 示例
示例数据:订单明细.xlsx
2.1 创建分析表
下载并上传示例数据,将数据添加至项目中,如下图所示:
2.2 新增复杂表格
点击添加按钮,选择「复杂表格」,如下图所示:
2.3 设计复杂表格
1)C1~H1 单元格输入文本,C2~H2 单元格拖入对应的字段,如下图所示:
2)C1 单元格数据设置为「列表」,如下图所示:
2.4 插入层次坐标公式
1)A2 单元格插入公式:seq(),并将 A2 单元格的左父格自定义为 C2 单元格。如下图所示:
2)B1 单元格输入文本,B2 单元格插入公式:if(COUNT({A2})=1,1,inarray(A2,{A2}))。如下图所示:
注:当一页只有一行时,{A2} 获取到的是一个值,不会当成数组来处理,而 inarray 第二个参数必须是数组,所以需要 if 条件判断。
3)公式说明如下表所示:
公式 | 说明 |
---|---|
{A2} | 当前页中 A2 单元格扩展出来的所有值 |
COUNT({A2}) | 当前页中 A2 单元格扩展出来的所有值的个数 |
inarray(A2,{A2}) | 返回当前 A2 单元格的值在当前页中 A2 单元格扩展出来的所有值的数组中的位置 |
if(COUNT({A2})=1,1,inarray(A2,{A2})) | 如果当前页中 A2 单元格只扩展出一个值,返回1;否则返回当前 A2 单元格的值在当前页中 A2 单元格扩展出来的所有值的数组中的位置 |
4)B2 单元格的左父格自定义为 C2 单元格,如下图所示:
5)隐藏 A 列。如下图所示:
2.5 设置重复标题行
设置第一行重复标题行。如下图所示:
2.6 设置分页
设置分页,勾选「固定行数分页」,每页行数为 50 ,分页单元格为 C2 ,如下图所示:
2.7 效果预览
预览表格,效果如下图所示: