ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] excel 钉钉考勤导出记录怎么计算工作时长?

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-3-14 19:05 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
李小超yys 发表于 2023-3-14 15:26
你这个时间打卡规则有点 乱,你先看看对不对吧

如一天打一次卡就不计算,打两次卡就按第二次打卡时间减去第一次打卡时间,如一天打三次卡,就按第三次打卡时间减去第一次打卡时间,如一天打卡四次,则按第四次打卡减去第三次加第二次打卡减去第一次打卡,如一天五此打卡,则第四次打卡不算!
您这没有计算出来时长啊?

TA的精华主题

TA的得分主题

发表于 2023-3-14 20:10 | 显示全部楼层
waw751115 发表于 2023-3-14 19:02
您这个结果还是不对啊?跟之前结果一样,况且结果怎么还有11小时97分?

折算到小时的,再自己转化一下就可以得到多少小时多少分啊。不要先入为主,自己看代码

TA的精华主题

TA的得分主题

发表于 2023-3-14 20:45 | 显示全部楼层
用得着搞成这样?用人不疑疑人不用,靠打个卡克扣点工资能多干出效益?

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-3-14 21:23 | 显示全部楼层
本帖最后由 一指禅62 于 2023-3-14 21:28 编辑

弄个自定义函数,供楼主测试一下,看计算方法是否正确。


打卡.PNG


TA的精华主题

TA的得分主题

发表于 2023-3-14 21:32 | 显示全部楼层
本帖最后由 gbgbxgb 于 2023-3-15 07:43 编辑

供参考吧。

打卡时间表_20230201-20230228(1).rar

15.3 KB, 下载次数: 20

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-3-15 10:02 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

高手!佩服!厉害!十分给力!结果是对的!非常感谢!

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-3-15 10:04 | 显示全部楼层
一指禅62 发表于 2023-3-14 21:23
弄个自定义函数,供楼主测试一下,看计算方法是否正确。

请问你的代码测试了没有?可以发一下代码我自己来测试一下看结果是否正确?

TA的精华主题

TA的得分主题

发表于 2023-3-15 10:40 | 显示全部楼层
waw751115 发表于 2023-3-15 10:04
请问你的代码测试了没有?可以发一下代码我自己来测试一下看结果是否正确?

打卡时长1.PNG



打卡时长2.PNG


打卡时长3.PNG

打卡时长4.PNG


TA的精华主题

TA的得分主题

发表于 2023-3-15 12:25 | 显示全部楼层
供参考,和老师们还有很大差距,把上班时间汇总到分钟了。
  1. Sub f()
  2. Dim crr()
  3. arr = Range("g4:ah" & 21).Value
  4. For i = 1 To UBound(arr)
  5.    t = 0: s = 0
  6.     For j = 1 To UBound(arr, 2)
  7.      If arr(i, j) <> "" Then
  8.         brr = Split(arr(i, j), Chr(10))
  9.         k = UBound(brr)
  10.         Select Case k
  11.         Case Is = 1
  12.             s = DateDiff("n", brr(0), brr(1))
  13.             t = t + s
  14.         Case Is = 2
  15.             s = DateDiff("n", brr(0), brr(1))
  16.             t = t + s
  17.         Case Is = 3
  18.             s = DateDiff("n", brr(0), brr(1)) + DateDiff("n", brr(2), brr(3))
  19.             t = t + s
  20.         Case Is = 4
  21.             s = DateDiff("n", brr(0), brr(1)) + DateDiff("n", brr(2), brr(4))
  22.             t = t + s
  23.         End Select
  24.      End If
  25.     Next
  26.     n = n + 1
  27.     ReDim Preserve crr(1 To n)
  28.     crr(n) = t
  29. Next
  30. [am4].Resize(n, 1) = WorksheetFunction.Transpose(crr)
  31. End Sub
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-3-15 12:39 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
waw751115 发表于 2023-3-15 10:02
高手!佩服!厉害!十分给力!结果是对的!非常感谢!

代码工作时间算法不严谨。
问下,存在如下恶劣刷卡吗?
上午8:00刷卡(上班签到),然后开溜,实际未上班;
晚上19:00刷卡(上班签到),19:03再刷卡,22:18刷卡(下班)。

从上述情况看,该员工实际工作时长仅为19:00至22:18,即3小时18分钟,但现代码依据楼主的描述,该员工的工作时长为:
8:00至19:00,即为11小时,再加上19:03至22:18,即3小时15分钟,总计该员工工作时长为14小时15分钟,显然大错特错!!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-9-29 22:14 , Processed in 0.039825 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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