专栏名称: Excel之家ExcelHome
excel技巧原创教程每日推送,excel表格职场模板干货仓库,图文/视频/动画等多种教学方式分享excel操作技巧教程/excel函数公式教程/excel数据透视表教程/excel图表教程/Word教程,助您轻松提高办公效率!
目录
相关文章推荐
Excel之家ExcelHome  ·  数据有效性的几个典型应用 ·  3 天前  
Excel之家ExcelHome  ·  这些公式用得好,一堆工作等你搞 ·  5 天前  
完美Excel  ·  分享图片 ·  4 天前  
完美Excel  ·  VBA递归 ·  1 周前  
完美Excel  ·  突破50000人 ·  6 天前  
51好读  ›  专栏  ›  Excel之家ExcelHome

混合内容求和的四种方法

Excel之家ExcelHome  · 公众号  · Excel  · 2024-09-25 06:45

正文

小伙伴们好啊,今天和大家分享的是一组特殊数据的处理。

先看下面的数据,是各部门的奖励补贴数据,同一个部门的数据都挤在一个单元格内,现在要计算每个部门的奖励补贴总和,该如何处理呢?

接下来咱们说说几种常用方法:


方法一:

复制Excel中B列的混合内容,打开Word,右键粘贴为文本。

然后按Ctrl+H键,调出替换对话框。

查找内容输入:

[!^1-^127]{1,}

替换为输入加号“+

然后选择使用通配符,点击全部替换。

再将替换后的内容复制粘贴到Excel即可:


方法二:

右键单击工作表标签→查看代码

在VBE界面中点击【插入】→【模块】,然后输入以下代码:

Function GetNum(S$)

Dim i&, SS
For i = 1 To Len(S)
    SS = Val(Mid(S, i))
    If SS <> 0 Then i = i + Len(SS): GetNum = GetNum + SS
Next i
End Function

关闭VBE窗口,在C2单元格输入自定义函数,OK了:

=GetNum(B2)

使用该方法时,注意需要将文件保存为xlsm格式。


方法三:

如果你使用的是Excel 2021,可以使用以下公式处理:

=SUM(1*TEXTSPLIT(B2,TEXTSPLIT(B2,ROW($1:$10)-1,,1),,1))

TEXTSPLIT(B2,ROW($1:$10)-1,,1)部分,使用ROW($1:$10)-1的结果,也就是序号0~9作为间隔符号,对B2单元格的内容进行第一次拆分,第三参数使用1,表示忽略空白单元格。拆分结果为:

{"补贴:王亮","牛莉",",优秀人员标兵:李志文","房新军","王新","牛一万"}

接下来再进行第二次拆分,第二拆分的间隔符号为第一次拆分得到结果,也就是除了数字之外的文本内容,拆分结果为:

{"5","10","300","300","300","300"}

将提取后的文本型数字乘以1变成数值格式,最后使用SUM函数求和。


方法四:

如果你使用的是最新版WPS表格,这个问题就简单了。

C2单元格输入以下公式,向下复制:

=SUM(1*REGEXP(B2,"\d+"))

REGEXP函数是WPS表格中特有的支持正则表达式的函数,本例中,正则表达式为“\d+”,表示要分别提取出连续的数字。

将提取后的文本型数字乘以1变成数值格式,最后使用SUM函数求和。


图文制作:祝洪忠

推荐文章
Excel之家ExcelHome  ·  数据有效性的几个典型应用
3 天前
Excel之家ExcelHome  ·  这些公式用得好,一堆工作等你搞
5 天前
完美Excel  ·  分享图片
4 天前
完美Excel  ·  VBA递归
1 周前
完美Excel  ·  突破50000人
6 天前
遇见漫画  ·  《我的女友是老司机》第25话
7 年前