在excel办公中,一个单元格里既有文字又有数字,如果想把里面的数字提取出来单独统计,以前需要写很复杂的数组公式。现在有了REGEXP函数,一个公式就能搞定。
一、场景案例
如下图所示,A列是“姓名+金额”的混合信息,比如“张三128.5”“李四200”。需要在B列提取出其中的金额数字并进行求和汇总。
二、操作步骤
1、在B2单元格输入以下公式:
=SUM(REGEXP(A2,"[0-9.]+")*1)
2、按回车确认,金额数字被提取出来。
3、双击B2右下角填充柄,公式应用到所有行。

三、公式拆解
| 部分 | 含义 |
|---|---|
| REGEXP(A2,”[0-9.]+”) | 从A2中提取所有连续的数字和小数点 |
| *1 | 将提取出的文本数字转换为数值 |
| SUM(…) | 如果提取出多个数字,对它们求和 |
[0-9.]+ 是正则表达式:方括号表示匹配范围内的任意字符,0-9 表示数字,. 表示小数点,+ 表示连续匹配一个或多个。所以 [0-9.]+ 能匹配出“128.5”这样的整数或小数。如果只需要整数,可以把正则表达式简化为 \d+。
四、更多提取场景
提取指定单位前的金额:如果数据中有“元”“万元”等单位,只想提取带单位的数字,可以用 (?=元) 表示“元字之前的内容”:
=SUM(REGEXP(A2,"[0-9.]+(?=元)")*1)
提取多个数字并求和:如果一个单元格里有多个数字,比如“苹果5个,香蕉3个,橘子2个”:
=SUM(REGEXP(A2,"[0-9]+")*1)
REGEXP 会提取出所有数字,SUM 自动求和,得到总数10。
五、总结
Excel字符提取的核心是用REGEXP函数配合正则表达式。掌握这一个套路,混合内容中提取数字就不再是难题了。