葛东林 山东省泰安市泰安第一中学
日常工作与办公中,经常需要对一些字符串或者文字分割,以便取出需要的内容,如果手工分割,不但费时费力,而且效率太低,尤其是对于大量需要分割的字符串来说,手工分割几乎不可取,excel中封装了众多函数,其中就有一些用于字符串操作的函数,通过使用excel中的字符串相关的函数可以快速高效地对字符串进行分割,给日常工作需要带来了极大的便利[1][2][3]。
与字符串分割相关的几个函数主要有以几个:LEFT(),RIGHT(),MID(),FIND(),LEN(),IFERROR(), 下 面 对其使用分别介绍[4][5][6]。
LEFT从文本字符串的第一个字符开始返回指定个数的字符。语法
LEFT(text,[num_chars]),该函数语法具有下列参数:
Text必需。包含要提取的字符的文本字符串。
num_chars可选。指定要由LEFT提取的字符的数量。
Num_chars必须大于或等于零。
如果num_chars大于文本长度,则LEFT返回全部文本。
如果省略num_chars,则假定其值为1。
示例:LEFT
图1 left函数使用
如上图,在A1中输入morning单词,在B1中输入=left(A1,4)按回车键,则·B2中得到的结果为morn四个字母。
Excel中的MID函数可以用来从指定的字符串中截取出指定数量字符的函数。MID函数的形式如下:MID(text,start_num,num_chars),其中:、
text是一串我们想从中截取字符的“字符串“。
start_num是一个数字,是指从“字符串”的左边第几位开始截取。
num_chars也是数字,是指从start_num开始,向右截取的长度。
图2 mid函数使用
如图2所示,在A1中输入student单词,在B1中输入=mid(A1,2,3)按回车键,则·B2中得到的结果为tud三个字母。
right函数语法:
right(text,num_chars)
其中text表示要截取的字符串。
num_chars表示截取的字符的数量。
图3 right函数使用
如图3所示,在A1中输入student单词,在B1中输入=right(A1,2)按回车键,则·B2中得到的结果为nt两个字母。
find函数在excel中是一个很常见的函数,此函数是一个查找函数,用于查找某一个字符在单元格中的位置,所以find函数返回一个位置序列号(数字)。FIND函数在excel中很少单独使用,一般会和其他函数结合在一起使用,起到定位作用。find函数语法为:
FIND(find_text,within_text,start_num)
其中:
Find_text表示我们要查找的字符串,
within_text表示要查找的区域,
start_num指定开始进行查找的字符数。比如start_num为2,则从单元格内第2个字符开始查找关键字。如果忽略start_num,则默认为1。
图4 find函数使用
如图4所示,在A1中输入student单词,在B1中输入=FIND("u",A1,2)按回车键,则·B2中得到的结果为3。
len函数是计数字符串中所有字符的个数。
语法:
LEN(text)
LLEN函数语法具有下列参数:
Text必需。要查找其长度的文本。空格将作为字符进行计数。
图5 len函数使用
如图5所示,在A1中输入student单词,在B1中输入=LEN(A1)按回车键,则·B2中得到的结果为7。
下面以一组行政区划字符串为例介绍如何综合运用相关函数分割出用户需要的字符串。如图6所示,表格中为B2列为没有分隔的行政区划,现在需要按照省、市、县、乡为单位把“行政区划”列中的字符串分开,并填写到C、D、E、F列中(图7所示)。
图6 待分割字行政区划符串
图7 分割要求
像这样的工作如果数据少的话可以手工分割,但是如果把全国实际区划从excel表中分割(到乡镇),光数据就有几万条,显然手工分割不可取,这是可以根据数据的实际情况,用excel中的相关函数进行批量分割,从而达到快速分割字符的目的。
分析表中的数据,省级区划中有省、市、区三类;地市级区划中有市、区、盟、州几类;县级区划中有县、市、区、旗几种;而乡镇的区划名称就更多。
如图8所示,在C2单元格里输入:
=LEFT(B2,IFERROR(FIND("省 ",B2,1),FIND("市 ",B2,1)))回车,既可以把北京市取出来,然后把鼠标放在C2单元格右下角,出现黑十字图标时,按住鼠标左键往下拖动到16行,既可以把其他行的省级行政区划取出来。然后把光标定到C17单元格,输入:=LEFT(B17,IFERROR(FIND("区 ",B17,1),FIND("省",B17,1))),同样方法鼠标放到右下角出现黑十字时左键拖动下拉到结束,即可把自治区与剩余省份取出来,如图9所示。
图9 省级区划分割结果
如图7所示,对D2-D6,由于没有地市级划分,不用处理。在D7中输入:=MID(B7,FIND("省",B7,1)+1,(FIND("市",B7,1)-FIND("省",B7,1))),然后鼠标放在该单元格右下角,出现黑十字时按住鼠标左键往下拖动到D16,则即可完成地市区划分割;同样方法,在D17单元格输入:=MID(B17,FIND("区 ",B17,1)+1,(FIND(" 市 ",B17,1)-FIND(" 区 ",B17,1))),同样方法下拉到D19;在D20单元格输入:=MID(B20,FIND("区 ",B20,1)+1,(FIND("盟 ",B20,1)-FIND("区 ",B20,1)))下拉到D21;在D22D单元格中输入:=MID(B22,FIND("省 ",B22,1)+1,(FIND("州 ",B22,1)-FIND("省 ",B22,1))),下拉到D23,便可将地市区划分割出来,如图10所示。
图10 地市级区划分割结果
类似方法,在E2单元格输入:=MID(B2,FIND("市",B2,1)+1,(IFERROR(FIND(" 县 ",B2,1),FIND(" 区 ",B2,1))-FIND("市",B2,1))),下拉到E6。在E7单元格输入:=MID(B7,FIND(" 市 ",B7,1)+1,(IFERROR(FIND(" 区 ",B7,(FIND(" 市 ",B7,1)+1)),IFERROR(FIND(" 县 ",B7,(FIND("市 ",B7,1)+1)),FIND("市 ",B7,(FIND("市 ",B7,1)+1))))-FIND("市 ",B7,1))),下拉到 E16。.在 E17 单元格输入:=MID(B17,FIND("市",B17,1)+1,FIND("区",B17,FIND("市 ",B17,1)+1)-FIND("市 ",B17,1)), 下 拉到E18。在E19单元格输入:=MID(B19,FIND("市",B19,1)+1,FIND("旗 ",B19,FIND("市 ",B19,1)+1)-FIND("市",B19,1))。 在 E20输 入:=MID(B20,FIND("盟 ",B20,1)+1,((FIND("旗 ",B20,1))-FIND("盟 ",B20,1))), 下 拉到 E21。在 E22输入:=MID(B22,FIND("州 ",B22,1)+1,(FIND("县",B22,1))-FIND("州",B22,1)),下拉到E23完成所有县级区划分割。如图11所示。
图11 县级区划分割结果
以F7为例,在该单元格中输入:=RIGHT(B7,LEN(B7)-FIND("区 ",B7,FIND("市 ",B7,1)+1)), 便 可把乡镇区划分离出来,如果输入:=RIGHT(B7,(LEN(B7)-IFERROR(FIND("区 ",B7,(FIND("市 ",B7,1)+1)),IFERROR(FIND("县 ",B7,(FIND("市 ",B7,1)+1)),FIND("市",B7,(FIND("市",B7,1)+1)))))),然后用前面类似的方法下拉到F16,便可以一次全部分割出F7到F16的所有乡镇区划。用类似的办法可以把其他乡镇区划分割出来,最终结果如图12所示。
图12 乡镇区划分割结果
Excel中内置了大量的函数,利用其中部分函数的组合可以从较复杂的字符串中分割出用户需要的字符串或者字符,然后利用Excel的批量处理功能达到对字符串进行快速高效处理的目的。本文详细介绍了excel中LEFT、RIGHT、MID、IFERROR、FIND、LEN等几个常用函数的使用以及如何利用他们从行政区划字符串中把各级行政区划分割开来的方法,读者可以举一反三,通过文章中介绍的处理类似问题的方法解决其他工作中遇到的类似问题,从而达到提高工作效率,减轻工作量的目的。
[1]贾小军,童小素.办公自动化高级应用(Office2010)[M].北京:北京邮电大学出版社,2015.
[2]葛平俱,孙永香.大学计算机实践教程[M].北京:人民邮电出版社,2017.
[3]雷凌.Office2010高级应用案例解读教程[M].北京:北京邮电大学出版社,2015.
[4]黄少玲.探析Excel函数在数据处理中的应用[J].电脑编程技巧与维护,2017,(05):58-60.
[5]王华伟,杨云.Excel函数在中职教务管理中的应用技巧[J].电脑知识与技术,2015,11(25):96-98.
[6]陈顺立.基于EXCEL函数应用的工资管理案例分析与实践[J].电脑学习,2010,(03):121-124.