Excel 数据整理技巧之提取指定字符

锵锵~ 大家好哇!我是爱用 Excel 解决工作问题的卫星酱~

有关数据分析的内容,卫某我分享过很多回啦,关于提取数据的技巧,更是涉及到两次!

没办法,毕竟经常要用到~

鉴于前两次的文章只是提及,而没有详细讲解过数据提取在工作中的实际运用;

今天我就来一期专题解答,给大家介绍 Excel 实战之 —— 提取指定字符

看完本篇,相信大家下次再碰见这类问题,都能更高效快捷地完成~

我有个朋友小 B,她开了一家网店,平时用 Excel 统计商品售卖情况。

这是她从网页导出的部分数据:

为了方便分析哪种款式最受欢迎,需要对上述数据进行清洗,也就是提取出「三层 70」这一部分的有效内容。

TEXTBEFORE 和 TEXTAFTER 函数

使用公式定位「漆」字之后到「c」之前的位置:

=TEXTBEFORE(TEXTAFTER(B2,"漆"),"c")

公式简单又好理解。

但只有 Office 365 和新版 WPS 才能使用……

MID 函数

=MID(B2,FIND("无漆"B2)+2,SEARCH("cm"B2)-FIND("无漆"B2)-2)

公式解析:

=MID(B2,❶,❷)

❶ FIND ("无漆",B2)+2

先用 FIND 函数找到「无漆」的位置,并向右偏移 2 个字符,也就是跳过「无漆」这个词本身,所以 MID 函数从❶的位置开始提取;

❷ SEARCH ("cm",B2)-FIND ("无漆",B2)-2

这里我们整理一下,就是 SEARCH ("cm",B2)-❶,也就是用 SEARCH 找到 cm 的位置,计算出「无漆」之后到「cm」之前的字符数。

这个公式虽然比较复杂,但本质上仍然是「提取 X 之后,Y 之前」的思路~

VBA 自定义函数

记不住旧函数的公式也没事,这里另有出路~

按下 Alt + F11 打开 VBA 编辑器。

在 VBA 编辑器中,右击 VBAProject,选择【 插入 】-【模块】。

在新模块窗口中,复制并粘贴以下代码:

Function TB(text As String, search As String) As String    ' 找到search字符串在text中的位置    Dim pos As Integer    pos = InStr(1, text, search, vbTextCompare)    ' 如果找到了,返回search之前的所有文本    If pos  0 Then        TB = Left(text, pos - 1)    Else        ' 如果没有找到search,返回空字符串        TB = ""    End IfEnd FunctionFunction TA(text As String, search As String) As String    ' 找到search字符串在text中的位置    Dim pos As Integer    pos = InStr(1, text, search, vbTextCompare)    ' 如果找到了,返回search之后的所有文本    If pos  0 Then        TA = Mid(text, pos + Len(search))    Else        ' 如果没有找到search,返回空字符串        TA = ""    End IfEnd Function

关闭 VBA 编辑器,回到 Excel 界面。

然后咱们就能用方法一中的公式了

=TB(TA(B2"漆")"c")

好了,今天分享了三种字符提取的实战运用~

技巧学得再多,能在工作中投入使用才是有效技巧哦!

本文来自微信公众号:秋叶 Excel (ID:excel100),作者:卫星酱

广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,IT之家所有文章均包含本声明。

文章价值:
人打分
有价值还可以无价值
置顶评论
    热门评论
      文章发布时间太久,仅显示热门评论
      全部评论
      请登录后查看评论
        取消发送
        软媒旗下人气应用

        如点击保存海报无效,请长按图片进行保存分享