ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创] 一个难倒90%人的【工时计算问题】浅析

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2021-9-12 23:38 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 三秋之叶 于 2021-9-13 17:01 编辑

已知一员工(小员)的上下班时间和公司规定的上下班时间(见下图所示),计算员工每天的工作时长。如何计算,这个问题曾经难倒了不少人,今天我来给大家解析一下~
image.png
如果你硬算,可能有一定的难度,但你一旦发现问题的等价问题,就会非常简单,如下图所示:
工时问题.pdf_page_1.jpg
※假设有一名员工名叫【小上】,上班时间是:00:00,下班时间是【小员】的上班时间
※假设另一名员工名叫【小下】,上班时间是:00:00,下班时间是【小员】的下班时间
你会发现:小员工作时长=小下上班时长-小上上班时长
接下来问题就转变成了,如何求【小上】和【小下】的上班时长问题。为了便于大家理解,继续看图吧!可能有下面的5种情况:
不用害怕,其实就是一个问题,我们逐一看一下就行
工时问题.pdf_page_2.jpg
情况1:下班时间在18:00~24:00
工时问题.pdf_page_3.jpg
你会很容易的发现下面的等式:
上午上班时长=①-②
下午上班时长=③-④
上班合计时长=①-②+③-④
情况2:下班时间在13:30~18:00
工时问题.pdf_page_4.jpg
你会很容易的发现下面的等式:
上午上班时长=①-②
下午上班时长=③-④
上班合计时长=①-②+③-④
此时④为负数,说明不在公司,该时段无需计算,④会按0计算
情况3:下班时间在11:30~13:30
工时问题.pdf_page_5.jpg
你会很容易的发现下面的等式:
上午上班时长=①-②
下午上班时长=③-④
上班合计时长=①-②+③-④
此时③④为负数,说明不在公司,该时段无需计算,③④会按0计算
情况4:下班时间在09:00~11:30
工时问题.pdf_page_6.jpg
你会很容易的发现下面的等式:
上午上班时长=①-②
下午上班时长=③-④
上班合计时长=①-②+③-④
此时②③④为负数,说明不在公司,该时段无需计算,②③④会按0计算
情况5:下班时间在00:00~09:00
工时问题.pdf_page_7.jpg
你会很容易的发现下面的等式:
上午上班时长=①-②
下午上班时长=③-④
上班合计时长=①-②+③-④
此时①②③④为负数,说明不在公司,该时段无需计算,①②③④会按0计算
以上5种情况用公式表示就是:
=TEXT(下班时间-{"09:00";"11:30";"13:30";"18:00"},"[<]!0")*{1;-1;1;-1}
因为,小员上班时长=小下上班时长-小上上班时长
所以,小员上班时长
=SUM(TEXT(下班时间-{"09:00";"11:30";"13:30";"18:00"},"[<]!0")*{1;-1;1;-1})
-SUM(TEXT(上班时间-{"09:00";"11:30";"13:30";"18:00"},"[<]!0")*{1;-1;1;-1})
化简一下:
=SUM(TEXT({上班时间,下班时间}-{"09:00";"11:30";"13:30";"18:00"},"[<]!0")*{1;-1;1;-1}*{-1,1})
即:
=SUM(TEXT(A2:B2-F$2:F$5,"[<]!0")*{1;-1;1;-1}*{-1,1})
如果需要具体的小时数字,则:
=SUM(TEXT(A2:B2-F$2:F$5,"[<]!0")*{1;-1;1;-1}*{-1,1})*24
思考:如果涉及到跨天上班时长如何计算?
=SUM(TEXT(MOD(A2:B2,1)-F$2:F$5,"[<]!0")*{1;-1;1;-1}*{-1,1}*24,INT(A2:B2)*{-1,1}*7)
注:7为每天工作时长。函数总体比较简单,就不解释了~

工时问题.zip

363.29 KB, 下载次数: 121

新版本

评分

22

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-9-13 08:31 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 cinlo 于 2021-9-13 08:33 编辑

楼主好勤奋~~~~收藏,学习~~~

TA的精华主题

TA的得分主题

发表于 2021-9-13 10:07 | 显示全部楼层
*--函数总体比较简单,就不解释了~--*
Last一句尤其精华~~~

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-9-13 11:29 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
不好意思,有一处笔误,抱歉哈~
小员上班时长=小下上班时长-小上下班时长
应改为:
小员上班时长=小下上班时长-小上上班时长

TA的精华主题

TA的得分主题

发表于 2021-9-13 11:36 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
根本看不懂~~~~~~~~~~~~~~~~~~~~

TA的精华主题

TA的得分主题

发表于 2021-9-13 11:37 | 显示全部楼层
三秋之叶 发表于 2021-9-13 11:29
不好意思,有一处笔误,抱歉哈~
小员上班时长=小下上班时长-小上下班时长
应改为:

此计算方式 ,我发现 海鲜老师 写得最早,(在这之前有无老师写过,就木知了)

很好,你在这里再巩固一下。
向海鲜老师学习了。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-9-13 12:09 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
丢丢表格 发表于 2021-9-13 11:37
此计算方式 ,我发现 海鲜老师 写得最早,(在这之前有无老师写过,就木知了)

很好,你在这里再巩固 ...

这个解法很多人不理解,我把我的理解分享一下,没想到前天的构思在大神那里得到了印证

TA的精华主题

TA的得分主题

发表于 2021-9-13 12:46 | 显示全部楼层
为什么把员工叫小上,小下,正好问题的重点是上班,下班,有点乱

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-9-13 13:34 | 显示全部楼层
koovan 发表于 2021-9-13 12:46
为什么把员工叫小上,小下,正好问题的重点是上班,下班,有点乱

这个就是我的目的,小上就是上班时间,小下就是下班时间。可以下载附件看,原本问题很难,我找到了等价问题,变得简单了

TA的精华主题

TA的得分主题

发表于 2021-9-13 16:51 | 显示全部楼层
丢丢表格 发表于 2021-9-13 11:37
此计算方式 ,我发现 海鲜老师 写得最早,(在这之前有无老师写过,就木知了)

很好,你在这里再巩固 ...

看得出我学习不认真,不知道海鲜老师还写过!反省~~~~~~~~~
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-4-28 15:02 , Processed in 0.053000 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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