利用组合函数实现数据的完美提取
作者:王志军
来源:《电脑知识与技术·经验技巧》2015年第11
        最近,在工作中又遇到了从Excel工作表提取特定数据的问题,如图1所示,同事希望在C列提取之间的文字,例如C2“150*200*1000厚福建灰麻侧石(火烧面)提取出福建灰麻侧石。除了手工提取之外,有没有简单一些的方法呢?
        经过分析,发现这些数据比较复杂,不仅字符串的长度不一,而且的位置也不固定,无论是分列,或者Excel 2013所特有的快速填充,都无法实现同事的要求。考虑之后,决定还是利用组合函数解决这一问题,由于公式比较复杂,为便于读者更容易理解,下文通过模拟的形式分步显示公式执行的效果:
        选择H2单元格,在编辑栏输入公式“=LEFTSUBSTITUTEMIDC2.FIND""C2+19),""REPT""9)),9字符串截取指定字符后的文字)FIND函数主要是对C2单元格中的进行定位并确定其位置,“FIND""C2返回的结果是13,由于我们是需要提取之间的文字,因此这里“+1”,表示从后面的字符开始,返回的结果是14,模拟效果如图2所示。
        MID函数的作用是从C2单元格截取出指定数字的字符,“+1”表示从之后的字符开始截取,“9”这个数字应根据实际情况决定,大一些可以避免提取数据缺失的尴尬,这一步骤可以提取出福建灰麻侧石(火烧的结果。
        REPT函数可以根据定义的次数重复显示文本,相当于复制文本,本例是复制空格;SUBSTITUTE函数用来替换指定的文本,本例是使用空格删除其中的,之所以设置为“9”主要是为了统一字符串的长度,这一步骤可以获得福建灰麻侧石火烧的效果,其中的空格就是替换之后的后遗症,模拟效果如图3所示,可以看到这里的空格字符和,由于提取数据并不涉及,因此公式中并未对进行处理,当然这不会影响最终的提取效果。
        由于我们只是需要提取之间的字符,因此这些空格存在与否并不重要,最后使用LEFT函数提取指定字符即可,从第一个字符开始返回指定个数的字符,这里设置为“9”,主要是取决于C列的实际情况,请将其设置为之间的最长字符数量,否则会出现字符缺失的情况。
        公式执行之后,可以从C2单元格提取出福建灰麻侧石的结果,向下拖拽或双击填充柄,
最终可以看到图2所示的效果。如果不需要保留多余的空格字符,使用替换的方法删除即可,但可能需要辅助列才能实现。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。