专栏名称: 秋叶Excel
和秋叶一起学Excel,免费获取Excel模板大全、插件合集!还有Excel真人视频、图文教程,助你轻松掌握Excel函数、图表、透视表……一起成为办公效率达人!
目录
相关文章推荐
Linux就该这么学  ·  微软 WSL 2 将在未来支持 Arch ... ·  9 小时前  
Linux就该这么学  ·  下载 DeepSeek 将判 20 ... ·  昨天  
Linux就该这么学  ·  不转管理就凉了?35岁普通运维人出路在哪里? ·  2 天前  
宛央女子  ·  关于大S,大家到底在意难平什么? ·  3 天前  
Linux就该这么学  ·  线上 Linux CPU 100% 故障排查总结 ·  3 天前  
51好读  ›  专栏  ›  秋叶Excel

哪位Excel高人琢磨出的这3个数据整理技巧,太牛掰了!

秋叶Excel  · 公众号  ·  · 2024-05-27 11:30

正文

本文作者:卫星酱
本文编辑:卫星酱


锵锵~大家好哇!我是爱用 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 Function

Function 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")








请到「今天看啥」查看全文