求助EXCEL公式高手!!

请问怎么快速从员工的打卡时间,计算考勤工时?上班时间八点 下班五点半

根据你截图的打卡记录数据,用公式不太好处理,或者增加辅助列。而用Excel中所带的数据处理工具Porwer query(简称PQ)则能达到很好的效果,且只要进行点鼠标的操作。最后的数据还与数据源之间建立了连接,能更新更新。下面模拟表输入了你截图中有关的数据。方法如下:

    光标定位到数据区域,按Ctrl+T,将数据区域转换为表格。本人在2019中可省去此步骤,其他版本没测试。

2.  数据菜单——获取和转换数据——自表格/区域,进入PQ界面

3. 在PQ中,把日期与时间列转换为日期,打卡时间转换为时间,删除无关的列,如打卡方式、编号(需要的话呆保留)

4. 对每个人(如果不止一天的话,还有每天)取上下班时间。如图,选择“分组依据”,弹出的对话框中,选择“高级”,以姓名、日期为依据,进行分组,把新列名修改为“上班时间”;操作选择“最小值”;柱(即列)选择“打卡时间”——这样就是第个人每天中打卡时间(实际上是数字)最小的为上班时间。点“添加聚合”,按同样的操作,得到下班时间——打卡时间为最大值。

5. 文件选项卡——关闭并上载至(如果选择“关闭并上载”,则直接把结果上载到新工作表),回到工作表中,选择数据上载位置(本例中选择“现有工作表”)

6. 上载的数据可以选择表、透视表等方式,这里选择表,确定后得到PQ整理后的数

得到了每个人每天的上下班时间。没有每天的工作时间?这可是提问要求的,操作半天,怎么能少这个呢!别急,是老朽特意买的一个关子,本来可以有了上班时间和下班时间直接增加工作时间计算列的。但为了说明PQ可返回编辑,特意把这个关键给“忘了”!现在双击右侧的查询表(可以在光标定位到表中后,在查询菜单中点“编辑”),回到PQ中来补上“遗忘”的操作:

7. 返回PQ后,增加自定义列,修改列名为“工作时间”公式中,输入:

=[下班时间]-[上班时间]

确定后,重新关闭并上载。得到了增加的工作时间

8. 现在工作时间为小数,设置为时间格式后,即得到工作时间。

回答本问题花了一个多小时,主要是截图并编写文字说明。只要进行操作,又比较熟练的话,应该不会超过10分钟。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-07-08
有没有只打一次卡的?怎么算?
另外,有没有加班到后半夜的?
第2个回答  2019-07-08
中午休息时间打卡吗?是统一按实际计算还是只要不迟到早退按标准8小时计算,迟到早退则计算实际工时?追问

中午休息也算的,要减去一个半小时

追答

可参考这个公式,但该公式是把上班打卡时间和下班打卡时间分开两列的,你在同一列不利于计算。另外,该公式是不考虑加班,只考虑迟到早退,如要全面,可私信我

=IF(AND(TEXT(A2,"h:mm:ss")<="8:00:00",TEXT(B2,"h:mm:ss")>="17:30:00"),TEXT(B2,"h:mm:ss")-TEXT(A2,"h:mm:ss")-"1:30",IF(AND(TEXT(A2,"h:mm:ss")>"8:00:00",TEXT(B2,"h:mm:ss")<"17:30:00"),"8:00:00"-TEXT(A2,"h:mm:ss")+"8:00:00"-"17:30:00"+TEXT(B2,"h:mm:ss"),IF(TEXT(A2,"h:mm:ss")>"8:00:00","8:00:00"-TEXT(A2,"h:mm:ss")+"8:00:00","8:00:00"-"17:30:00"+TEXT(B2,"h:mm:ss"))))

相似回答