目录:
- 1. 概述
- 2. TRIM-清除空格
- 3. FORMAT-改变格式
- 4. ENDWITH
- 5. NUMTO-数值转为中文数值
- 6. LEFT-取前几个字符
- 7. SUBSTITUTE-替换指定字符
- 8. MID-取指定位置部分字符
- 9. EXACT-比较两组文本字符
- 10. TOINTEGER
- 11. REPEAT-重复显示字符
- 12. SPLIT-分割字符
- 13. UPPER-转化为大写
- 14. RIGHT-取最后的几个字符
- 15. TODOUBLE
- 16. INDEXOF-字符串 str1 在 index 位置上的字符
- 17. FIND-返回指定字符的位置排序
- 18. REPLACE-用其他文本来代替原始文本中的内容
- 19. CONCATENATE-拼接字符串
- 20. 字符串转小写(LOWER)
- 21. 字符串长度(LEN)
- 22. CHAR-对应数字的字符
- 23. CODE-取文本对应的数字
- 24. PROPER
- 25. REGEXP-判断正则表达式
- 26. STARTWITH-判断字符串 str1 是否以 str2 开始
1. 概述编辑
2. TRIM-清除空格编辑
1)概述
语法 | TRIM (text) | 清除文本首尾所有的空格 |
---|---|---|
参数1 | text | 需要清除空格的文本 |
2)注意事项
支持使用一个参数。
注:实时数据支持使用一个文本类型的参数。
3)示例
公式 | 结果 | 备注 |
---|---|---|
TRIM(" Monthly Report") | Monthly Report |
3. FORMAT-改变格式编辑
1)概述
语法 | FORMAT(object,format) | 返回 object 的 format 格式 |
---|---|---|
参数1 | object | 需要被格式化对象,可以是 String ,数字,Object (常用的有Date, Time)。注:实时数据只支持日期。 |
参数2 | format | 格式化的样式 |
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 结束 |
---|---|---|
参数1 | str1 | 字符串 |
参数2 | str2 | 字符串 |
2)注意事项
str1 和 str2 都是大小写敏感的。
支持使用两个参数。注:实时数据支持使用两个任意类型的参数。
ENDWITH 函数为文本函数,仅能判断文本,不支持对时间类型进行判断。
3)实例
公式 | 结果 | 备注 |
---|---|---|
ENDWITH("FineReport","Report") | true | |
ENDWITH("FineReport","Fine") | false | |
ENDWITH("FineReport","report") | false |
5. NUMTO-数值转为中文数值编辑
1)概述
语法 | NUMTO(number,bool)或 NUMTO (number) | 返回 number 的中文表示 |
---|---|---|
参数1 | number | 数字 |
参数2 | bool | 用于选择中文表示的方式 |
2)注意事项
1、支持设置两个参数,第二个参数可缺省。
2、实时数据不支持该函数。
3)示例
公式 | 结果 | 备注 |
---|---|---|
NUMTO(2345,true) | 二三四五 | |
NUMTO(2345,false) | 二千三百四十五 | |
NUMTO(2345) | 二千三百四十五 |
6. LEFT-取前几个字符编辑
1)概述
语法 | LEFT(text,num_chars) | 根据指定的字符数返回文本串中的第一个或前几个字符 |
---|---|---|
参数1 | text | 包含需要选取字符的文本串或单元格引用 |
参数2 | num_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 |
---|---|---|
参数1 | text | 文本串 |
参数2 | new_text | 新文本串 |
参数3 | old_text | 旧文本串 |
参数4 | instance_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) | 返回文本串中从指定位置开始的一定数目的字符,该数目由用户指定 |
---|---|---|
参数1 | Text | 包含要提取字符的文本串 |
参数2 | Start_num | 文本中需要提取字符的起始位置。文本中第一个字符的start_num为1,依此类推 |
参数3 | Num_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 |
---|---|---|
参数1 | Text1 | 需要比较的第一组文本 |
参数2 | Text2 | 需要比较的第二组文本 |
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对象 |
---|---|---|
参数1 | Text | 需要转换的文本 |
2)注意事项
可使用一个参数。
3)示例
公式 | 结果 | 备注 |
---|---|---|
TOINTEGER("123") | new Integer(123) |
11. REPEAT-重复显示字符编辑
1)概述
语法 | REPEAT(text,number_times) | 根据指定的次数重复显示文本 |
---|---|---|
参数1 | text | 需重复的文本 |
参数2 | number_times | 重复次数 |
2)注意事项
可使用两个参数。
注:实时数据支持使用两个参数,第一个为任意类型,第二个为数值类型。
3)示例
公式 | 结果 | 备注 |
---|---|---|
REPEAT("$",4) | $$$$ | |
REPEAT(B10,3) | 你好你好你好 | 单元格B10的内容为'你好' |
12. SPLIT-分割字符编辑
1)概念
语法 | SPLIT(String1,String2 ) | 返回由String2分割String1组成的字符串数组 |
---|---|---|
参数1 | String1 | 以双引号表示的字符串 |
参数2 | String2 | 以双引号表示的分隔符。例如逗号"," |
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) | 将文本中所有的字符转化为大写 |
---|---|---|
参数1 | Text | 需要转化为大写字符的文本 |
2)注意事项
可使用单文本参数。
注:实时数据支持使用一个文本类型的参数。
3)示例
公式 | 结果 | 备注 |
---|---|---|
UPPER("notes") | NOTES |
14. RIGHT-取最后的几个字符编辑
1)概述
语法 | RIGHT(text,num_chars) | 根据指定的字符数从右开始返回文本串中的最后一个或几个字符 |
---|---|---|
参数1 | Text | 包含需要提取字符的文本串或单元格引用 |
参数2 | Num_chars | 指定 RIGHT 函数从文本串中提取的字符数,Num_chars 不能小于 0 |
2)注意事项
1、可使用两个参数,第二个参数可缺省。
2、如果 num_chars 大于文本串长度,RIGHT 函数将返回整个文本。如果不指定 num_chars ,则默认值为 1 。
注:实时数据支持使用两个参数,第一个为任意类型,第二个为数值类型,可以缺省。
3)示例
公式 | 结果 | 备注 |
---|---|---|
RIGHT("It is interesting",6) | esting | |
RIGHT("Share Holder") | r | |
RIGHT("Huge sale",4) | sale |
15. TODOUBLE编辑
1)概述
语法 | TODOUBLE(text) | 将文本转换成 Double 对象 |
---|---|---|
参数1 | Text | 需要转换的文本 |
2)注意事项
可使用一个参数
3)示例
公式 | 结果 | 备注 |
---|---|---|
TODOUBLE("123.21") | new Double(123.21) |
16. INDEXOF-字符串 str1 在 index 位置上的字符编辑
1)概述
语法 | INDEXOF(str1,index) | 返回字符串str1在index位置上的字符 |
---|---|---|
参数1 | str1 | 字符串 |
参数2 | index | 位置 |
2)注意事项
index是从 0 开始计数的。
函数返回的数据类型为文本型。例如使用过滤条件INDEXOF(单据编码,6)="8",由于函数返回的数据类型为文本类型,因此过滤条件中的数值 8 需要加双引号,改成文本类型,此时才能使用等号,如下图所示:
注:实时数据支持使用两个参数,第一个为任意类型,第二个为数值类型。
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) 中的索引。实时数据中如少于三个参数需添加缺省值。 |
---|---|---|
参数1 | find_text | 需要查找的文本 |
参数2 | within_text | 包含需要查找文本的文本 索引从1开始。如果省略start_num,则假设值为1。 |
参数3 | start_num | 指定进行查找字符的索引位置 注:实时数据中不支持为负值。 |
2)注意事项
支持使用三个函数
注:实时数据中,第一个参数任意类型,第二个参数任意类型,第三个参数可缺省,若需要,必须为数值格式。
3)示例
公式 | 结果 | 备注 |
---|---|---|
FIND("I","Information") | 1 | 返回"I"在"Information"中的位置即返回值为 1 |
FIND("o","Information",2) | 4 | 参考下图 |
FIND("o","Information",-1) | 空 | 实时数据不支持该写法 |
18. REPLACE-用其他文本来代替原始文本中的内容编辑
18.1 用法一
1)概述
语法 | REPLACE(text,textorreplace,replacetext) | 根据指定的字符串,用其他文本来代替原始文本中的内容 |
---|---|---|
参数1 | text | 需要被替换部分字符的文本或单元格引用 |
参数2 | textorreplace | 指定的字符串或正则表达式 |
参数3 | replacetext | 需要替换部分旧文本的文本 |
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) | 根据指定的字符数,用其他文本串来替换某个文本串中的部分内容 |
---|---|---|
参数1 | Old_text | 需要被替换部分字符的文本或单元格引用 |
参数2 | Start_num | 需要用new_text来替换old_text中字符的起始位置 |
参数3 | Num_chars | 需要用new_text来替换old_text中字符的个数 |
参数4 | New_text | 需要替换部分旧文本的文本 |
2)注意事项
支持使用四个参数。
注:实时数据中使用的四个参数,第一个需要是任意类型,第二个第三个需要是数值类型,第四个需要时任意类型。
3)实例
公式 | 结果 | 备注 |
---|---|---|
REPLACE("0123456789",5,4,"*") | 0123*89 | |
REPLACE("1980",3,2,"99") | 1999 |
19. CONCATENATE-拼接字符串编辑
1)概述
语法 | CONCATENATE(text1,text2,...) | 将数个字符串合并成一个字符串 |
---|---|---|
参数1 | Text1,text2,... | 需要合并成单个文本的文本项 |
2)注意事项
可使用多个参数
3)示例
公式 | 结果 | 备注 |
---|---|---|
CONCATENATE("Average ","Price") | Average Price | |
CONCATENATE("1","2") | 12 |
20. 字符串转小写(LOWER)编辑
1)概述
语法 | LOWER(text) | 将所有的大写字母转化为小写字母 |
---|---|---|
参数1 | text | 需要转化为小写字母的文本串 |
2)注意事项
LOWER 函数不转化文本串中非字母的字符
注:实时数据支持使用一个文本类型的参数。
3)示例
公式 | 结果 | 备注 |
---|---|---|
LOWER("A.M.10:30") | a.m.10:30 | |
LOWER("China") | china |
21. 字符串长度(LEN)编辑
21.1 抽取数据
1)概述
语法 | LEN(args) | 返回文本串中的字符数长度 |
---|---|---|
参数1 | args | 参数 |
2)注意事项
参数args为文本串时,空格也计为字符;参数args为数组时,直接返回数组长度。
3)示例
公式 | 结果 | 备注 |
---|---|---|
LEN("Evermoresoftware") | 16 | |
LEN("Evermore software") | 17 | |
LEN(["a","b"]) | 2 |
21.2 实时数据
1)概述
语法 | LEN(args) | 返回文本串中的字符数长度 |
---|---|---|
参数1 | args | 参数 |
2)注意事项
参数 args 为文本串时,空格也计为字符。
仅支持一个参数。
3)示例
公式 | 结果 | 备注 |
---|---|---|
LEN("Evermoresoftware") | 16 | |
LEN("Evermore software") | 17 |
22. CHAR-对应数字的字符编辑
1)概述
语法 | CHAR(number) | 根据指定数字返回对应的字符,CHAR函数可将计算机其他类型的数字代码转换为字符 |
---|---|---|
参数1 | number | 指定数字 |
2)注意事项
支持使用一个参数
注:实时数据仅支持使用一个数值类型参数。
3)示例
公式 | 结果 | 备注 |
---|---|---|
CHAR(88) | X | CHAR 函数返回的字符类型为 Character 类型。如果想用 char(88) ="X" 作为条件判断的话,需要加上 CONCATENATE 函数将char(88) 的结果处理成 String 类型,才可满足条件判断,比如 CONCATENATE(char(88)) ="X" |
CHAR(45) | - |
23. CODE-取文本对应的数字编辑
1)概述
语法 | CODE(text) | 计算文本串中第一个字符的数字代码。返回的代码对应于计算机使用的字符集。 |
---|---|---|
参数1 | text | 需要计算第一个字符代码的文本或单元格引用 |
2)注意事项
支持使用一个参数
注:实时数据仅支持一个文本类型参数。
3)示例
公式 | 结果 | 备注 |
---|---|---|
CODE("S") | 83 | |
CODE("Spreadsheet") | 83 |
24. PROPER编辑
1)概述
语法 | PROPER(text) | 将文本中的第一个字母和所有非字母字符后的第一个字母转化为大写,其他字母变为小写 |
---|---|---|
参数1 | text | 需要转化为文本的公式、由双引号引用的文本串或是单元格引用 |
2)注意事项
可使用一个参数
实时数据无此函数
3)示例
公式 | 结果 | 备注 |
---|---|---|
PROPER("Finemore Integrated Office") | Finemore Integrated Office | |
PROPER("100 percent") | 100 Percent | |
PROPER("SpreaDSheEt") | Spreadsheet |
25. REGEXP-判断正则表达式编辑
25.1 抽取数据
用法一:
1)概述
语法 | REGEXP(str, pattern) | 字符串 str 是否与正则表达式 pattern 相匹配 |
---|---|---|
参数1 | str | 字符串 |
参数2 | pattern | 正则表达式 |
2)注意事项
若要使用\字符,需要再添加一个反斜杠。所以当公式为regexp(字符串,"\d")时会提示不合法,需写成regexp(字符串,"\\d"),如下图所示:
3)示例
公式 | 结果 | 备注 |
---|---|---|
REGEXP("aaaaac","a*c") | true | |
REGEXP("abc","a*c") | false |
本文以 \d 和 \w 为例,在自助数据集中使用该函数,其中 \d 表示匹配数字,\w 表示匹配字母或数字或下划线或汉字,如下图所示:
更多正则表达式示例详情参见:正则表达式示例
用法二:
1)概述
语法 | REGEXP(str, pattern, intNumber) | 字符串 str 是否与具有给定模式 intNumber 的正则表达式 pattern 相匹配 |
---|---|---|
参数1 | str | 字符串 |
参数2 | pattern | 正则表达式 |
参数3 | intNumber | 给定模式 |
2)注意事项
intNumber 的模式如下所示 :
通过设置intNumber为两种模式之和可以同时开启多种模式,如intNumber=1+2=3则表示同时开启 Unix行模式及不区分大小写的匹配模式
intNumber 模式 | 概念 |
intNumber=1 | UNIX_LINES 启用Unix行模式,在此模式下,"."、"^"、"$"的行为中仅识别" "行结束符 |
intNumber=2 | CASE_INSENSITIVE 启用不区分大小写的匹配。默认情况下,不区分大小写的匹配假定仅匹配US-ASCII字符集中的字符。可以通过指定UNICODE_CASE模式连同此模式来启用Unicode感知的、不区分大小写的匹配。 |
intNumber=4 | COMMENTS 启用允许使用空格和注释模式。此模式将忽略空格和在结束行之前以#开头的嵌入式注释。 |
intNumber=8 | MULTILINE 启用多行模式 |
intNumber=16 | LITERAL 启用文本分析的模式。启用此模式后,输入字符串就会作为字面值字符序列来对待。输入序列中的元字符或转义序列不具有任何特殊意义。CASE_INSENSITIVE 模式和 UNICODE_CASE 模式在与此模式一起使用时将对匹配产生影响。其他模式下无影响。 |
intNumber=32 | DOTALL 启用dotall模式,表达式"."可以匹配任何字符,包括行结束符。默认情况下,此表达式不匹配行结束符。 |
intNumber=64 | UNICODE_CASE 启用Unicode感知的大小写折叠。指定此模式并同时制定CASE_INSENSITIVE模式时,不区分大小写的匹配将以符合Unicode标准的方式完成。 |
intNumber=128 | CANON_EQ 启用规范等效模式,启用此模式后,当且仅当其完整规范分解匹配时,两个字符才可视为匹配。 |
3)示例
公式 | 结果 | 公式说明 |
---|---|---|
REGEXP("Aaaaabbbbc","a*b*c", 3) | true | 表示同时开启 Unix行模式及不区分大小写的匹配模式。因此返回 true |
REGEXP("Aaaaabbbbc","a*b*c", 1) | false | 表示同时开启 Unix行模式,由于区分大小写,因此返回 false |
REGEXP("Abc","abc", 2) | true | 表示开启不区分大小写模式,因此返回 true |
REGEXP("Abc","abc", 2),如下图所示:
25.2 实时数据
1)概述
语法 | REGEXP(str,pattern) | 字符串str是否与正则表达式pattern相匹配 |
---|---|---|
参数1 | str | 字符串 |
参数2 | pattern | 正则表达式 |
第一个参数为文本类型,第二个参数为文本类型。
3)示例
公式 | 结果 | 备注 |
---|---|---|
REGEXP("aaaaac","a*c") | true | |
REGEXP("abc","a+c") | false |
26. STARTWITH-判断字符串 str1 是否以 str2 开始编辑
1)概念
语法 | STARTWITH(str1,str2) | 判断字符串 str1 是否以 str2 开始 |
---|---|---|
参数1 | str1 | 字符串 |
参数2 | str2 | 字符串 |
2)注意事项
str1 和 str2 都大小写敏感
支持使用两个参数
3)示例
公式 | 结果 | 备注 |
---|---|---|
STARTWITH("FineReport","Fine") | true | |
STARTWITH("FineReport","Report") | false |