专栏名称: Excel之家ExcelHome
excel技巧原创教程每日推送,excel表格职场模板干货仓库,图文/视频/动画等多种教学方式分享excel操作技巧教程/excel函数公式教程/excel数据透视表教程/excel图表教程/Word教程,助您轻松提高办公效率!
目录
相关文章推荐
Excel之家ExcelHome  ·  数据查询用处多,多干工作多背锅 ·  4 天前  
Excel之家ExcelHome  ·  这个函数学得好,年薪三万还嫌少 ·  4 天前  
Excel之家ExcelHome  ·  五分钟,学会三个常用函数公式 ·  5 天前  
完美Excel  ·  卷桥河的深秋 ·  5 天前  
完美Excel  ·  VBA:给溢出单元格区域应用格式 ·  1 周前  
51好读  ›  专栏  ›  Excel之家ExcelHome

这个函数学得好,年薪三万还嫌少

Excel之家ExcelHome  · 公众号  · Excel  · 2024-12-01 06:45

正文

REGEXP函数函数是WPS表格中的特有函数之一,能够根据正则表达式对字符串进行提取、判断或替换。函数语法为:
=REGEXP(要处理的字符串,正则表达式,[匹配模式],[替换内容])

如下图,希望从A列混合内容中提取出电话和姓名
B2单元格输入以下公式,向下复制,提取出电话号码:
=REGEXP(A2,"[0-9]+")
公式中的 [0-9]+,表示连续数字。

如下图,希望提取出A列单元格中的费用总金额。
B2单元格公式输入以下公式,向下复制。
=SUM(1*REGEXP(A2,"[0-9.]+(?=元)"))

公式中的[0-9.]+ 表示包含小数点的连续数字,(?=元)表示字符“元”之前的内容。

如下图,希望从A列混合内容中,提取首个中文字符之前的全部内容。
B2单元格输入以下公式,向下复制。
=REGEXP(A2,"^[^一-龟]+")
公式中的第一个^表示字符开头。中括号中的^表示“非”,[^一-龟] 表示连续的非中文字符。
^[^一-龟]+,即表示字符开头部分的连续非中文字符。

如下图,希望根据A列中的混合内容计算体积。
B2单元格输入以下公式,向下复制。
=PRODUCT(1*REGEXP(A2,"[\d]+"))
公式中的[\d]+,作用等同于[0-9]+,表示0-9的连续数字。
REGEXP将各个连续数字依次提取出之后,先用乘以1的方式转换为数值,再使用PRODUCT函数计算各个数值的乘积。

如下图,希望提取A列混合内容中括号内的颜色信息。
B2单元格输入以下公式,向下复制。
=REGEXP(A2,"(.*)")

公式中的小数点.表示任意字符,星号*是量词,表示前面的点号.可以出现零次或多次。(.*)表示全角括号及括号内的内容。

如需仅提取括号内的颜色,可以使用以下公式:

=REGEXP(A2,"(?<=()...")

用半角括号包含的?<=(部分,表示要提取字符左括号后的内容。
三个小数点,表示提取三个字符。(?<=()...就是提取左括号后的三个字符
如果括号内的颜色字符数不固定,可以使用以下公式提取括号内的字符:
=REGEXP(A2,"(?<=().*(?=))")

(?<=()部分表示提取左括号后的内容,.*表示不固定的字符数,(?=))部分表示提取右括号前的内容。

如下图所示,希望从A列混合内容中,按支付方式提取出对应的金额。
B2输入以下公式:
=IFERROR(REGEXP(A2:A5,B1:D1&"\K[0-9.]+"),)

公式中的A2:A5部分是要处理的单元格。

B1:D1&"\K[0-9.]+"部分,用B1:D1单元格区域中的支付方式与"\K[0-9.]+"连接,表示分别提取以B1:D1开头的连续数字。

最后用IFERROR函数,屏蔽A列没有对应支付方式时返回的错误值。

也可以使用以下公式,

=IFERROR(REGEXP(A2:A5,"(?<="&B1:D1&")[0-9.]+"),)

好了,今天的内容就是这些吧,祝各位一天好心情~


图文制作:祝洪忠

推荐文章
Excel之家ExcelHome  ·  数据查询用处多,多干工作多背锅
4 天前
Excel之家ExcelHome  ·  这个函数学得好,年薪三万还嫌少
4 天前
Excel之家ExcelHome  ·  五分钟,学会三个常用函数公式
5 天前
完美Excel  ·  卷桥河的深秋
5 天前
完美Excel  ·  VBA:给溢出单元格区域应用格式
1 周前
THLDL领导力  ·  与客户打交道的忌讳,你知道吗?
8 年前
知心  · 
8 年前
AL频道  ·  试驾新奥迪Q7,鱼汤炖熊掌?
8 年前
利维坦  ·  “天堂之门”自杀事件
7 年前