首页 理论教育 字符串函数的使用:15个实用技巧

字符串函数的使用:15个实用技巧

时间:2023-10-27 理论教育 版权反馈
【摘要】:字符串操作是指对文本类单元格数据的运算,主要包括提取(或截取)、计算长度、合并、转换、替换、检索等几个方面。图15-58LEFT( )、RIGHT( )和MID( )函数示例从身份证号码中提取出生日期数据的常用函数算法为“=MID”。当没有找到字符串时,函数通常会报错。

字符串函数的使用:15个实用技巧

字符串操作是指对文本类单元格数据的运算,主要包括提取(或截取)、计算长度、合并、转换、替换、检索等几个方面。

1.LEFT( )、LEFTB( )函数,RIGHT( )、RIGHTB( )函数,MID( )、MIDB( )函数

用途:LEFT( )、RIGHT( )和MID( )函数用于从文本(字符串)的左侧、右侧或中间位置提取若干字符。支持双字节字符,即每个双字节字符按1个字符宽度计算。而LEFTB( )、RIGHTB( )和MIDB( )函数按字节计算字符宽度。

用法:LEFT(text, [num_chars]),LEFTB(text, [num_bytes]);RIGHT(text, [num_chars]),RIGHTB(text, [num_bytes]);MID(text, start_num, num_chars),MIDB(text, start_num, num_bytes)

说明:

所有的文本位置、长度计算都从1开始计数,因此“=MID(B3, 5, 3)”即从B3单元格的字符串的第5个字符开始提取3个字符长度。

图15-58 LEFT( )、RIGHT( )和MID( )函数示例

身份证号码中提取出生日期数据的常用函数算法为“=MID(A2, 7, 8)”(假设身份证号码存放在A2单元格)。输入“=MID(A2, 7, 4)& "年"&MID(A2, 11, 2)&"月"&MID(A2, 13, 2)&"日"”后,Excel将对A2单元格的身份证号码从第7位开始截取4位数字以获得出生日期中的“年”,依此类推,再截取数字获得“月”和“日”,最后拼接出一个格式为“yyyy年mm月dd日”的字串。拼接出来的结果被存放到某单元格后,一般默认其数据格式为“常规”,可以按照日期型数据方法进行计算。

=LEFT("葡萄美酒夜光杯",2) // 返回 "葡萄"

=MID("葡萄美酒夜光杯",3,2) // 返回 "美酒"

2.LEN( )、LENB( )函数

用途:用于计算一个文本(字符串)的长度。LEN( )函数返回文本(字符串)中的字符个数。LENB( )函数返回文本(字符串)中用于代表字符的字节数。

用法:LEN(text); LENB(text)

说明:

这两个函数通常用于计算字符串长度。如果在中英文结合的字符串中提取中文或英文字串,代码如下:

图15-59 LEN( )、LENB( )函数示例

=LEN("北京Beijing") // 返回 9

=LENB("北京Beijing") // 返回 11

=LEFT("北京Beijing", LENB("北京Beijing")-LEN("北京Beijing")) // 返回 "北京"

3.FIND( )、FINDB( )函数,SEARCH( )、SEARCHB( )函数

用途:用于在一个单元格中查找特定的字符串,并返回位置。FIND( )与SEARCH( )函数支持双字节。FINDB( )函数与SEARCHB( )函数返回按字节数计算的位置。SEARCH( )函数支持通配符且对大小写不敏感;相反地,FIND( )函数不支持通配符且对大小写敏感。当没有找到字符串时,函数通常会报错。因此,为了避免报错可以用ISNUMBER( )函数返回“TRUE”或者“FALSE”进行区分。

用法:FIND(find_text, within_text, [start_num]),FINDB(find_text, within_text, [start_num]);SEARCH(find_text, within_text, [start_num]),SEARCHB(find_text, within_text, [start_num])

图15-60 FIND( )、FINDB( )函数,SEARCH( )、SEARCHB( )函数示例(www.xing528.com)

4.REPLACE( )、REPLACEB( )和SUBSTITUTE( )函数

用途:用于替换适当位置的文本。基于位置替换文本,使用REPLACE( )函数;基于匹配替换文本,使用SUBSTITUTE( )函数。

用法:REPLACE(old_text, start_num, num_chars, new_text); REPLACEB(old_text, start_num, num_bytes, new_text); SUBSTITUTE(text, old_text, new_text, [instance_num])

图15-61 REPLACE( )、SUBSTITUTE( )函数示例

=REPLACE("020-87113934",9,4,"****") // 返回 "020-8711****"

=SUBSTITUTE("##Red##","#","") // 返回 "Red"

5.CODE( )、CHAR( )函数

用途:CODE( )函数用于获得字符的ASCII码或10进制内码值。而CHAR( )函数用于利用字符的ASCII码或10进制内码值查询字符本身。

用法:CODE(text); CHAR(number)

说明:

图15-62 CODE( )、CHAR( )函数示例

如果参数“text”为多个字符,则“CODE(text)”返回第一个字符的ASCII码或10进制内码值。

显然,获得的汉字内码是十进制的GBK编码。而汉字内码一般用十六进制数表示,例如,“中” 字的十进制内码为“54992”,转换为十六进制编码即为“D6D0”。

6.TRIM( )、CLEAN( )函数

用途:TRIM( )函数用于清除文本中多余的空格,但单词之间的单个空格除外。CLEAN( )函数用于清除文本中的回车换行符或其他非打印字符。

用法:TRIM(text); CLEAN(text)

图15-63 TRIM( )、CLEAN( )函数示例

7.CONCAT( )、TEXTJOIN( )和CONCATENATE( )函数

用途:CONCAT( )函数用于将多个范围或字符串中的文本组合起来;CONCATENATE( )函数(其中一个文本函数)用于将两个或多个文本字符串连接为一个字符串(注意:在Excel 2016、Excel Mobile和Excel网页版中,此函数已被替换为CONCAT( )函数);TEXTJOIN( )函数用于将多个区域或字符串中的文本组合起来,并包括在要被组合的各文本值之间指定分隔符

用法:CONCAT(text1, [text2], ...); TEXTJOIN(分隔符, ignore_empty, text1, [text2], ...); CONCATENATE(text1, [text2], ...)

实 用 技 巧

一般而言,拼接字符串,直接使用运算符“&”最为简洁。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈