Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 532|回复: 5

最好能自动识别早班,中班,晚班

[复制链接]
发表于 2024-1-19 17:52 | 显示全部楼层 |阅读模式
每月都要手动核对,还容易出错,有没办法可以自动识别出来班次,具体要求看附件,谢谢大家!!

202312出勤记录.rar

10.67 KB, 下载次数: 5

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2024-1-21 10:19 | 显示全部楼层
不考虑迟到和早退的情况吗?
比如   15:55分。可能是早班下班早退。也可能是中班正常上班要卡。
回复

使用道具 举报

发表于 2024-1-21 11:05 | 显示全部楼层
写了一半,又还有一种情况。比如,一个人刚好是16:00打卡。那这时候算是早班的下班卡,还是中班的上班卡。这些都是问题。没办法搞。
回复

使用道具 举报

发表于 2024-1-21 12:59 | 显示全部楼层
  1. Sub 考勤()
  2. Dim srow As Single, arr, brr, crr, i As Single, j As Byte
  3. srow = Range("a1").End(xlDown).Row
  4. arr = Range("a1:c" & srow)
  5. ReDim brr(1 To srow - 1)
  6. 'ReDim crr(1 To 3)
  7. For i = 2 To srow
  8.     If arr(i, 3) <> "" Then
  9.        k = (Len(arr(i, 3)) + 1) / 9
  10.        crr = Split(arr(i, 3), ";")
  11.         For j = 0 To k - 1
  12.             If CDate(crr(j)) - 0 >= 0.28 And CDate(crr(j)) - 0 <= 0.33 Then
  13.                 brr(i - 1) = brr(i - 1) & Day(arr(i, 1)) & "日早班上班卡;"
  14.             ElseIf CDate(crr(j)) - 0 >= 0.58 And CDate(crr(j)) - 0 <= 0.666 Then
  15.                 brr(i - 1) = brr(i - 1) & Day(arr(i, 1)) & "日中班上班卡;"
  16.             ElseIf CDate(crr(j)) - 0 >= 0.6666666 And CDate(crr(j)) - 0 <= 0.79 Then
  17.                  brr(i - 1) = brr(i - 1) & Day(arr(i, 1)) & "日早班下班卡;"
  18.             ElseIf CDate(crr(j)) - 0 >= 0.9 Then
  19.                  brr(i - 1) = brr(i - 1) & Day(arr(i, 1)) & "日晚班上班卡;"
  20.              ElseIf CDate(crr(j)) - 0 >= 0 And CDate(crr(j)) - 0 <= 0.15 Then
  21.                  brr(i - 1) = brr(i - 1) & Day(CDate(arr(i, 1)) - 1) & "日中班下班卡;"
  22.             ElseIf CDate(crr(j)) - 0 >= 0.33 And CDate(crr(j)) - 0 < 0.45 Then
  23.                  brr(i - 1) = brr(i - 1) & Day(arr(i, 1)) & "日晚班下班卡;"
  24.             End If
  25.         Next
  26.     End If
  27. Next
  28. Range("d2").Resize(i - 2, 1) = Application.Transpose(brr)
  29. End Sub
复制代码

202312出勤记录.zip

16.68 KB, 下载次数: 4

回复

使用道具 举报

发表于 2024-1-21 13:00 | 显示全部楼层
本帖最后由 心正意诚身修 于 2024-1-21 13:16 编辑

比如8:00:00-8:00:59 这个时间段内,上班和下班都有可能,比较难以界定。鉴于以上几点原因。。结果可能有误 。我粗略的检查了一下。就目前的数据而言。没什么问题。
回复

使用道具 举报

 楼主| 发表于 2024-1-22 09:55 | 显示全部楼层
心正意诚身修 发表于 2024-1-21 13:00
比如8:00:00-8:00:59 这个时间段内,上班和下班都有可能,比较难以界定。鉴于以上几点原因。。结果可能有误 ...

好的,谢谢,我先试下整月的数据
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-29 17:11 , Processed in 0.354866 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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