ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 请教大师,根据系统打卡数据计算出每个人每天的出勤时间

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-2-19 16:49 | 显示全部楼层 |阅读模式
请教大师,根据系统打卡数据计算出每个人每天的出勤时间,用下班打卡时间减上班打卡时间算出勤时间,如果1天打了3次卡或更多次的,取当天首次打卡时间及末次打卡时间计算,如只打了一次的卡的返回打一次卡,如果当天无打卡的返回无打卡,或其它值能判断出来的也可以,感谢!

根据打卡数据计算出勤时间.rar

18.17 KB, 下载次数: 79

TA的精华主题

TA的得分主题

发表于 2019-2-19 19:28 | 显示全部楼层
先把数据区域的单元格格式调为【2位小数】,然后在C3单元格输入以下公式,按下数组三键ctrl+shift+enter,右拉下拉即可。
  1. =IF(COUNT(0/(DAY(IF(打卡记录!$B$3:$B$999=$B3,打卡记录!$D$3:$D$999))=C$2))=0,"无打卡",IF(COUNT(0/(DAY(IF(打卡记录!$B$3:$B$999=$B3,打卡记录!$D$3:$D$999))=C$2))=1,"打一次卡",(LARGE(--(IF((打卡记录!$B$3:$B$999=$B3)*(DAY(打卡记录!$D$3:$D$999)=C$2),打卡记录!$D$3:$D$999,)),1)-LARGE(--(IF((打卡记录!$B$3:$B$999=$B3)*(DAY(打卡记录!$D$3:$D$999)=C$2),打卡记录!$D$3:$D$999,)),COUNT(0/--(IF((打卡记录!$B$3:$B$999=$B3)*(DAY(打卡记录!$D$3:$D$999)=C$2),打卡记录!$D$3:$D$999,)))))*24))
复制代码

评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-2-19 19:35 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-2-19 19:48 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-2-19 20:39 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

如果你来写的话,估计更短,更紧凑。哈哈

TA的精华主题

TA的得分主题

发表于 2019-2-19 20:43 | 显示全部楼层
头像被屏蔽

TA的精华主题

TA的得分主题

发表于 2019-2-19 20:47 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-2-19 21:30 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
再次缩短,注意,是【数组公式】,按ctrl+shift+enter三键右拉下拉即可。
  1. =IF(COUNT(0/(DAY((打卡记录!$B$3:$B$9999=$B3)*打卡记录!$D$3:$D$9999)=C$2))=0,"无打卡",IF(COUNT(0/(DAY((打卡记录!$B$3:$B$9999=$B3)*打卡记录!$D$3:$D$9999)=C$2))=1,"打一次卡",SUM(QUARTILE(IFERROR(1/(1/((DAY((打卡记录!$B$3:$B$9999=$B3)*打卡记录!$D$3:$D$9999)=C$2)*打卡记录!$D$3:$D$9999)),1=2),{4,0})*{1,-1})*24))
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-2-19 21:31 | 显示全部楼层
Datous 发表于 2019-2-19 20:43
不会。太长的话,我就放弃了。

嘿嘿,学以致用
  1. =IF(COUNT(0/(DAY((打卡记录!$B$3:$B$9999=$B3)*打卡记录!$D$3:$D$9999)=C$2))=0,"无打卡",IF(COUNT(0/(DAY((打卡记录!$B$3:$B$9999=$B3)*打卡记录!$D$3:$D$9999)=C$2))=1,"打一次卡",SUM(QUARTILE(IFERROR(1/(1/((DAY((打卡记录!$B$3:$B$9999=$B3)*打卡记录!$D$3:$D$9999)=C$2)*打卡记录!$D$3:$D$9999)),1=2),{4,0})*{1,-1})*24))
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-2-19 22:08 | 显示全部楼层
本帖最后由 Datous 于 2019-2-19 22:29 编辑
  1. SUM(QUARTILE(IF((打卡记录!$B$3:$B$999=$B14)*DAY(打卡记录!$D$3:$D$999)=C$2,--打卡记录!$D$3:$D$999),{4,0})*{1,-1})*24
复制代码

  1. =CHOOSE(MIN(3,SUM(1,N((打卡记录!$B$3:$B$999=$B3)*(DAY(打卡记录!$D$3:$D$999)=C$2)))),"无打卡","打一次卡",SUM(QUARTILE(IF((打卡记录!$B$3:$B$999=$B3)*(DAY(打卡记录!$D$3:$D$999)=C$2),-打卡记录!$D$3:$D$999),{4,0})*{1,-1})*24)
复制代码

评分

1

查看全部评分

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

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-25 12:35 , Processed in 0.043002 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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