目录:
- 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
- 17. 返回指定字符位置排序(FIND)
- 18. REPLACE
- 19. 拼接字符串(CONCATENATE)
- 20. 字符串转小写(LOWER)
- 21. 字符串长度(LEN)
- 22. CHAR
- 23. 取文本对应的数字(CODE)
- 24. PROPER
- 25. 判断正则表达式(REGEXP)
- 26. STARTWITH
1. 概述编辑
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
4. ENDWITH编辑
示例:
ENDWITH("FineReport","Report")等于「true」。
ENDWITH("FineReport","Fine")等于「false」。
5. 数值转为中文数值(NUMTO)编辑
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」;
8. 取指定位置部分字符(MID)编辑
MID(text,start_num,num_chars):返回文本串中从指定位置开始的一定数目的字符,该数目由用户指定。
Text:包含要提取字符的文本串;
Num_chars:返回字符的长度;
注: 如果 start_num 大于文本长度,MID 函数返回“”(空文本)。
如果 start_num 小于文本长度,并且 start_num 加上 num_chars 大于文本长度,MID 函数将从 start_num 指定的起始字符直至
文本末的所有字符。
如果 start_num 小于 1 ,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编辑
示例:
INDEXOF("FineReport",0)等于F';
INDEXOF("FineReport",2)等于'n';
INDEXOF("FineReport",9)等于't';
2)INDEXOF(array,index):返回数组在 index 位置上的元素。
注:index 是从 1 开始计数的。
示例:
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」;
19. 拼接字符串(CONCATENATE)编辑
CONCATENATE(text1,text2,...):将数个字符串合并成一个字符串。
Text1,text2,...:需要合并成单个文本的文本项,可以是字符,数字或是单元格引用。
示例:
CONCATENATE("Average ","Price")等于「Average Price」;
CONCATENATE("1","2")等于「12」。
20. 字符串转小写(LOWER)编辑
LOWER(text):将所有的大写字母转化为小写字母。
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 ;
24. PROPER编辑
PROPER(text):将文本中的第一个字母和所有非字母字符后的第一个字母转化为大写,其他字母变为小写。
Text:需要转化为文本的公式、由双引号引用的文本串或是单元格引用。
示例:
PROPER("Finemore Integrated Office")等于「Finemore Integrated Office」;
PROPER("100 percent")等于"100 Percent";
PROPER("SpreaDSheEt")等于"Spreadsheet"。
25. 判断正则表达式(REGEXP)编辑
REGEXP("abc","a*c")等于 false ;
本文以 \d 和 \w 为例,在自助数据集中使用该函数,其中 \d 表示匹配数字,\w 表示匹配字母或数字或下划线或汉字,如下图所示:
在计算指标中若要使用\字符,需要再添加一个反斜杠。所以当计算指标公式为regexp(字符串,"\d")时会提示不合法。
需写成regexp(字符串,"\\d"),如下图所示:
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 | 模式中允许空白和注释。此模式将忽略空白和在结束行之前以 #开头的嵌入式注释。 |
REGEXP("Aaaaabbbbc","a*b*c", 1)等于「false」。
注:默认支持所有正则表达式,例如 \d,\w 。