excel表格 分组 求员工每日打卡最大最小时间计算工作时长
一、用到excel函数:if() :判断是否满足某个条件,如果满足返回一个值,如果不满足则返回另一个值。.round() :按指定的位数对数值进行四舍五入.match() :返回符合特定值特定顺序的项在数组中的相对位置.sumif():对满足条件的单元格求和.二、表格结构大概有2万条要是手动整理肯定累死了,我们整理一下用作示例版。示例:第一步点击选中K2单元格,输入...
一、用到excel函数:
if() :判断是否满足某个条件,如果满足返回一个值,如果不满足则返回另一个值。.
round() :按指定的位数对数值进行四舍五入.
match() :返回符合特定值特定顺序的项在数组中的相对位置.
sumif():对满足条件的单元格求和.
二、表格结构

大概有2万条要是手动整理肯定累死了,我们整理一下用作示例版。
示例:第一步点击选中K2单元格,输入公式点确认,这个时候K2单元格会显示结果

2、在表格的左上方输入要计算的行数冒号左边是开始行右边是结束行,然后回车会选中

3、点一下公式处,按住alter 加回车就会全部显示值


这个时候会发现如果一天打开多次他们的值是分开的。我们需要一个总量
2.1、这个时候已员工编号加日期在创建一列

2.2、这个时候我们去重,普通的去重会换行,我们把重复的替换成空格,新的一列M就出来了

2.3、最后一步,求一天的工作总时间,到现在为止就算完成了辅助列可以删掉了。

公式:
----求前后时间的时长
= if((E3-E2)*24>13,0,if((E3-E2)*24<0,0,ROUND((E3-E2)*24,2)))
----创建辅助列用户编号加日期
=D2&"-"&MONTH(E2)&"月"&DAY(E2)
-----分组删除重复数据
=if(match(l2,$l:$l,0)=ROW(l2),l2,"")
------分组求和得出最终时长
=if(sumif($l:$l,m2,$K:$K)<=0,"",sumif($l:$l,m2,$K:$K))
值得注意的是跨天加班的那种要单独手动处理一下
第一次弄,不太好用,弄了一晚上,大家有什么建议可以指导我
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)