帆軟高階函式應用之其他函式

2021-08-25 17:33:23 字數 2955 閱讀 8020

其他函式 rank,seq,filetype,index,uuid,filesize,eval,filename,treelayer,let,nvl

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單元格依次上傳了三個不同型別檔案,則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單元格依次上傳了三個不同型別檔案,則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。

帆軟常用函式

返回當月的第一天這個日期,即若當前日期為2019 1 29那麼下面的公式返回2019 1 1 dateinmonth today 1 返回當月的最後一天這個日期,即若當前日期為2019 1 29那麼下面的公式返回2019 1 31 dateinmonth today 1 返回上月的這一天,比如當前日...

帆軟取年月常用函式

技術1 取當月,前一月,前兩月函式 函式 if month today 2 0,month today 2 month edate 2 12 月 補充 單元格取上個月方法 函式 monthdelta today 1 在單元格屬性 樣式 文字 格式 選yyyymm 即可 補充 oracle 取前三個月...

帆軟日期格式轉換 帆軟中常用的日期函式

1.轉化日期 通過date year,month,day 進行日期轉換 在單元格中輸入公式 date 2020,1,10 返回2020 01 10 2.獲取當前日期 today 在單元格輸入,可以獲取當前系統日期如2020 01 10 3.當前時間 時分秒 now 獲取當前系統時間 單元格輸入 no...