1、1一、常见公式举例 使用 IFTHENELSE句型:IF BBLX=“0“AND XBYS=“1“ THEN 2,1=1 ELSE2,1=10。该公式的含义为:如果报表类型(BBLX)为 0,并且新报因素(XBYS)为 1,那么,单元格2,1=1,否则2,1=10。 通配符(行通配和列通配)的使用:i. 行通配:对单元格m,n进行行通配,应写成*,n*,5=*,1-*,4,该公式的含义为:第 5栏的数据=第 1栏的数据-第 4栏的数据。ii. 列通配:对单元格m,n进行列通配,应写成m14=15+16,该公式的含义为:第 14行的数据=第 15行的数据第16行的数据。iii. *,3=ROUN
2、D(*,2/*,1*100,2)16,该公式的含义为:单元格1,2/单元格1,1100,计算出的值,保留 2位小数,假设结果为 A,那么,单元格1,3=A。iv. IF BBLX0 THEN EXIST(Z17)30,31,3845。该公式的含义为:如果报表类型不为 1,并且 Z7表的 30行或 31行或 38行或 39行或 45行大于 0,那么应填 Z17表。v. IF HYDM=“3“ AND INLIST(BBLX,“0“,“9“) THEN Z18*034,40。该公式的含义为:如果行业代码(HYDM)为 3,并且报表类型为 0或报表类型为 9,那么,Z18 表的 34行和 40行都应
3、大于 0。vi. IF Z1*,*0 THEN EXIST(Z10)6,7。该公式的含义为:如果 Z1表的 6行或 7行大于 0,那么应填 Z10表。 跨期公式:如要定义“本期累计=本期数+上期累计” ,应写1,2=1,1+1,2.-1。1,2.-1 表示上期累计。 跨关联任务的公式:i. Z315,1=Z182,21 浮动表的公式:i. 1=2,23,511,该公式的含义为:浮动行取合计数,第 1行第 2栏(或第 3、5、611 栏)第 2行第 2栏(或第 3、5、611 栏)的合计数,第 2行为浮动行。 改变单元格显示的颜色:IF 1,410 THEN SYS_FUI=“FontColor
4、=$00FFFF;BackColor=10;Cells=1,4“。该公式的含义为:如果单元格1,410,那么该数据以黄色表示,该单元格以红色填充。下图中,横坐标的值是 BackColor,取值从 1至 15,纵坐标的值是 BackStyle,取值1至 82二、系统公式在对公式进行定义时,肯定要用到各种运算符和函数,因此“公式生成器”窗口中设置了大量的操作符与函数,规则如下:(一)代码字段:用来表示此字段的中文含义。BBLX(报表类型) 、DWDM(单位代码) 、DWMC(单位名称) 、XBYS(新报因素)等。(二)单元描述:对于较为复杂的含义可用符号来表示。 表名单元格标识或编号;例 Z12,
5、1:表示 Z1表的第二行第一列;Z2A1表示:Z2表的 A1单元格; 关联任务的报表指标描述方式:表名单元标识或编号关联任务编号。例如:Z12,11表示关联任务 1中 Z1表2,1单元格。 “*”表示通配符:可代表任一行任一列。 代表区间;例16表示:只在 1到 6行或列中起作用。(三)关系运算符“=”相等、 “”大于、 “=”大于等于、 “0 表示查找单位名称里存在“久其”这两个字的单位。 INLIST():对于表达式中“或”选择的条件过多时,可用此函数减少录入量例:INLIST(HYDM,“01“,“02“,“1011“),表示挑选行业代码前两位为“01”或“02”或等于“1011”的单位
6、。 EXIST(表名):检查报表中是否已经填写数据 Round(表达式):对表达式数值取四舍五入值例:round(5.7)=6; round(-5.1)=-5。 MOD(表达式):返回两数相除的余数 MAX(表达式):求满足口径的单位数据中的最大值 MIN(表达式):求满足口径的单位数据中的最小值 Str(表达式):将数值转化为字符 POWER(,):返回数的乘幂结果 DATEVALUE(年-月-日):将文本格式的日期转换为日期型 DATE(,):返回特定日期值 YEAR():取日期值的年 MONTH():取日期值的月 DAY():取日期值的的日 FIRST():统计函数,取满足条件的第一个数
7、值 LAST():统计函数,取满足条件的最后一个数值 Getmeaning(字段编码,枚举字典名称):获得枚举字段编码的含义 Evaluate(唯一主代码,求值表达式):取指定单位的数据例:Evaluate(SYS_FJD, ZCZE) 取上级单位资产总额(ZCZE)4 UnitExist(唯一主代码):判断指定单位是否存在例:UnitExist(SJDM + “9“) 上级单位是否存在(SJDM + “9“是上级单位的代码) ChildrenCount(唯一主代码):求子节点单位数目 ChildLevel(唯一主代码),返回值:0 不是指定单位的下级, 1 指定单位的一级子单位,2 指定单位
8、的二级子单位:判断当前单位为指定单位的下级级次例:if (ChildLevel(1111111179) = 2) then 如果是集团 1111111179的二级单位 Stat(求值表达式, 统计条件, 统计方式),其中统计方式必须选SUM,COUNT,AVG,MIN,MAX,FIRST,LAST 之一:统计数据例:Stat(HS, ZZXS=“5“, Sum) 统计 ZZXS=“5“的单位 HS指标的合计数 ClassStat(分类指标, 求值表达式, 统计条件,统计方式 ),其中统计方式必须选 SUM,COUNT,AVG,MIN,MAX,FIRST,LAST 之一:分类统计数据例:Clas
9、sStat(HYDM, HS, ZZXS=“5“, Sum) 按 HYDM分类统计 ZZXS=“5“的单位HS指标的个行业内的合计数 TreeStat(求值表达式, 统计条件,统计方式, 唯一主代码,子节点统计级次),其中子节点统计级次,0: 所有下级, 1,2.一级子节点,二级子节点:统计子节点数据例:TreeStat(HS, ZZXS=“5“, Sum, Sys_ZDM, 2) 统计一级、二级单位中ZZXS=“5“的单位的 HS指标合计数 ISLEAF(数据项值,目录) ,返回 Bool类型例:ISLEAF(XZBM,SZDQ) 表示:如果XZBM是最详细的编码则返回 True,否则返回False CharRange(数据项值,起始的值,结束的值):判断数据项的值是不是在一定的范围内例:CharRange(DHHM,”0”,”9”) 表示:电话号码的值必须在 0到 9的范围内