1. CHAR
CHAR(number):根据指定数字代码返回对应的字符。CHAR 函数可将计算机其他类型的数字代码转换为字符。
Number:用于指定字符的数字,介于 1 和 65535 之间(包括 1 和 65535)。
示例:
CHAR(88) 等于“X”。
CHAR(45) 等于“-”。
2. CNMONEY-数字转化为人民币大写
1)概述
语法 | CNMONEY(number,unit) | 返回人民币大写 |
---|---|---|
参数1 | number | 需要转换的数值型的数 超过十万亿,则不支持使用该函数 |
参数2 | unit | 单位,"s","b","q","w","sw","bw","qw","y","sy","by","qy","wy"分别代表“拾”,“佰”,“仟”,“万”,“拾万”,“佰万”,“仟万”,“亿”,“拾亿”,“佰亿”,“仟亿”,“万亿”。 |
返回值 | String | - |
2)注意事项
单位可以为空,如果为空,则直接将 number 转换为人民币大写,否则先将 number 与单位的进制相乘,然后再将相乘的结果转换为人民币大写。
参数 number 超过十万亿,则不支持使用该函数。
参数 number 在转换时只能将小数部分精确到分,若小数位超出精度范围,则会在转换前对 number 进行四舍五入并保留两位小数。如 CNMONEY(12.346) 的返回值为壹拾贰圆叁角伍分,如需精确到厘、毫,可参考 将数字转换成大写中文形式 。
3)示例
公式 | 结果 | 备注 |
---|---|---|
CNMONEY(1200) | 壹仟贰佰圆整 | - |
CNMONEY(12.5,"w") | 壹拾贰万伍仟圆整 | - |
CNMONEY(56.3478,"bw") | 伍仟陆佰叁拾肆万柒仟捌佰圆整 | |
CNMONEY(3.4567,"y") | 叁亿肆仟伍佰陆拾柒万圆整 |
3. CODE
CODE(text):计算文本串中第一个字符的数字代码。返回的代码对应于计算机使用的字符集。
Text:需要计算第一个字符代码的文本或单元格引用。
示例:
CODE("S") 等于 83。
CODE("Spreadsheet") 等于 83。
4. CONCATENATE
CONCATENATE(text1,text2,...):将数个字符串合并成一个字符串。
Text1,text2,...:需要合并成单个文本的文本项,可以是字符,数字或是单元格引用。
注: 也可以用"+"来代替 CONCATENATE 函数对文本项进行合并,"+"对数字无法合并,只能直接加法计算。
示例:
CONCATENATE("Average ","Price") 等于“Average Price”。
CONCATENATE("1","2") 等于 12。
视频教程:CONCATENATE 函数
5. ENDWITH
ENDWITH(str1,str2):判断字符串 str1 是否以 str2 结束。 注: str1 和 str2 都是大小写敏感的。
示例:
ENDWITH("FineReport","Report") 等于 true
ENDWITH("FineReport","Fine") 等于 false。
ENDWITH("FineReport","report") 等于 false。
6. ENMONEY
ENMONEY(value):将给定的 BigDemical 类型的数字转换成英文金额字符串。
示例:
ENMONEY(23.49) 等于 TWENTY THREE AND CENTS FORTY NINE。
注:仅支持 9 位数之内的计算。
7. ENNUMER
ENNUMBER(value):将给定的 BigDecimal 类型的数字(100 以内)取整后转化成英文金额的字符串。
示例:
ENNUMBER(23.49) 等于 TWENTY THREE。
注:若出现结果为空,需要将数字强制转换为 BigDecimal 类型,例如:ENNUMBER(TOBIGDECIMAL(80))
8. EXACT
EXACT(text1,text2):检测两组文本是否相同。如果完全相同,EXACT 函数返回 TRUE;否则,返回 FALSE。EXACT 函数可以区分大小写,但忽略格式的不同。同时也可以利用 EXACT 函数来检测输入文档的文字。
Text1:需要比较的第一组文本。
Text2:需要比较的第二组文本。
示例:
EXACT("Spreadsheet","Spreadsheet") 等于 TRUE。
EXACT("Spreadsheet","S preadsheet") 等于 FALSE。
EXACT("Spreadsheet","spreadsheet") 等于 FALSE。
9. FIND-获取特定字符串所在位置
1)概述
语法 | FIND(find_text,within_text,start_num) | 从指定的索引(start_num)处开始,返回第一次出现的指定子字符串(find_text)在此字符串(within_text)中的索引 |
---|---|---|
参数1 | Find_text | 需要查找的文本或包含文本的单元格引用 注: 如果 find_text 不在 within_tex 中,FIND 函数返回值为 0 |
参数2 | Within_text | 包含需要查找文本的文本或单元格引用 within_text 里的索引从 1 开始。如果省略 start_num,则假设值为 1 注:10.0.8 版本开始完全遵循该规则,此之前的版本可能会出现 within_text 里的索引从 0 开始 |
参数3 | Start_num | 指定进行查找字符的索引位置 |
2)注意事项
如果 start_num 不大于 0,FIND 函数返回错误信息 *VALUE!。
如果 start_num 大于 within_text 的长度,FIND 函数返回值为 0。
如果 find_text 是空白文本,FIND 函数将在搜索串中匹配第一个字符(即编号为 start_num 或 1 的字符)。
3)示例
公式 | 结果 | 备注 |
---|---|---|
FIND("I","Information") | 1 | 返回"I"在"Information"中的位置即返回值为 1 |
FIND("i","Information") | 9 | |
FIND("o","Information",2) | 4 | |
FIND("o","Information",12) | 0 | |
FIND("o","Information",-1) | *VALUE! |
4)视频教程:FIND 函数
10. FORMAT
1)概述
语法 | FORMAT(object,format) | 返回object的format格式 |
---|---|---|
参数1 | object | object 需要被格式化对象 可以是String,数字,Object(常用的有Date,Time) |
参数2 | format | 格式化的样式 |
2)注意事项
format 对日期的操作,日期的大小写必须按照年份小写 yy 或 yyyy,月份大写 M 或 MM,日期小写 d 或 dd。
format对小数的舍入计算遵循四舍五入、奇进偶舍的规则。
例如:12.5 -> 12
13.5 -> 14
14.5 -> 14
15.5 -> 16
3)示例
公式 | 结果 |
---|---|
FORMAT(1234.5,"#,##0.00") | 1,234.50 |
FORMAT(1234.5,"#,##0") | 1,234 |
FORMAT(1234.5,"¥#,##0.00") | ¥1,234.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,MMMMMdd,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:ssa") | 4:23:56下午 |
4)视频教程:FORMAT 函数
11. INDEXOF-返回指定位置的字符
11.1 返回字符串指定位置字符
1)概述
语法 | INDEXOF(str1,index) | 返回字符串 str1 在 index 位置上的字符 |
---|---|---|
参数1 | str1 | 目标字符串 |
参数2 | index | 指定位置,数字 |
返回值 | String | - |
2)注意事项
index 是从 0 开始计数的。
3)示例
公式 | 结果 | 备注 |
---|---|---|
INDEXOF("FineReport",0) | F | - |
INDEXOF("FineReport",2) | n | - |
INDEXOF("FineReport",9) | t | - |
11.2 返回数组指定位置字符
1)概述
语法 | INDEXOF(array,index) | 返回数组在 index 位置上的元素 |
---|---|---|
参数1 | array | 目标数组 |
参数2 | index | 指定位置,数字 |
返回值 | String | - |
2)注意事项
index 是从 1 开始计数的。
3)示例
公式 | 结果 | 备注 |
---|---|---|
INDEXOF(ARRAY("a","b","c"), 1) | a | - |
12. 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”。
视频教程:LEFT 函数
13. LEN-返回文本字符数
1)概述
语法 | LEN(text) | 返回文本串中的字符数 |
---|---|---|
参数1 | text | 需要求其长度的文本,空格也计为字符 |
返回值 | String | - |
2)示例
公式 | 结果 | 备注 |
---|---|---|
LEN("Evermore software") | 17 | - |
例如你需要对空值和非空值进行判断,可以使用该函数,使用公式:if(LEN(A1)=0,"空值","非空"),如下图所示:
得到如下结果:
3)视频教程:LEN 函数
14. LOWER
LOWER(text):将所有的大写字母转化为小写字母。
Text:需要转化为小写字母的文本串。LOWER 函数不转化文本串中非字母的字符。
示例:
LOWER("A.M.10:30") 等于“a.m.10:30”。
LOWER("China") 等于“china”。
15. 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!。
16. NUMTO
NUMTO(number):返回 number 的中文表示。
示例:
NUMTO(2345) 等于二千三百四十五。
17. PROPER
PROPER(text):将文本中的【第一个字母】和【空格后】的第一个字母转化成大写,其他字母变为小写。
Text:需要转化为文本的公式、由双引号引用的文本串或是单元格引用。
示例:
PROPER("Finemore Integrated Office") 等于“Finemore Integrated Office”。
PROPER("100 percent") 等于“100 Percent”。
PROPER("SpreaDSheEt") 等于“Spreadsheet”。
18. REGEXP
18.1 用法一
1)概述
REGEXP(str, pattern):
字符串str是否与正则表达式 pattern 相匹配。
2)示例
REGEXP("aaaaac","a*c") 等于 true。
REGEXP("abc","a*c") 等于 false。
18.2 用法二
1)概述
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 | 模式中允许空白和注释。 此模式将忽略空白和在结束行之前以 #开头的嵌入式注释 |
2)示例
REGEXP("Aaaaabbbbc","a*b*c", 3) 等于 true
REGEXP("Aaaaabbbbc","a*b*c", 1) 等于 false。
19. REPLACE
1)REPLACE(text, texttoreplace, replacetext):根据指定文本,用其他文本来替换原始文本中的内容。【文本:指不含格式信息的字符和字符串】
text:原始文本或单元格引用。
texttoreplace:被替换的文本。
replacetext: 替换的文本。
示例:
REPLACE("abcd", "a", "re")等于"rebcd"。即:将 abcd 中字符 a 用 re 来替换,形成新的字符串 rebcd。
如果单元格a1为【saasas】,则:
REPLACE(a1,"a","B")等于【sBBsBs】。
2)REPLACE(old_text,start_num,num_chars,new_text):根据指定长度,用其他文本来替换原文本中指定位置和长度的内容。
Old_text:原始文本或单元格引用。
Start_num:替换的起始位置。
Num_chars: 替换的长度,即被替换文本的字符数。
New_text:替换的文本。
示例:
REPLACE("0123456789",5,4,"*") 等于“0123*89”
REPLACE("1980",3,2,"99") 等于“1999”。
单元格引用、代表位置和长度的数字不能带引号;原始、替换和被替换的文本必须带英文引号(不区分单,双引号)。
第一种将替换所有符合条件的文本,第二种只替换指定位置的文本。
3)视频教程:REPLACE 函数
注:使用 REPLACE 函数传参给下拉框控件时, 单次取数最多替换 500 个值。
20. REPEAT
REPEAT(text,number_times): 根据指定的次数重复显示文本。REPEAT 函数可用来显示同一字符串,并对单元格进行填充。
Text:需要重复显示的文本或包含文本的单元格引用。
Number_times:指定文本重复的次数,且为正数。如果 number_times 为 0,REPEAT 函数将返回“”(空文本)。如果 number_times 不是整数,将被取整。REPEAT 函数的最终结果通常不大于 32767 个字符。
注: 该函数可被用于在工作表中创建简单的直方图。
示例:
REPEAT("$",4) 等于“$$$$”。
如果单元格 B10 的内容为“你好”,则:
REPEAT(B10,3) 等于“你好你好你好”。
21. 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”。
视频教程:RIGHT 函数
22. SPLIT
SPLIT(String1,String2):返回由 String2 分割 String1 组成的字符串数组。
String1:以双引号表示的字符串。
String2:以双引号表示的分隔符。例如逗号","
注:
如果只有一个参数,则返回一个错误。
如果有多个参数,则只有前两个起作用。
示例:
SPLIT("hello,world,yes",",") = ["hello","world","yes"]。
SPLIT("this is very good"," ") = ["this","is","very","good"]。
视频教程:SPLIT 函数
23. STARTWITH
STARTWITH(str1,str2):判断字符串 str1 是否以 str2 开始。
注: str1 和 str2 都是大小写敏感的。
示例:
STARTWITH("FineReport","Fine") 等于 true。
STARTWITH("FineReport","Report") 等于 false。
24. 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("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”。
视频教程:SUBSTITUTE 函数
25. TODOUBLE
TODOUBLE(text):将文本转换成 Double 对象。
Text:需要转换的文本。
示例:
TODOUBLE("123.21") 等于 new Double(123.21)。
26. TOINTEGER
TOINTEGER(text):将文本转换成 Integer 对象。
Text:需要转换的文本。
示例:
TOINTEGER("123") 等于 123。
27. TRIM
TRIM(text):清除文本首尾所有的空格、转义字符。
Text:需要清除的文本。
示例:
TRIM(" Monthly Report") 等于 Monthly Report。
28. UPPER
UPPER(text):将文本中所有的字符转化为大写。
Text:需要转化为大写字符的文本,或是包含文本的单元格引用。
示例:
UPPER("notes") 等于“NOTES”。
如果单元格E5的值为“Examples”,则:
UPPER(E5)等于“EXAMPLES”。
29. NUMTOZH-将数字转换成中文形式
1)概述
语法 | NUMTOZH(number,type) | 将数字转换成中文形式 |
---|---|---|
参数1 | number | 需要处理的具体数字,可以是具体的数字、可转义为数字的字符串可解析为数字及数字字符串的参数 |
参数2 | type | 1/2/3; 1为中文小写数值,2为中文大写数值,3为中文小写数字 可缺省,缺省时默认为type1,即:中文小写数值 |
2)注意事项
无
3)示例
NUMTOZH(1234) 等于 一千二百三十四
NUMTOZH(1234,1) 等于 一千二百三十四
NUMTOZH(1234,2) 等于 壹仟贰佰叁拾肆
NUMTOZH(1234,3) 等于 一二三四
30. ENBYSTRNUM-单元格按照指定字数换行显示
1)概述
语法 | ENBYSTRNUM(string,number) | 单元格按照指定字数换行显示 |
---|---|---|
参数1 | string | 需要换行显示的元素,可以是数字、字符等 |
参数2 | number | 指定换行字数的数值,为正整数;为负数或0时,公式不生效,按原换行方式换行 |
2)注意事项
11.0.5 以及之后的版本支持使用。
3)示例
ENBYSTRNUM("帆软软件有限公司",4) 等于
帆软软件
有限公司
ENBYSTRNUM("帆软软件有限公司",2) 等于
帆软
软件
有限
公司
31. TEXTGETNUM-提取字符串中的数字,并按照原数字顺序显示
1)概述
语法 | TEXTGETNUM(string) | 提取字符串中的数字,并按照原数字顺序显示 |
---|---|---|
参数1 | string | 需要提取数字的字符串 |
2)注意事项
若字符串中没有数字时,返回null
11.0.5 以及之后的版本支持使用。
3)示例
TEXTGETNUM(asf2d45g6r7742e) 等于 24567742
TEXTGETNUM(asfwddfgyruurwe) 等于 null
32. GETCHARNUM-计算字符串中指定字符个数
1)概述
语法 | GETCHARNUM(string1,string2) | 计算字符串中指定字符个数 |
---|---|---|
参数1 | string1 | 原始字符串 |
参数2 | string2 | 需要计算个数的指定字符,可以是数字、单个字符、多个字符 |
2)注意事项
需要寻找的字符串在目标字符串中匹配不到时,直接返回0
11.0.5 以及之后的版本支持使用。
3)示例
GETCHARNUM("2021-03-23",-) 等于 2
GETCHARNUM("abccccccccdef","cc") 等于 4
GETCHARNUM("abccccccccdef","ccc") 等于 2
33. MIDCHAR-截取某字符前或后所有的字符
1)概述
语法 | MIDCHAR(string,char,number,bool) | 截取某字符前或后所有的字符 |
---|---|---|
参数1 | string | 被截取的元素,可以是数字、字符等 |
参数2 | char | 截取标识符,可以是数字、字符;未找到截取标识符时,返回null |
参数3 | number | 字符串中第几次出现的标识符,为非0整数,正整数时,为正数第number个截取标识符;负整数时,为倒数第number个截取标识符;number绝对值超出字符串中个数时,返回原字符串;可缺省,缺省时默认按照正数第一个截取 |
参数4 | bool:ture/false | 向前截取还是向后截取;ture为向后,false为向前;可缺省,缺省时默认向后截取 |
2)注意事项
11.0.4 以及之后的版本支持使用。
3)示例
MIDCHAR("1234666", '6') 等于 "66"
MIDCHAR("1234666", '6',1,true) 等于 "66"
MIDCHAR("1234666", '6',1,false) 等于 "1234"