REGEXP函数,提取固定内容之后的连续数字!

职场   职场   2024-12-02 09:09   河北  


Excel情报局

职场联盟Excel

生产挖掘分享Excel基础技能
Super Excel Man
用1%的Excel基础搞定99%的职场问题
做一个超级实用的Excel公众号
Excel是门手艺玩转需要勇气
数万Excel爱好者聚集地


    


大家好,今天我们来解决这样的一个问题:如何提取固定内容之后的连续数字?我们用正则表达式函数REGEXP函数来看看是不是更简单一些!


如下图所示
A列有一列混合内容,每个单元格是由多组“水果名称:数量”构成,并且每组“水果名称:数量”之间用分号“;”连接。每个单元格中的水果名称可能有相同的。我们想要根据C列指定的水果名称在D列及之后列得到A列区域中所有的销量数据。



REGEXP函数是基于正则表达式,对复杂文本进行匹配、提取和替换的函数。


基本语法结构

REGEXP(原始字符串,正则表达式,[匹配模式],[替换内容])


匹配模式是可选项,0或忽略表示提取,1表示判断是否包含,2表示替换。

替换内容是可选项,仅在匹配模式为2时有效,用来替换匹配的内容。


首先我们使用TEXTJOIN函数

=TEXTJOIN(";",,A2:A4)


用TEXTJOIN函数,用分隔符号分号";",省略第二参即忽略空值单元格后将A2:A4区域数据合并起来。


整合成一个区域有利于后面公式的运用。



然后用REGEXP函数
=REGEXP(TEXTJOIN(";",,A2:A4),"(?<="&C2&":)\d+")


以TEXTJOIN函数的数组溢出作为REGEXP函数的第一参数,即需要提取的数据源。


正则表达式 (?<=exp) 表示查找exp后面的内容。所以用(?<="&C2&":)来代表“苹果:”之后的内容。


正则表达式\d表示1个或多个数字。


正则表达式\d+表示1个或多个连续的数字。


连在一起(?<="&C2&":)\d+,表示“苹果:”之后的连续数字。


所以以此作为REGEXP函数的第二参数,提取出合并后区域内的“苹果:”之后的连续数字销量。



由于REGEXP函数返回的数字是文本格式,SUM求和不能得到计算结果

=REGEXP(TEXTJOIN(";",,A2:A4),"(?<="&C2&":)\d+")*1


所以在REGEXP函数的基础之上乘以数字1,即可将文本型数值转换为真正的数值。



其实重复学习Excel,刚开始是挺难的,但重复的次数多了总会成为习惯,先从坚持一星期开始,你会爱上那种脑子又累,又无限充实的感觉。回顾关键内容,善用图片表达,学会建立联系,拓展深度广度,浓缩关键概念,应用到行动中,善于归纳总结,尝试进行分享。


 

知识点精彩超链接点击阅读

VLOOKUP的新搭档HSTACK函数,实现逆向查询
一个小小的VSTACK函数,就能实现多工作表合并
VLOOKUP最新用法,提取混合内容中的手机号
带超链接的VLOOKUP函数,让查询体验起飞
最新方法来了:按指定的次数重复数据
合并工作表,用两个函数就搞定啦
比VLOOKUP还好用的多条件查找
点击谁就筛选谁,实现筛选自动化
以“数字”作为分隔符,进行分列
点击谁,就对谁自动条件求和
更多实用内容请在号内历史文章搜索 

Excel情报局
Excel表格爱好者,分享一些日常的积累。做一个职场人都能看懂的表格技巧公众号。多学一个Excel小技巧,会让你在职场中多一分底气与自信。
 最新文章