美文网首页
如何将混合了中英文及不同数量空格的文本,快速拆分成多列

如何将混合了中英文及不同数量空格的文本,快速拆分成多列

作者: 甘彬 | 来源:发表于2019-08-08 10:20 被阅读0次

    前段时间学员小D咨询到:有什么简便的方法,可以将将混合了中英文及不同数量空格的文本,快速拆分成多列?下图所示是小D的问题:

    小D需要将这列数据拆分成如下图所示的4列数据:

    刚一开始看到这个表格的时候,我说用“数据-分列”用空格作为分隔符来拆分就可以了吧。仔细一想,不行,前面的英文单词不一定是一个词,有些两个词中间也有空格,每一列的长度都是不固定的。

    我们一起来思考一下,这个问题的解决方案。我们在处理Excel问题的时候,一定要分析数据的规律。

    比如这个案例中,我们可以观察到,前面的英文单词、词类和中文解释中间都是一个空格间隔的,而中文解释和英文解释中间的空格都是2个空格以上的。找到了特定的规律之后,我们就可以分段来提取了。

    提取第4部分

    我们可以先把最后一部分的英文解释先提取出来。这里我们需要先利用FIND函数查询2个空格的位置,再用MID函数截取出来指定位置和指定长度的字符。我们先来看看这相关函数的语法:

    查询一个字符串在一个单元格的起始位置:FIND(要找的字符串,包含查询字符串的单元格)

    从中间取字符:MID(文本,从第几位开始取,取多少位)

    清除文本首尾空格:TRIM(文本)

    组合的函数:=TRIM(MID(A1,FIND("  ",A1),200))

    A1就是要拆分的列的第一个文本所在的单元格地址。最里面一层函数通过FIND函数查找两个空格所在的起始位置,用这个起始位置作为MID函数的第二个参数,向后截取长度为200的字符。因为不确定后面的英文解释有多少个字符,所以输入了一个比较大的数字。最后再用TRIM清除截取出来的文本的首尾空格。

    提取第3部分

    接着再来提取第3部分:中文解释。中文解释可以用MID函数从.所在的下一个字符开始,原始文档中的中文解释不超过10个字,所以截取的长度我直接输入了10,如果实际数据无法确定多少个字符,可以用两个空格的位置减去圆点的位置来就计算。

    组合函数:=TRIM(MID(A1,FIND(".",A1)+1,10))

    提取第2部分

    接着来提取第2部分:词类。由于前面的英文单词有些是一个词,有些是两个词,此类的长度也不确定,我想到的方法是查找最后一个空格的位置,相关的函数包括:

    可以按照定义的次数重复显示文本:REPT(文本,重复的次数)

    在某一文本字符串中替换指定的文本:SUBSTITUTE(文本,旧字符,新字符)

    左取字符:LEFT(文本,取多少位)

    右取字符:RIGHT(文本,取多少位)

    组合函数:TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND(".",A1))," ",REPT(" ",99)),99))

    先用LEFT函数将从最左侧截取到圆点的位置的所有字符,比如这段字符:lateral line n. 侧线                      A line of pressure-sensitive cells on the sides of bony fish.

    就得到了这个部分的文本lateral line n.

    接着用SUBSTITUTE函数将每个单词中间的一个空格替换成REPT形成的99个空格,再用RIGHT函数从右侧取出99个字符,最后用TRIM清除首尾空格。

    提取第1部分

    最后来提取第1部分:英文单词,使用了LEFT函数从文本的左侧提取,提取的长度用小圆点的位置减去了词类的长度,最后用TRIM清除首尾空格。

    计算文本长度:LEN(文本)

    组合函数:TRIM(LEFT(A1,FIND(".",A1)-LEN(C1)))

    到此4列就拆分完毕了。如果对这个案例感兴趣,可以在"快乐享用Office"公众号后台输入关键字"拆分列",领取作业文件。最后汇总一下本文中使用到的相关函数:

    查询一个字符串在一个单元格的起始位置:FIND(要找的字符串,包含查询字符串的单元格)

    从中间取字符:MID(文本,从第几位开始取,取多少位)

    左取字符:LEFT(文本,取多少位)

    右取字符:RIGHT(文本,取多少位)

    清除文本首尾空格:TRIM(文本)

    可以按照定义的次数重复显示文本:REPT(文本,重复的次数)

    在某一文本字符串中替换指定的文本:SUBSTITUTE(文本,旧字符,新字符)

    计算文本长度:LEN(文本)

    相关文章

      网友评论

          本文标题:如何将混合了中英文及不同数量空格的文本,快速拆分成多列

          本文链接:https://www.haomeiwen.com/subject/mqptjctx.html