今天,来聊一个数据提取的案例,感受一下新函数的简单便捷,正则的加入真的是一场新的函数革命,函数4.0时代不为过~
▍问题说明
下面是一个结算系统导出的数据,部分案例中不需要的信息已处理,我们的需求非常简单:提取各种支付的金额,如果没有留空!
这个问题比较简单,我们写几种处理方法!
▍思路解法
思路1:通过查找函数找到对应支付方式的位置,再往后截取连续最大数字就是我们要的结果!
下面我们来看一下这个思路,函数如何实现!
=IFNA(-LOOKUP(,-MID($B2,FIND(C$1,$B2)+LEN(C$1),ROW($1:$16))),"")
这个是我们老版本的处理方案,整体来说,不是很难,完全按照思路实现!
下面我们来看一下正则函数如何处理!
思路2:正则提取。有两种思路,一种通过\K处理,\K左边的内容匹配倒是不作为结果返回,第二种使用零宽断言。
听概念有点晦涩难懂,直接写就好!
方案1:\K模式
写法相对比较简单,也是我们日常经常用的一种写法!
下面我们看一下常规则正则用法
=IFERROR(REGEXEXTRACT($B2,"(?<="&C$1&")[\d.]+"),"")
具体什么意思呢,简单来说,就是(?<=内容),他匹配的是一个位置,包含这个内容的位置,然后才匹配后面的数字!内容出现,我们才会匹配数字,也就是所有是这个内容后面跟着的匹配表达式结果!
正则的学习,不太适合记忆的,多练,有疑惑就查一查,又不是考试,能用就行,一般写的多了,查了多了基本也就都懂了,我也是0基础自己看的!
去年和过去两个月比较忙碌,现在教程也更新得差不多了!稍微有点时间。
现在,我们也接一些数据处理、线上1对1和小团培训等,有需要的可以联系!v:yianxss 备注来意,细节再沟通。目前函数、VBA、JSA、Power Query、图表等都可以!线下暂时实在是走不开!后期有时间可以安排周边的线下培训!
OK!今天的内容就到这里!
课程推荐