其他函数 rank,seq,filetype,index,uuid,filesize,eval,filename,treelayer,let,nvl
1、RANK
RANK(number,ref,order):返回一个数在一个数组中的秩。(如果把这个数组排序,该数的秩即为它在数组中的序号。)
Number:所求秩的数。(可以是Boolean型,true=1,false=0)
Ref:可以是数组,引用,或一系列数,非实数的值被忽略处理(接受Boolean型,true=1,false=0)。
Order:指定求秩的参数,非零为升序,零为降序。
备注:RANK对重复的数返回相同的秩,但重复的数影响后面的数的秩,比如,在一组升序排列的整数中,如果5出现了2次,并且秩为3,那么6的秩为5(没有数的秩是4)。
示例:
A1:A5 = 6,4.5,4.5,2,4,RANK(A1,A1:A5,1)即6的秩为5;
RANK(3,1.2,"go",3,4,1) = 3,"go"被忽略。
2.seq
SEQ():返回数值,在整个报表执行过程中,返回该函数被第几次执行了。
示例:
SEQ()在第一次执行时,结果为1;
SEQ()在第二次执行时,结果为2;
注:seq()进行计算行序号的时候,其有上限值,即最大的序号值不大于2047。
3.filetype
FILETYPE(file):获取文件的类型。当file为单文件时,返回文件类型字符串,当file为多文件时,但会文件类型的字符串数组。如果file不为文件类型,则返回错误信息。
示例:
假设文件控件在B2单元格,而B2单元格依次上传了三个不同类型文件{A.doc,C.xls,B.txt},则FILETYPE(B2)返回值为["doc","xls","txt"]。
4.index
INDEX(key,val1,val2,...):返回key在val1,val2,...所组成的序列中的位置,不存在于序列中则返回参数的个数。
备注:key和valn可以是任意类型。
示例:
INDEX(2,2)等于1;
INDEX(2,1,2)等于2;
INDEX(2,4,5,6)等于4;
INDEX("b","b","o","y")等于1。
5.uuid
UUID():返回随机的UUID。
示例:
UUID()返回36位随机机器数;
UUID(32)返回32位随机机器数;
一个整数和中文占两位
6.EVAL
EVAL(exp):返回表达式exp计算后的结果。 exp:一个表达式形式字符串。
备注:只要EVAL中的参数exp最终可以转化成一表达式形式的字符串,比如"sum(2,4)","2+7"等等,那么它就可以被计算。
示例:
EVAL("2+5")等于7;
EVAL("count(2,3)")等于2;
EVAL("sum"+"(2,3,5)")等于10;
EVAL(IF(true, "sum", "count") + "(1,2,3,4)")等于10;
EVAL(IF(false, "sum", "count") + "(1,2,3,4)")等于4。
7.FILESIZE
FILESIZE(file)获取文件的大小,单位为Kb。当file为单文件时,返回文件大小,当file为多文件时,返回文件大小的数组。如果file不为文件类型,则返回错误信息。
示例:
假设文件控件在B2单元格,而B2单元格依次上传了两个大小分别为100字节和10240字节的文件,则FILESIZE(B2)返回值为[0.098,10.0]。
8.FILENAME
FILENAME(file):获取文件的文件名。当file为单文件时,返回文件名字符串;当file为多文件时,返回文件名的字符串数组;如果file不为文件类型,则返回错误信息。
示例:
假设文件控件在B2单元格,而B2单元格依次上传了三个不同类型文件{A.doc,C.xls,B.cpt},则FILENAME(B2)返回值为["A.doc","C.xls","B.cpt"]。
9.TREELAYER
TREELAYER(TreeObject,Int,Boolean,String):返回tree对象第n层的值,并且可以设置返回值类型及分隔符。
TreeObject:tree对象,如$tree;
Int:想要获得层级的数值,最上层为1,第二层为2,以此类推,若无则返回最底层;
Boolean:返回值类型为字符串还是数组,默认false,返回数组;为true时返回字符串;
String:当Boolean为true返回字符串时的分隔符,以双引号表示,默认为逗号",",如";"。
示例:
假设$tree勾选的值为中国-江苏-南京,中国-浙江-杭州,则TREELAYER($tree,true,"\',\'")返回"','''分割的所选中节点字符串"南京','杭州'";
TREELAYER($tree,2):以数组形式返回第二层["江苏",“浙江"]。
TREELAYER($tree,2,true,"\',\'")返回"','"分割的字符串江苏','浙江。
10.let
LET(变量名1,变量值1,变量名2,变量值2,..., 表达式):局部变量赋值函数,参数的个数N必须为奇数, 最后一个是表达式,前面是N-1(偶数)为局部变量赋值对。
变量名:必须是合法的变量名,以字母开头,可包括字母,数字和下划线。
表达式:根据其前面的N-1个参数赋值后,需计算的结果表达式,且这些变量赋值只在这个表达式内部有效。
如:LET(a, 5,b, 6, a+b)等于11
11.NVL
NVL(value1,value2,value3,...):在所有参数中返回第一个不是null的值value1:可以为任意数,也可以为null。
value2:可以为任意数,也可以为null。
当字符串长度为0时, 返回也为null
示例:
NVL(12,20)等于12。
NVL(null,12)等于12。
NVL(null,null)等于null。
NVL(20,null)等于20。
NVL(null,null,10)等于10。