ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2503|回复: 10

[求助] 如何求和

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-10-12 00:13 | 显示全部楼层 |阅读模式
本帖最后由 征途2 于 2014-10-12 00:19 编辑

我这个里有有文本格式,请各位给我提供一下解决方案,补充一下求和的说明;:
要求是:求和:加班小时-休息小时-调休小时-事假小时
2.我还想单独求一下事假小时和调休小时的总和,

大塘仓9月考勤.zip

35.91 KB, 下载次数: 8

TA的精华主题

TA的得分主题

发表于 2014-10-14 11:26 | 显示全部楼层
这做统计数据方法,用公式汇总会很纠结。里面的数据混杂在一个单元格里,有文字描述,有数字,而且分隔有的换行,有的用空格。

给你做了一个自定义函数,就事论事地解决问题——
QQ截图20141014111815.png

自定义函数的代码如下:
  1. Option Explicit

  2. Function MSUM(rng As Range) As Single
  3. On Error GoTo 0
  4. Dim c As Range, d As Single, str$, arr, i%
  5. If Not rng Is Nothing Then
  6.   For Each c In rng
  7.     str = Replace(c.Value, " ", Chr(10))
  8.     arr = Split(str, Chr(10))
  9.     For i = 0 To UBound(arr)
  10.       MSUM = MSUM + CSng(Replace(Replace(Replace(arr(i), "休息", "-"), "调休", "-"), "事假", "-"))
  11.     Next i
  12.   Next c
  13. End If
  14. End Function
复制代码


具体效果参考附件吧!

大塘仓9月考勤.rar

31.43 KB, 下载次数: 12

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-10-15 21:05 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
sunya_0529 发表于 2014-10-14 11:26
这做统计数据方法,用公式汇总会很纠结。里面的数据混杂在一个单元格里,有文字描述,有数字,而且分隔有的 ...

谢谢,帮了大忙,工作效率会提高很多

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-10-15 22:29 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
sunya_0529 发表于 2014-10-14 11:26
这做统计数据方法,用公式汇总会很纠结。里面的数据混杂在一个单元格里,有文字描述,有数字,而且分隔有的 ...

在吗,能否把你设置这个公式的步骤告诉我一下,这个VBA我还没有学过,呵呵

TA的精华主题

TA的得分主题

发表于 2014-10-16 09:42 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
征途2 发表于 2014-10-15 22:29
在吗,能否把你设置这个公式的步骤告诉我一下,这个VBA我还没有学过,呵呵

这个自定义函数就像普通函数一样使用,这个函数只有一个参数,就是要求和的单元格区域(必须是连续区域),函数的代码在后台VBE窗口里可见,要用到其他的表格中,只要将模块拖过去就好了。

打开带有VBA代码的文件必须要设置允许宏,并在打开宏时允许宏运行才行。

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-10-16 15:56 | 显示全部楼层
sunya_0529 发表于 2014-10-16 09:42
这个自定义函数就像普通函数一样使用,这个函数只有一个参数,就是要求和的单元格区域(必须是连续区域) ...

如果这个公式里,我还想单独求调休小时之各,休息小时之和,请假小时之和,如何计算啊,之前用的这个公式化,但是有的时候会有错误SUM(-TEXT(0&MID(I29:AM29,FIND("调休",I29:AM29&"调休")+2,3),"0.0"))

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-10-16 20:28 | 显示全部楼层
sunya_0529 发表于 2014-10-14 11:26
这做统计数据方法,用公式汇总会很纠结。里面的数据混杂在一个单元格里,有文字描述,有数字,而且分隔有的 ...

我可不可以同时建立多个这样的设置,例如求调休合计数,休息合计数,事假合计数,请问如何设置啊,能否帮忙设计一下,只要在单元格里输入就可以啦

TA的精华主题

TA的得分主题

发表于 2014-10-17 10:56 | 显示全部楼层
本帖最后由 sunya_0529 于 2014-10-17 11:00 编辑
征途2 发表于 2014-10-16 20:28
我可不可以同时建立多个这样的设置,例如求调休合计数,休息合计数,事假合计数,请问如何设置啊,能否帮 ...

把上面的自定义函数稍微修改一下,增加一个可选参数,如果填“事假”、“调休”、“休息”中的任意一个,则会单独计算对应的数值,不填则默认求和,效果如下所示——
QQ截图20141017105452.png


自定义函数的代码更新如下——
  1. Function MSUM(rng As Range, Optional flag As String) As Single
  2. On Error Resume Next
  3. Dim c As Range, str$, arr, i%, x!, y!
  4. If Not rng Is Nothing Then
  5.   For Each c In rng
  6.     str = Replace(c.Value, " ", Chr(10))
  7.     arr = Split(str, Chr(10))
  8.     For i = 0 To UBound(arr)
  9.       If Len(flag) > 0 And InStr(arr(i), flag) > 0 Then x = x + CSng(Replace(arr(i), flag, ""))
  10.       y = y + CSng(Replace(Replace(Replace(arr(i), "休息", "-"), "调休", "-"), "事假", "-"))
  11.     Next i
  12.   Next c
  13.   MSUM = IIf(Len(flag) > 0, x, y)
  14. End If
  15. End Function
复制代码


TA的精华主题

TA的得分主题

 楼主| 发表于 2014-10-19 10:06 | 显示全部楼层
sunya_0529 发表于 2014-10-17 10:56
把上面的自定义函数稍微修改一下,增加一个可选参数,如果填“事假”、“调休”、“休息”中的任意一个, ...

我还是用不了啦,我发附件给你看一下,能否告诉我问题出现在哪里啊

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-10-19 10:07 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 征途2 于 2014-10-19 10:09 编辑

这个是附件,按你写的最新的VBA修改了,但是好像不能用,麻烦你查看一下,谢谢

考勤.rar

270.78 KB, 下载次数: 7

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-23 09:46 , Processed in 0.034448 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表