Excel中如何提取指定字符后的内容?
如下图所示,每行文本字符串,是由各种文本信息连接起来的,且各种文本信息的字符数也不是固定的,它们之间是由一个或多个“-”符号进行连接,现在要求提取最后一个“-”后面的内容。应该怎么提取呢?
对于提取特定的文本字符,很多人一上来,先入为主地会想到用各种文本提取类函数。
但是,对于像上图中这种提取固定位置处的内容,最快捷的方法,就是用快速填充法。
方法一:快速填充法
首先,我们把第一行字符串里最后一个“-”后面的内容,复制出来。
然后,保证选中这个单元格的前提下,按下 快捷键Ctrl+E,进行快速填充 ,看,结果就出来了。每行文本字符串最后一个“-”后面的内容,都自动地提取了出来。
启用快速填充,还可以在选中填充起始单元格,在 【数据】 选项卡上单击 【快速填充】 命令按钮:
快速填充法可以让一些不太复杂的字符串处理工作变得非常简单,像上面,通过快速填充提取最后一个“-”后面的内容,用它实现了字符串分列的功能。
快速填充法,可以根据分隔符进行拆分。与【分列】功能类似,如果原始数据中包含了分隔符号, 执行快速填充后,Excel会智能地根据分隔符号的位置,提取其中相应部分进行拆分 。
比如,在上面的案例中,当在B1单元格输入“逢源路宝源正街”也就是A1单元格中“563090-xaazr-菁纯面霜 2020/11/27-栩翔-逢源路宝源正街”以分隔符间隔出来的最后部分的内容,执行向下快速填充后, 其他单元格就会根据其中分隔符的位置来进行判断,都提取相应的分隔符最后部分的内容生成填充。
使用快速填充法,虽然可以一定程度上代替了文本提取函数的功能,但是, 如果原始数据区域中的数据发生变化,快速填充的结果是并不能随之自动更新 。所以,还是需要掌握如何利用文本函数来进行字符的提取。
方法二:用文本提取函数
在B1单元格输入以下公式,并将公式向下复制填充到B10单元格。
=TRIM(RIGHT(SUBSTITUTE(A1,"-",REPT(" ",99)),99))
REPT函数的作用,是按照给定的次数来重复文本。公式中,REPT(" ",99)就是将“" "”(空格)重复99次,返回由99个空格组成的字符串。
通过SUBSTITUTE函数将源字符串中的分隔符“-”替换成99个空格 (注:不一定是99,可以是大于源字符串长度的任意值) ,拉大各个字段间的距离。
然后再通过RIGHT函数从返回的字符串中,从最右边开始截取,截取99个字符长度的字符串。这个字符串,当然就包括了源字符串中最后一个“-”后面的内容以及N多个空格。
最后,使用TRIM函数清除字符串多余的空格,得到了源最后一个分隔符“-”后面的内容。
还有一种方法,同样也是用文本提取函数来进行提取,但是,公式和上面的会有所不同:
在B1单元格输入以下公式,并将公式向下复制填充到B10单元格。
=RIGHT(A1,LEN(A1)-MATCH(2,FIND("-",MID(A1,ROW($1:$99),1)),1))
公式中, MID(A1,ROW($1:$99),1)部分,就是通过MID函数依次提取出源字符串中的单个字符;利用FIND函数在返回的字符串中,查找“-”分隔符,会返回包含N个错误值及N个数值1的数组;在这个数组里,通过MATCH函数模糊查找2 (可以是大于数值1的任意值) ,得到最 后一个分隔符“-”所在的位置 。
之后,再利用LEN函数算出整个源字符串的文本长度,减去最后一个分隔符“-”所在的位置,得到的就是 最后一个分隔符“-”后内容的文本长度 。
最后,再通过RIGHT函数,从最右边开始提取上一步计算出来的文本长度的字符,即得到了最终结果。
为了方便大家学习,我把相关的课程和练习整理至下方,有需要的自取即可。