万一您身边的朋友用得着呢? 各位朋友早上好,欢迎打开小菜的公众号,截止今日小菜已分享1000+篇经验之谈,可以文章编号或关键词进行搜索。 每日一图完毕,以下才是今天的正式内容…… 摘要:本文介绍Mid+Find函数提取单元格信息的一个案例。 关键词:Excel2019;Mid+Find函数;If函数;Iferror函数;提取数据;两个相同分隔字符;操作难度***** 应用场景某天小菜和一个教师朋友交流工作中的一个案例,再次刷新了对不规则的单元格数据的认识; 您若觉得小菜是夸张的话请直接先看源数据: 图1:源数据 您看班级名称列为了看得清楚(估计是老板的要求),包含了授课地点、班级、教师姓名、授课时间等多个信息,完全不符合数据库一个字段只有一个信息的基本原则! 好在,里面的分隔符,也就是中文括号还带有规律性,对于这样不规则但有有点规律的数据,如何进行转换以便用于后期统计呢? 解决路径需要再次请出咱们的Mid+Find函数组合,根据大括号出现的规律来进行提取了,当然需要辅以If函数和Iferror函数这两个常用的利器; 1-提取第一个大括号信息第一个大括号包含的是上课地点信息,提取相对简单,用公式 =MID(B2,1,FIND(")",B2)) 小菜提示:公式含义是从第1个字符开始提取,截止到第1个右括号位置为止。 向下填充可得: 图2:提取上课地点 2-以第二个大括号为分界提取信息在第1个和第2个大括号之间的信息是班级信息,公式写得好像有点复杂,原理都是利用Find函数来定位需要提取的位置: =IFERROR(MID(B2,FIND(")",B2)+1,FIND("(",B2,5)-FIND(")",B2)-1),"停课待分班") 小菜提示:开始提取位数+1和截止提取位数-1,都是为了精准获取所需提取字符个数,实践中可以分别运行两个find函数,测试需要加减。 填充结果如下: 图3:提取班级信息 接下来难点来了,Find函数怎么定位第2个大括号呢? 小菜还真认真查阅了一下Find函数的语法,咱们忽略的第三参数是默认从第1位开始搜索特定字符,本例只需要从第6个字符开始查找,就都能避开第一个大括号的干扰; 公式这样写: =IFERROR(MID(B2,FIND("(",B2,6)+1,FIND(")",B2,6)-FIND("(",B2,6)-1),"") 填充后得到如下结果: 图4:提取教师姓名 最后来到上课时间信息,都是以“周”字符为标识规律,所以公式也比较好写: =IFERROR(MID(B2,FIND("周",B2),LEN(B2)-FIND("周",B2)+1),"停课") 小菜提示:提取多少位字符借助了整个单元格字符个数减去周出现的位数+1来实现,公式看着长,思路很清晰。 填充得到如下结果: 图5:提取授课时间 有小伙伴问了,咱们费这半天功夫写公式提取出来有什么用呢,透视表请出来啊: 图6:数据透视 需要统计哪些信息,随手可得了,比如上表哪些老师在那个开课点还有多少课程一目了然,双击就可以查阅明细! 今天咱们主要复习了Mid+Find函数这个套路,眼尖的朋友还看到小菜统计了上课时长这个信息,您知道怎么提取到的吗? 图7:统计上课时长 总结思考今天的小栗子再次说明如果数据表没有规则填写,后期会造成很多麻烦,好在还有一些技术手段来处理,不过在填写的时候一步到位就更好了(虽然老板往往不这样认为……) 参考文献在文末,走过路过别错过…… 参考文献 关于Mid+Find函数的应用案例,还可以看看这些经验之谈 《菜鸟记1055-分享一个自动提醒下月生日的案例-来自工会工作朋友的问题》 《菜鸟记1030-提取单元格信息的方法有很多,能解决问题的就是好办法》 《菜鸟记655-单元格中用人工换行符填写了多个数据,如何提取?》 《菜鸟记633-怎么统计这个难倒99.99%表哥表妹的不规则表格?》 |
|