久其系统通用公式(5页).doc
-久其系统通用公式-第 5 页一、常见公式举例Ø 使用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=ROUND(*,2/*,1*100,2)16,该公式的含义为:单元格1,2/单元格1,1100,计算出的值,保留2位小数,假设结果为A,那么,单元格1,3=A。iv. IF BBLX<>"1" AND Z7*>0 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行都应大于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,4>10 THEN SYS_FUI="FontColor=$00FFFF;BackColor=10;Cells=1,4"。该公式的含义为:如果单元格1,4>10,那么该数据以黄色表示,该单元格以红色填充。下图中,横坐标的值是BackColor,取值从1至15,纵坐标的值是BackStyle,取值1至8二、系统公式在对公式进行定义时,肯定要用到各种运算符和函数,因此“公式生成器”窗口中设置了大量的操作符与函数,规则如下:(一)代码字段:用来表示此字段的中文含义。BBLX(报表类型)、DWDM(单位代码)、DWMC(单位名称)、XBYS(新报因素)等。(二)单元描述:对于较为复杂的含义可用符号来表示。· 表名单元格标识或编号;例Z12,1:表示Z1表的第二行第一列;Z2A1表示:Z2表的A1单元格; · 关联任务的报表指标描述方式:表名单元标识或编号关联任务编号。例如:Z12,11表示关联任务1中Z1表2,1单元格。· “*”表示通配符:可代表任一行任一列。· 代表区间;例16表示:只在1到6行或列中起作用。(三)关系运算符“=”相等、“<>”不相等、“>”大于、“<”小于、“>=”大于等于、“<=”小于等于。“&”表示连加符:将两行或两列之间的行或列连加。例1=2&5表示:1=2+3+4+5。(四)数值运算符:“+”加、“-”减、“*”乘、“/”除、“&”连加。(五)字符串关系表达式· L$(字段名,m):表示取该字段中编码的左边m个字符。· R$(字段名,m):表示取该字段中编码的右边m个字符。· M$(字段名,i,m):表示取该字段中编码的从第i位开始的m个字符。· $字段名:表示取该字段的枚举含义。例如:字段DWMC表示单位名称,字段XBYS表示新报因素,那么M$(DWMC,5,4)表示取“单位名称”代码中第五位开始的4个字符;XBYS$="新成立"表示取“新报因素”字段的含义等于“新成立”。(六)逻辑表达式用逻辑运算符AND(与)、OR(或)、NOT(反)连接的表达式,组成一个逻辑表达式,操作如下:· AND:表示“同时成立”,用AND连接所形成的逻辑表达式,只有当AND两端的表达式都成立,该AND逻辑表达式才能“成立”。· OR:表示“二者取一”,即只要OR两端的表达式中有一个成立,该OR逻辑表达式就成立。· NOT:表示取“反”,取逻辑表达式的反相值。(七)条件表达式· IF:如果;THEN:那么;ELSE:否则;例:IF BBLX="0"AND XBYS="1" THEN 2,1=1 ELSE2,1=10 表示:如果报表类型等于“0”且新报因素为“1”时,单元格2,1=1,否则2,1=10。(八)常用函数使用函数时,可首先将表达式选中(使其以蓝色高亮显示),再双击使用的函数即可获得函数表达式。· INT(表达式或数值):求该表达式所得数值数值本身的整数部分例:A1=INT(D4+E5)表示:A1单元格等于D4加E5所得数之和的整数部分。· ABS(表达式或数值):求所得数的绝对值例:ABS(D5),如果D5=-7,则ABS(D5)=7。· VAL(代码字段):将代码字段的内容转换为数值例:VAL(XBYS):如果在此封面代码中新报因素为“1”,VAL(XBYS)=1。· IDC(长度为8的字符串):取校验位函数,国家技术监督局下发的企事业单位、社会团体的单位标识码统一为9位,其中最后一位为校验码,使用IDC函数可根据前8位数字运算得到校验码· POS(字符串,字符串):取第一个字符串在第二个字符串中的位置例:POS("久其",DWMC)>0 表示查找单位名称里存在“久其”这两个字的单位。· INLIST():对于表达式中“或”选择的条件过多时,可用此函数减少录入量例:INLIST(HYDM,"01","02","1011"),表示挑选行业代码前两位为“01”或“02”或等于“1011”的单位。· EXIST(表名):检查报表中是否已经填写数据· Round(表达式):对表达式数值取四舍五入值例:round(5.7)=6; round(-5.1)=-5。· MOD(表达式):返回两数相除的余数· MAX(表达式):求满足口径的单位数据中的最大值· MIN(表达式):求满足口径的单位数据中的最小值· Str(表达式):将数值转化为字符· POWER(,):返回数的乘幂结果· DATEVALUE(年-月-日):将文本格式的日期转换为日期型· DATE(,):返回特定日期值· YEAR():取日期值的年· MONTH():取日期值的月· DAY():取日期值的的日· FIRST():统计函数,取满足条件的第一个数值· LAST():统计函数,取满足条件的最后一个数值· Getmeaning(字段编码,枚举字典名称):获得枚举字段编码的含义· Evaluate(唯一主代码,求值表达式):取指定单位的数据例:Evaluate(SYS_FJD, 'ZCZE') 取上级单位资产总额(ZCZE)· UnitExist(唯一主代码):判断指定单位是否存在例:UnitExist(SJDM + "9") 上级单位是否存在(SJDM + "9"是上级单位的代码)· ChildrenCount(唯一主代码):求子节点单位数目· ChildLevel(唯一主代码),返回值:0 不是指定单位的下级, 1 指定单位的一级子单位,2 指定单位的二级子单位:判断当前单位为指定单位的下级级次例: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之一:分类统计数据例:ClassStat('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的范围内