20.8.1 LEFT( )函数
LEFT函数用于从文本左侧起提取指定个数的字符。
语法:LEFT(text,[num_chars])
参数说明:
text:表示要从中提取字符的文本。
num_chars:表示要提取的字符个数。
如图20‑15所示,在B2单元格输入以下公式,即可提取A列单元格中内容左侧的3个字符。
=LEFT(A2,3)
图20-15 利用LEFT函数提取左侧指定个数文本
20.8.2 RIGHT( )函数
RIGHT函数用于从文本右侧起提取指定个数的字符。
语法:RIGHT(text,[num_chars])
参数说明:
text:表示要从中提取字符的文本。
num_chars:表示要提取的字符个数。
如图20‑16所示,在B2单元格输入公式,即可提取单元格中内容右侧的8个字符。
=RIGHT(A2,8)
图20-16 利用RIGHT函数提取右侧指定个数的字符
【示例-1】图20‑17展示的某公司上班打卡机的数据,数据后4位为时间,例如A2单元格中的后4位为“0901”,其表示9点1分。公司规定超过9点为迟到。现在B2单元格中输入以下公式,并复制到B12单元格,即可判断员工是否迟到。
=IF(--RIGHT(A2,3)>900,"迟到","")
该函数中RIGHT(A2,3)返回的结果为文本型数字,为了能正确判断,需要将使用以文本型数字转成数值型数字,此处采用加双负号(--)的形式将其转换。
图20-17 判断员工是否迟到
20.8.3 MID( )函数
MID函数用于从文本串指定位置提取指定个数的字符。
语法:MID(text,start_num,num_chars)
参数说明:
text:要提取字符的字符串。
start_num:指定文本中要提取的第一个字符的位置。
num_chars:提取字符的个数。
【示例-1】图20‑18展示的是从某财务软件中提取的科目信息,A列是银行存款科目连接开户行的信息,在B2单元格输入以下公式,复制到B6单元格,可单独提取A列中的开户行。
=MID(A2,6,20)
该MID函数的第三个参数为20,是笔者任意输入的。因笔者目测开户行字符不会超过20个字符。
20.8. MID( )函数
MID函数用于从文本串指定位置提取指定个数的字符。
语法:MID(text,start_num,num_chars)
参数说明:
text:要提取字符的字符串。
start_num:指定文本中要提取的第一个字符的位置。
num_chars:提取字符的个数。
【示例-1】图20‑18展示的是从某财务软件中提取的科目信息,A列是银行存款科目连接开户行的信息,在B2单元格输入以下公式,复制到B6单元格,可单独提取A列中的开户行。
=MID(A2,6,20)
该MID函数的第三个参数为20,是笔者任意输入的。因笔者目测开户行字符不会超过20个字符。
图20-18 提取开户行
【示例-2】图20‑19展示的是连串银行卡号,为了方便浏览,现需要每四位加空格显示账号,在B2输入以下公式,可达到上述要求。
=MID(A2,1,4)&""&MID(A2,5,4)&""&MID(A2,9,4)&""&MID(A2,13,4)
图20-19 账号用空格区隔显示
【示例-3】图20‑20展示的是某产品规格,该规格格式为数值加&符号连接。
在B2输入以下公式,可计算产品体积。
=LEFT(A2,4)*MID(A2,6,4)*RIGHT(A2,4)
LEFT、MID、RIGHT返回的结果都为文本型数字,但文本型数字与文本型数字进行四则运算可以正确的计算,并且将返回的结果也是数值型数字(单元格格式仍显示为文本格式),所以不用使用加0、加双负号(--)等方式将文本型数字转成数值型数字。
图20-20 计算产品体积
【示例-4】图20‑21展示是某些员工身份信息,现要求根据B列的身份证号码,提取对应的出生日期。
我国现行居民身份证号码是由18位数字组成的,数字代码含义如表20‑1所示
在C2单元格输入以下公式,向下复制到C8单元格,可提取身份证持有人的出生日期。
=MID(B2,7,8)
由于公式结果为文本型字符串,并非真正的日期,如果需要进行日期计算,可借助DATE函数构造标准的日期格式,在D2输入以下公式,可转成真正的日期。
=DATE(LEFT(C2,4),MID(C2,5,2),RIGHT(C2,2))
先利用LEFT、MID、RIGHT函数提取年、月、日的数字,然后再利用DATE函数组合年月日值,从而形成标准日期格式。
图20-21 从身份证号码中提取出生日期
图20‑22所示,使用以下公式,可提取身份证中性别信息。
=IF(MOD(MID(B2,17,1),2),"男","女")
首先利用MID函数从身份证的17位开始,提取长度为1的字符串,然后利用MOD函数计算这个数字与2相除的余数,结果为1或0,再利用IF函数提取性别,即如果MOD的余数为1,返回“男”,否则返回“女”。
图20-22 从身份证号码中提取性别
用户若需要对单字节字符和双字节字符进行处理,可分别使用对应LEFTB函数、RIGHTB函数和MIDB函数,它们的函数语法与原函数相似,与原函数差异为LEFTB、RIGHTB和MIDB函数针对字节来处理。