历史版本4 :文本函数概述 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1、版本编辑

          FineBI版本                  jar包版本          
  5.1  2019.1.7

2、TRIM编辑

TRIM(text):清除文本中所有空格,单词间的单个空格除外,也可用于带有不规则空格的文本。
Text:需要清除空格的文本。
示例:
TRIM(" Monthly Report")等于Monthly Report。

3、FORMAT编辑

FORMAT(object,format) : 返回object的format格式。
object:需要被格式化对象,可以是String,数字,Object(常用的有Date, Time)。format:格式化的样式。
示例:
FORMAT(1234.5, "#,##0.00") => 1234.50
FORMAT(1234.5, "#,##0") => 1234
FORMAT(1234.5, "¥#,##0.00") => ¥1234.50
FORMAT(1.5, "0%") => 150%
FORMAT(1.5, "0.000%") => 150.000%
FORMAT(6789, "##0.0E0") => 6.789E3
FORMAT(6789, "0.00E00") => 6.79E03
FORMAT(date(2007,1,1), "EEEEE, MMMMM dd, yyyy") => 星期一,一月 01,2007
FORMAT(date(2007,1,13), "MM/dd/yyyy") => 01/13/2007
FORMAT(date(2007,1,13), "M-d-yy") => 1-13-07
FORMAT(time(16,23,56), "h:mm:ss a") => 4:23:56 下午
注:format对日期的操作,日期的大小写必须按照年份小写yy或yyyy,月份大写M或MM,日期小写d或dd。

4、ENDWITH编辑

ENDWITH(str1,str2):判断字符串str1是否以str2结束。 备注: str1和str2都是大小写敏感的。
示例:
ENDWITH("FineReport","Report")等于true
ENDWITH("FineReport","Fine")等于false。
ENDWITH("FineReport","report")等于false。

5、NUMTO编辑

NUMTO(number,bool)或NUMTO(number):返回number的中文表示。其中bool用于选择中文表示的方式,当没有bool时采用默认方式显示。
示例:
NUMTO(2345,true)等于二三四五;
NUMTO(2345,false)等于二千三百四十五;
NUMTO(2345)等于二千三百四十五。

6、LEFT编辑

LEFT(text,num_chars):根据指定的字符数返回文本串中的第一个或前几个字符。
Text:包含需要选取字符的文本串或单元格引用。
Num_chars:指定返回的字符串长度。
备注: Num_chars的值必须等于或大于0。如果num_chars大于整个文本的长度,LEFT函数将返回所有的文本。如果省略num_chars,则默认值为1。
示例:
LEFT("Fine software",8)等于“Fine sof”;
LEFT("Fine software")等于“F”;
如果单元格A3中含有“China”,则LEFT(A3,2)等于“Ch”。

7、SUBSTITUTE编辑

SUBSTITUTE(text,old_text,new_text,instance_num):用new_text替换文本串中的old_text。
Text:需要被替换字符的文本,或含有文本的单元格引用;
Old_text:需要被替换的部分文本;
New_text:用于替换old_text的文本。
Instance_num:指定用new_text来替换第几次出现的old_text。如果指定了instance_num,则只有指定位置上的old_text被替换,否则文字串中出现的所有old_text都被new_text替换。
备注: 如果需要替换字段值中的指定文本,则使用SUBSTITUTE函数;如果需要替换字段值中指定位置上的任意文本,则使用REPLACE函数。
示例:
SUBSTITUTE("data base","base","model")等于“data model”;
SUBSTITUTE("July 28, 2000","2","1",1)等于“July 18, 2000”;
SUBSTITUTE("July 28, 2000","2","1")等于“July 18, 1000”;
SUBSTITUTE("July 28, 2000","2","1",2)等于“July 28, 1000”。

8、MID编辑

MID(text,start_num,num_chars):返回文本串中从指定位置开始的一定数目的字符,该数目由用户指定。
Text:包含要提取字符的文本串;
Start_num:文本中需要提取字符的起始位置。文本中第一个字符的start_num为1,依此类推;
Num_chars:返回字符的长度;
备注: 如果start_num大于文本长度,MID函数返回“”(空文本)。 
如果start_num小于文本长度,并且start_num加上num_chars大于文本长度,MID函数将从start_num指定的起始字符直至文本末的所有字符。
如果start_num小于1,MID函数返回错误信息*VALUE!。 
如果num_chars是负数,MID函数返回错误信息*VALUE!。
示例:
MID("Finemore software",10,8)返回“software”;
MID("Finemore software",30,5)返回“”(空文本);
MID("Finemore software",0,8)返回*VALUE!;
MID("Finemore software",5,-1)返回*VALUE!。

9、EXACT编辑

EXACT(text1,text2):检测两组文本是否相同。如果完全相同,EXACT函数返回TRUE;否则,返回FALSE。EXACT函数可以区分大小写,但忽略格式的不同。同时也可以利用EXACT函数来检测输入文档的文字。
Text1:需要比较的第一组文本。
Text2:需要比较的第二组文本。
示例:
EXACT("Spreadsheet","Spreadsheet")等于TRUE。
EXACT("Spreadsheet","S preadsheet")等于FALSE。
EXACT("Spreadsheet","spreadsheet")等于FALSE。

10、TOINTEGER编辑

TOINTEGER(text):将文本转换成Integer对象。
Text:需要转换的文本。
示例:
TOINTEGER("123")等于 new Integer(123)。

11、REPEAT编辑

REPEAT(text,number_times):根据指定的次数重复显示文本。REPEAT函数可用来显示同一字符串,并对单元格进行填充。
Text:需要重复显示的文本或包含文本的单元格引用。
Number_times:指定文本重复的次数,且为正数。如果number_times为0,REPEAT函数将返回“”(空文本)。如果number_times不是整数,将被取整。REPEAT函数的最终结果通常不大于32767个字符。
备注:该函数可被用于在工作表中创建简单的直方图。
示例:
REPEAT("$",4)等于“$$$$";
如果单元格B10的内容为“你好”,REPEAT(B10,3)等于“你好你好你好”。

12、SPLIT编辑

SPLIT(String1,String2 ):返回由String2分割String1组成的字符串数组。
String1:以双引号表示的字符串;
String2:以双引号表示的分隔符。例如逗号","。
备注: 如果只有一个参数,则返回一个错误。如果有多个参数,则只有前两个起作用。
示例:
SPLIT("hello,world,yes",",") = ["hello","world","yes"]。
SPLIT("this is very good"," ") = ["this","is","very","good"]。

13、UPPER编辑

UPPER(text):将文本中所有的字符转化为大写。
Text:需要转化为大写字符的文本,或是包含文本的单元格引用。
示例:
UPPER("notes")等于“NOTES”;
如果单元格E5的值为“Examples”,则UPPER(E5)等于“EXAMPLES”。

14、RIGHT编辑

RIGHT(text,num_chars):根据指定的字符数从右开始返回文本串中的最后一个或几个字符。
Text:包含需要提取字符的文本串或单元格引用;
Num_chars:指定RIGHT函数从文本串中提取的字符数。Num_chars不能小于0。
如果num_chars大于文本串长度,RIGHT函数将返回整个文本。如果不指定num_chars,则默认值为1。
示例:
RIGHT("It is interesting",6)等于“esting”;
RIGHT("Share Holder")等于“r”;
RIGHT("Huge sale",4)等于“sale”。

15、TODOUBLE编辑

TODOUBLE(text):将文本转换成Double对象。
Text:需要转换的文本。
示例:
TODOUBLE("123.21")等于 new Double(123.21)。

16、INDEXOF编辑

1)INDEXOF(str1,index):返回字符串str1在index位置上的字符。
备注: index是从0开始计数的。
示例:
INDEXOF("FineReport",0)等于'F';
INDEXOF("FineReport",2)等于'n';
INDEXOF("FineReport",9)等于't';
2)INDEXOF(array,index):返回数组在index位置上的元素。
备注:index是从1开始计数的。
示例:
String[] array = {"a","b","c"} INDEXOF(array,1)等于"a"。

17、FIND编辑

FIND(find_text,within_text,start_num):从指定的索引(start_num)处开始,返回第一次出现的指定子字符串(find_text)在此字符串(within_text)中的索引。
Find_text:需要查找的文本或包含文本的单元格引用;
Within_text:包含需要查找文本的文本或单元格引用;
Start_num:指定进行查找字符的索引位置。
within_text里的索引从1开始。如果省略start_num,则假设值为1。备注:如果find_text不在within_text中,FIND函数返回值为0。如果start_num不大于0,FIND函数返回错误信息*VALUE!。如果大于within_text的长度,FIND函数返回值为0。如果find_text是空白文本,FIND函数将在搜索串中匹配第一个字符(即编号为start_num或1的字符)。
示例:
FIND("I","Information"),返回"I"在"Information"中的位置即返回值为1;
FIND("i","Information"),返回"i"在"Information"中的位置即返回值为9;
FIND("o","Information",2)等于4;
FIND("o","Information",12)等于0;
FIND("o","Information",-1)等于*VLAUE!。

18、REPLACE编辑

1)REPLACE(text,textorreplace,replacetext):根据指定的字符串,用其他文本来代替原始文本中的内容。
text:需要被替换部分字符的文本或单元格引用;
textorreplace:指定的字符串或正则表达式;
replacetext:需要替换部分旧文本的文本。
示例:
REPLACE("abcd","a","re")等于"rebcd";
REPLACE("a**d","**d","rose")等于"arose";
2)REPLACE(old_text,start_num,num_chars,new_text):根据指定的字符数,用其他文本串来替换某个文本串中的部分内容。
Old_text:需要被替换部分字符的文本或单元格引用;
Start_num:需要用new_text来替换old_text中字符的起始位置;
Num_chars:需要用new_text来替换old_text中字符的个数;
New_text:需要替换部分旧文本的文本。
示例:
REPLACE("0123456789",5,4,"*")等于“0123*89”;
REPLACE("1980",3,2,"99")等于“1999”。

19、CONCATENATE编辑

CONCATENATE(text1,text2,...):将数个字符串合并成一个字符串。
Text1,text2,...:需要合并成单个文本的文本项,可以是字符,数字或是单元格引用。
示例:
CONCATENATE("Average ","Price")等于“Average Price”;
CONCATENATE("1","2")等于12。

20、LOWER编辑

LOWER(text):将所有的大写字母转化为小写字母。
Text:需要转化为小写字母的文本串。LOWER函数不转化文本串中非字母的字符。
示例:
LOWER("A.M.10:30")等于“a.m.10:30”;
LOWER("China")等于“china”。

21、LEN编辑

LEN(args):返回文本串中的字符数或者数组的长度。需要注意的是:参数args为文本串时,空格也计为字符。参数args为数组时,直接返回数组长度。
示例:
LEN("Evermore software")等于17;
LEN(" ")等于1;
LEN(['a','b'])等于2。

22、CHAR编辑

CHAR(number):根据指定数字返回对应的字符。CHAR函数可将计算机其他类型的数字代码转换为字符。Number:用于指定字符的数字,介于1~65535之间(包括1和65535)。
示例:
CHAR(88)等于"X";
CHAR(45)等于"-"。
注:CHAR函数返回的字符类型为Character类型。如果想用char(88) ="X"作为条件判断的话,需要加上CONCATENATE函数将char(88)的结果处理成String类型,才可满足条件判断,比如CONCATENATE(char(88)) ="X"。 

23、CODE编辑

CODE(text):计算文本串中第一个字符的数字代码。返回的代码对应于计算机使用的字符集。Text:需要计算第一个字符代码的文本或单元格引用。
示例:
CODE("S")等于83;
CODE("Spreadsheet")等于83。

24、PROPER编辑

PROPER(text):将文本中的第一个字母和所有非字母字符后的第一个字母转化为大写,其他字母变为小写。Text:需要转化为文本的公式、由双引号引用的文本串或是单元格引用。
示例:
PROPER("Finemore Integrated Office")等于"Finemore Integrated Office";
PROPER("100 percent")等于"100 Percent";
PROPER("SpreaDSheEt")等于"Spreadsheet"。

25、REGEXP编辑

(1)REGEXP(str, pattern):字符串str是否与正则表达式pattern相匹配。
示例:
REGEXP("aaaaac","a*c")等于true;
REGEXP("abc","a*c")等于false;
(2)REGEXP(str, pattern, intNumber):字符串str是否与具给定模式 intNumber 的正则表达式pattern相匹配。
注:intNumber的模式如下所示 
CASE_INSENSITIVE = 0 ——启用不区分大小写的匹配。
标志来启用 Unicode感知的、不区分大小写的匹配。 默认情况下,不区分大小写的匹配假定仅匹配 US-ASCII字符集中的字符。可以通过指定 UNICODE_CASE
MULTILINE = 1 ——启用多行模式。
DOTALL = 2 ——启用 dotall模式。
在 dotall模式中,表达式可以匹配任何字符,包括行结束符。默认情况下,此表达式不匹配行结束符。
UNICODE_CASE = 3——启用 Unicode感知的大小写折叠
指定此标志后,由CASE_INSENSITIVE标志启用时,不区分大小写的匹配将以符合 Unicode Standard的方式完成。
CANON_EQ = 4——启用规范等价。
指定此标志后,当且仅当其完整规范分解匹配时,两个字符才可视为匹配。
UNIX_LINES = 5——启用 Unix行模式。
在此模式中,.、^和 $的行为中仅识别 '\n'行结束符。
LITERAL = 6——启用模式的字面值解析。
指定此标志后,指定模式的输入字符串就会作为字面值字符序列来对待。输入序列中的元字符或转义序列不具有任何特殊意, 标志 CASE_INSENSITIVE和 UNICODE_CASE在与此标志一起使用时将对匹配产生影,其他标志都变得多余了。
COMMENTS = 7——模式中允许空白和注释。
此模式将忽略空白和在结束行之前以 #开头的嵌入式注释。
示例:
REGEXP("Aaaaabbbbc","a*b*c", 3)等于true;
REGEXP("Aaaaabbbbc","a*b*c", 1)等于false。

26、STARTWITH编辑

STARTWITH(str1,str2):判断字符串str1是否以str2开始。
注: str1和str2都是大小写敏感的。
示例:
STARTWITH("FineReport","Fine")等于true;
STARTWITH("FineReport","Report")等于false。