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。
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。
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! |
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下午 |
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”。
13. LEN-返回文本字符数
1)概述
语法 | LEN(text) | 返回文本串中的字符数。 |
---|---|---|
参数1 | text | 需要求其长度的文本,空格也计为字符。 |
返回值 | String | - |
2)示例
公式 | 结果 | 备注 |
---|---|---|
LEN("Evermore software") | 17 | - |
例如你需要对空值和非空值进行判断,可以使用该函数,使用公式:if(LEN(A1)=0,"空值","非空"),如下图所示:
得到如下结果:
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”。
注:
单元格引用、代表位置和长度的数字不能带引号;原始、替换和被替换的文本必须带英文引号(不区分单,双引号)。
第一种将替换所有符合条件的文本,第二种只替换指定位置的文本。
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”。
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"]。
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”。
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”。