序号的实现方法
本文中使用的报表可在产品论坛帖中下载:
https://vip.kingdee.com/article/164338?channel_level=kdclub (扩展报表样例)。
一、列表序号
列表型报表一般会使用函数SELECT(…),把记录一条条的列出来,因而列表序号跟行号或列号基本一致。
例如以下报表:
单元格B2写公式列出员工姓名:=SELECT(DEMO_员工, 姓名)
单元格A2显示员工序号:=ROW() – 1 ,注意将其纵向父格设置为B2,即A2单元格时跟随其父格B2扩展的。
预览报表:
函数说明:ROW
功能: 取得单元格所在行的行号。
语法: ROW([cellExp])
参数: cellExp 单元格表达式,缺省为当前单元格。
返回值:正整数。
示例: 在第三行单元格中写入ROW(),返回值为3,如果第三行存在纵向扩展格,则行号依次改变。
二、分组序号
分组型报表一般会使用函数GROUP(…),按某个或某几个字段分组,并为每个分组提供汇总计算。
例如以下报表:
单元格B2写公式列出员工姓名:=GROUP(DEMO_地区销售额, 产品, False)
单元格A2显示员工序号:=EXINDEX(B2) ,注意将其纵向父格设置为B2,即A2单元格时跟随其父格B2扩展的。
预览报表:
函数说明:EXINDEX
功能: 层次坐标的逆运算,获得当前单元格所属的某父格在所有扩展出来的格子中排第几。
语法: EXINDEX([fatherCell [,forefatherCell]])
参数: fatherCell 当前单元格的某父格名称,如果缺省则代表直系父格(纵横方向由当前单元格确定);
forefatherCell 当前单元格的某祖先格名称,如果缺省则代表fatherCell的直系父格。此参数不为空时会递归计算,运算效率较差。
示例:
假设D1是当前格,A1是B1的父格,B1是C1的父格,C1是D1的父格。
EXINDEX() 表示计算C1在所有B1扩展出来的“C1”中的顺序号;效果等同于EXINDEX(C1)、EXINDEX(,B1)和EXINDEX(C1,B1),但效率最高。
EXINDEX(,A1) 表示计算C1在所有A1扩展出来的“C1”中的顺序号,等于在当前B1中的C1顺序号加之前B1中的所有C1数;用于计算大分组内的序号。
EXINDEX(,V0()) 表示计算C1在所有“C1”中的顺序号。
三、组内序号
组内序号指分组内记录的序号,例如以下报表:
预览结果:
四、跨分组序号
跨分组序号顾名思义,既不是分组序号,也非分组内序号,而是跨越多个分组的序号。
例如以下报表:
单元格F2写公式:=GROUP(合同档案, 案卷号, False);
单元格A5写公式按照资料大类分组:=GROUP(合同档案, 资料大类, False, , 大类编码),其父格设为F2;
单元格D2列出分组内的资料名称:=SELECT(合同档案, 资料名称, False, , 起始页);
单元格B5写公式:=-ROW(),其父格设为D5;
单元格C5写公式:=RANK(B5, EXS(B5, A(F2)));
预览报表:
序号的实现方法
本文2024-09-22 18:11:34发表“eas cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-eas-99210.html