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

目录:

1. 概述编辑

1.1 版本

          FineBI版本         JAR 包功能变动
  5.1-
-
5.1.72020-11-05
函数释义优化&明确函数参数合法性

1.2 使用范围


使用位置
自助数据集新增列过滤
仪表板
添加计算字段

2. TRIM-清除空格编辑

1)概述

语法TRIM (text)清除文本首尾所有的空格
参数1text需要清除空格的文本

2)注意事项

支持使用一个参数。

3)示例

公式结果备注
TRIM(" Monthly Report")Monthly Report

3. FORMAT-改变格式编辑

1)概述

语法FORMAT(object,format)返回 object 的 format 格式
参数1object需要被格式化对象,可以是 String ,数字,Object (常用的有Date, Time)。注:实时数据只支持日期。
参数2format格式化的样式

2)注意事项

可使用两个参数。

3)实例

公式结果备注
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 下午

4. ENDWITH编辑

1)概述

语法ENDWITH(str1,str2)判断字符串 str1 是否以 str2 结束
参数1str1字符串
参数2str2字符串

2)注意事项

1、str1 和 str2 都是大小写敏感的。

2、支持使用两个参数。

3、ENDWITH函数为文本函数,仅能判断文本,不支持对时间类型进行判断。

3)实例

公式结果备注
ENDWITH("FineReport","Report")true
ENDWITH("FineReport","Fine")false
ENDWITH("FineReport","report")false

5. NUMTO-数值转为中文数值编辑

1)概述

语法NUMTO(number,bool)或 NUMTO (number)返回 number 的中文表示
参数1number数字
参数2bool 用于选择中文表示的方式

2)注意事项

1、支持设置两个参数,第二个参数可缺省。

2、实时数据不支持该函数。

3)示例

公式结果备注
NUMTO(2345,true)二三四五
NUMTO(2345,false)二千三百四十五
NUMTO(2345)二千三百四十五

6. LEFT-取前几个字符编辑

1)概述

语法LEFT(text,num_chars)根据指定的字符数返回文本串中的第一个或前几个字符
参数1text包含需要选取字符的文本串或单元格引用
参数2num_chars指定返回的字符串长度

2)注意事项

num_chars的值必须等于或大于0。如果num_chars大于整个文本的长度,LEFT函数将返回所有的文本。如果省略num_chars,则默认值为1。

3)示例

公式结果备注
LEFT("Finesoftware",8)Finesoft
LEFT("Finesoftware")F

7. SUBSTITUTE-替换指定字符编辑

1)概念

语法SUBSTITUTE(text,old_text,new_text,instance_num)用 new_text 替换文本串中的 old_text 
参数1text文本串
参数2new_text新文本串
参数3old_text旧文本串
参数4instance_num指定位置

2)注意事项

1、如果需要替换字段值中的指定文本,则使用 SUBSTITUTE 函数;

2、如果需要替换字段值中指定位置上的任意文本,则使用 REPLACE 函数。

3、实时数据中无法使用此函数。

4、可使用四个参数,其中第四个参数可以缺省

3)示例

公式结果备注
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-取指定位置部分字符编辑

1)概念

语法MID(text,start_num,num_chars)返回文本串中从指定位置开始的一定数目的字符,该数目由用户指定
参数1Text包含要提取字符的文本串
参数2Start_num文本中需要提取字符的起始位置。文本中第一个字符的start_num为1,依此类推
参数3Num_chars返回字符的长度

2)注意事项

1、支持设置三个参数。

2、如果 start_num 大于文本长度,MID 函数返回“”(空文本)。

3、如果 start_num 小于文本长度,并且 start_num 加上 num_chars 大于文本长度,MID 函数将从 start_num 指定的起始字符直至文本末的所有字符。

4、如果 start_num 小于 1 ,MID函数返回错误信息*VALUE! 。 

5、如果 num_chars 是负数,MID函数返回错误信息*VALUE!。

3)示例

公式结果备注
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-比较两组文本字符编辑

1)概述

语法EXACT(text1,text2)检测两组文本是否相同。如果完全相同,EXACT 函数返回 TRUE ;否则,返回 FALSE 
参数1Text1需要比较的第一组文本
参数2Text2需要比较的第二组文本

2)注意事项

1、EXACT 函数可以区分大小写,但忽略格式的不同。同时也可以利用 EXACT 函数来检测输入文档的文字。

2、可使用两个参数。

3)示例

公式结果备注
EXACT("Spreadsheet","Spreadsheet")TRUE 
EXACT("Spreadsheet","S preadsheet")FALSE 
EXACT("Spreadsheet","spreadsheet")FALSE 

10. TOINTEGER编辑

1)概述

语法TOINTEGER(text)将文本转换成Integer对象
参数1Text需要转换的文本

2)注意事项

可使用一个参数。

3)示例

公式结果备注
TOINTEGER("123")new Integer(123)

11. REPEAT-重复显示字符编辑

1)概述

语法REPEAT(text,number_times)根据指定的次数重复显示文本
参数1text需重复的文本
参数2number_times重复次数

2)注意事项

可使用两个参数。

3)示例

公式结果备注
REPEAT("$",4)$$$$
REPEAT(B10,3)你好你好你好单元格B10的内容为'你好'

12. SPLIT-分割字符编辑

1)概念

语法SPLIT(String1,String2 )返回由String2分割String1组成的字符串数组
参数1String1以双引号表示的字符串
参数2String2以双引号表示的分隔符。例如逗号","

2)注意事项

1、不支持实时数据中使用。

2、支持使用两个参数。

3)示例

公式结果备注
SPLIT("hello,world,yes",",")"hello","world","yes"
SPLIT("this is very good"," ")"this","is","very","good"

13. UPPER-转化为大写编辑

1)概述

语法UPPER(text)将文本中所有的字符转化为大写
参数1Text需要转化为大写字符的文本

2)注意事项

可使用单文本参数。

3)示例

公式结果备注
UPPER("notes")NOTES

14. RIGHT-取最后的几个字符编辑

1)概述

语法RIGHT(text,num_chars)根据指定的字符数从右开始返回文本串中的最后一个或几个字符
参数1Text包含需要提取字符的文本串或单元格引用
参数2Num_chars指定 RIGHT 函数从文本串中提取的字符数,Num_chars 不能小于 0

2)注意事项

1、可使用两个参数,第二个参数可缺省。

2、如果 num_chars 大于文本串长度,RIGHT 函数将返回整个文本。如果不指定 num_chars ,则默认值为 1 。

3、实时数据中num_chars不能缺省

3)示例

公式结果备注
RIGHT("It is interesting",6)esting
RIGHT("Share Holder")r
RIGHT("Huge sale",4)sale

15. TODOUBLE编辑

1)概述

语法TODOUBLE(text)将文本转换成 Double 对象
参数1Text需要转换的文本

2)注意事项

可使用一个参数

3)示例

公式结果备注
TODOUBLE("123.21")new Double(123.21)

16. INDEXOF-字符串 str1 在 index 位置上的字符编辑

1)概述

语法INDEXOF(str1,index)

返回字符串str1在index位置上的字符

参数1str1字符串
参数2index位置

2)注意事项

index是从 0 开始计数的。

函数返回的数据类型为文本型。例如使用过滤条件INDEXOF(单据编码,6)="8",由于函数返回的数据类型为文本类型,因此过滤条件中的数值 8 需要加双引号,改成文本类型,此时才能使用等号,如下图所示:

1605771455703587.png

3)示例

公式结果备注
INDEXOF("FineBI",0)F
INDEXOF("FineBI",2)n
INDEXOF("FineBI",5)I
INDEXOF(["a","b","c"], 1)b

17. FIND-返回指定字符的位置排序编辑

1)概述

语法
FIND(find_text,within_text,start_num)

从指定的索引 (start_num) 处开始,返回第一次出现的指定子字符串 (find_text) 在此字

符串 (within_text) 中的索引。实时数据中如少于三个参数需添加缺省值。

参数1find_text

需要查找的文本

参数2within_text包含需要查找文本的文本
参数3start_num

指定进行查找字符的索引位置

注:实时数据中不支持为负值。

参数4within_text索引从1开始。如果省略start_num,则假设值为1。 

2)注意事项

支持使用三个函数

3)示例

公式结果
备注
FIND("I","Information")1
返回"I"在"Information"中的位置即返回值为 1
FIND("o","Information",2)4参考下图
FIND("o","Information",-1)实时数据不支持该写法

1600067156971233.png

18. REPLACE-用其他文本来代替原始文本中的内容编辑

18.1 抽取数据

1)概述

语法
REPLACE(text,textorreplace,replacetext)根据指定的字符串,用其他文本来代替原始文本中的内容
参数1text需要被替换部分字符的文本或单元格引用
参数2textorreplace指定的字符串或正则表达式
参数3replacetext需要替换部分旧文本的文本

2)注意事项

支持使用三个参数

3)示例

公式结果备注
REPLACE("abcd","a","re")rebcd
REPLACE("a**d","**d","rose")arose

18.2 实时数据

1)概述

语法REPLACE(old_text,start_num,num_chars,new_text)根据指定的字符数,用其他文本串来替换某个文本串中的部分内容
参数1Old_text需要被替换部分字符的文本或单元格引用
参数2Start_num需要用new_text来替换old_text中字符的起始位置
参数3Num_chars需要用new_text来替换old_text中字符的个数
参数4New_text需要替换部分旧文本的文本

2)注意事项

1、实时数据中不支持该用法。

2、支持使用四个参数。

3)实例

公式结果备注
REPLACE("0123456789",5,4,"*")0123*89
REPLACE("1980",3,2,"99")1999

19. CONCATENATE-拼接字符串编辑

1)概述

语法CONCATENATE(text1,text2,...)将数个字符串合并成一个字符串
参数1Text1,text2,...需要合并成单个文本的文本项

2)注意事项

可使用多个参数

3)示例

公式结果备注
CONCATENATE("Average ","Price")Average Price
CONCATENATE("1","2")12

20. 字符串转小写(LOWER)编辑

1)概述

语法LOWER(text)将所有的大写字母转化为小写字母
参数1text需要转化为小写字母的文本串

2)注意事项

LOWER 函数不转化文本串中非字母的字符

公式结果备注
LOWER("A.M.10:30")a.m.10:30
LOWER("China")china

21. 字符串长度(LEN)编辑

21.1 抽取数据

1)概述

语法LEN(args)返回文本串中的字符数长度
参数1args参数

2)注意事项

参数args为文本串时,空格也计为字符;参数args为数组时,直接返回数组长度。

3)示例

公式结果备注
LEN("Evermoresoftware")16
LEN("Evermore software")17
LEN(["a","b"])2

21.2 实时数据

1)概述

语法LEN(args)返回文本串中的字符数长度
参数1args参数

2)注意事项

参数args为文本串时,空格也计为字符。

3)示例

公式结果备注
LEN("Evermoresoftware")16
LEN("Evermore software")17

22. CHAR-对应数字的字符编辑

1)概述

语法CHAR(number)根据指定数字返回对应的字符,CHAR函数可将计算机其他类型的数字代码转换为字符
参数1number指定数字

2)注意事项

支持使用一个参数

3)示例

公式结果备注
CHAR(88)XCHAR 函数返回的字符类型为 Character 类型。如果想用 char(88) ="X" 作为条件判断的话,需要加上 CONCATENATE 函数将char(88) 的结果处理成 String 类型,才可满足条件判断,比如 CONCATENATE(char(88)) ="X"
CHAR(45)-

23. CODE-取文本对应的数字编辑

1)概述

语法CODE(text)计算文本串中第一个字符的数字代码。返回的代码对应于计算机使用的字符集。
参数1text

需要计算第一个字符代码的文本或单元格引用

2)注意事项

支持使用一个参数

3)示例

公式结果备注
CODE("S")83
CODE("Spreadsheet")83

24. PROPER编辑

1)概述

语法PROPER(text)将文本中的第一个字母和所有非字母字符后的第一个字母转化为大写,其他字母变为小写
参数1text需要转化为文本的公式、由双引号引用的文本串或是单元格引用

2)注意事项

1、可使用一个参数

2、实时数据无此函数

3)示例

公式结果备注
PROPER("Finemore Integrated Office")Finemore Integrated Office
PROPER("100 percent")100 Percent
PROPER("SpreaDSheEt")Spreadsheet

25. REGEXP-判断正则表达式编辑

25.1 抽取数据

1.1)概述

语法REGEXP(str, pattern)字符串 str 是否与正则表达式 pattern 相匹配
参数1str字符串
参数2pattern正则表达式

1.2)注意事项

可使用三个参数,第三个参数可缺省。

1.3)示例

公式结果备注
REGEXP("aaaaac","a*c")true
REGEXP("abc","a*c")false

本文以 \d 和 \w 为例,在自助数据集中使用该函数,其中 \d 表示匹配数字,\w 表示匹配字母或数字或下划线或汉字,如下图所示:

39.png

在计算指标中若要使用\字符,需要再添加一个反斜杠。所以当计算指标公式为regexp(字符串,"\d")时会提示不合法。

需写成regexp(字符串,"\\d"),如下图所示:

image.png

2.1)概述

语法REGEXP(str, pattern, intNumber)字符串 str 是否与具有给定模式 intNumber 的正则表达式 pattern 相匹配
参数1str字符串
参数2pattern正则表达式
参数3intNumber给定模式

2.2)注意事项

intNumber 的模式如下所示 :

intNumber 模式概念
CASE_INSENSITIVE = 0启用不区分大小写的匹配。标志来启用 Unicode感知的、不区分大小写的匹配。 默认情况下,不区分大小写的匹配假定仅匹配 US-ASCII 字符集中的字符。可以通过指定 UNICODE_CASE 
MULTILINE = 1启用多行模式。标志来启用 Unicode感知的、不区分大小写的匹配。 默认情况下,不区分大小写的匹配假定仅匹配 US-ASCII 字符集中的字符。可以通过指定 UNICODE_CASE 
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模式中允许空白和注释。此模式将忽略空白和在结束行之前以 #开头的嵌入式注释

2.3)示例

公式结果备注
REGEXP("Aaaaabbbbc","a*b*c", 3)true注:默认支持所有正则表达式,例如 \d,\w 
REGEXP("Aaaaabbbbc","a*b*c", 1)false


25.2 实时数据

1)概述

语法REGEXP(str,pattern)字符串str是否与正则表达式pattern相匹配
参数1str字符串
参数2pattern正则表达式

2)示例

公式结果备注
REGEXP("aaaaac","a*c")true
REGEXP("abc","a+c")false

26. STARTWITH-判断字符串 str1 是否以 str2 开始编辑

1)概念

语法STARTWITH(str1,str2)判断字符串 str1 是否以 str2 开始
参数1str1字符串
参数2str2字符串

2)注意事项

1、str1 和 str2 都大小写敏感

2、支持使用两个参数

3)示例

公式结果备注
STARTWITH("FineReport","Fine")true
STARTWITH("FineReport","Report")false