我正在为出勤跟踪工作。除了一件事,我大部分都想到了。员工为我们工作的第一年每周都会获得最多两小时的免责休假时间。如果他们在本周有完美的出勤率,则可获得一小时。如果他们在优先日工作(即使他们迟到),第二个小时就可以获得。我找不到检查这两个小时的方法时遇到了麻烦。我有一张表格列出了星期一开始的工作周。
我想要完美出席的目的是在A栏中查找出现在所讨论的一周的开始日期和下周的开始日期之间的任何出勤日期(K栏) )然后检查它是否在E列中列为无故障。但我不知道如何设置它。
答案 0 :(得分:0)
我重新排列了列并没有使用所有列,因为我不确定一些与手头的问题有关。列A,B,C和D是输入。我将“优先级”值从yes / no更改为True / False。 “查找周”按钮激活以下宏以填充E列。
Sub findweek()
Dim absence As Integer: Dim week As Byte
Range("E2:E100").ClearContents
absence = 2 'find the first absence in column A
week = 2 'find the first week in column B
Do While Cells(absence, 1) <> 0 'loop through the absences in column A
Do While Cells(week, 4) <> 0 'loop through weeks in column B
'compare the date in column A to the begining of week in column B
If Cells(absence, 1) > Cells(week, 4) Then
week = week + 1
ElseIf Cells(absence, 1) = 0 Then
Exit Do
Else
Cells(week - 1, 5) = Cells(absence, 1): absence = absence + 1: week = 2
End If
Loop 'count until you run out of "Mondays"
Exit Do
Loop 'count until you run out of "dates"
End Sub
列F的值由以下内容填写:
=IF(E2="",1,IF(VLOOKUP(E2,$A$2:$C$100,3,FALSE)=TRUE,2,0))
单元格G1对F列中的值进行求和
我希望这能让您了解如何设置项目。