2014-09-01 1 views
-1

출근 추적자로 일하고 있습니다. 나는 그것의 대부분이 한 가지를 제외하고 알아 냈습니다. 직원이 우리를 위해 일하는 첫해에 매주마다 그들은 최대 2 시간의 면제를받습니다. 1 주일 동안 완벽한 출석을 한 경우 1 시간을받습니다. 2 시간 째는 우선 일에 늦게 도착하더라도 올릴 수 있습니다. 그 두 시간 동안 확인하는 방법을 찾는 데 어려움이 있습니다. 나는 월요일에 시작하는 노동 주를 나열하는 테이블을 가지고있다.참석자 추적기에서 예외 시간을 더하기

완벽하게 출석하기 위해 생각한 것은 질문 시작일과 다음 주 시작일 (K 열) 사이에있는 열 A의 출석 날짜를 확인한 다음 해당 항목이 있는지 확인하는 것이 었습니다 E 열에 무단 결석자로 기재되어 있습니다.하지만 어떻게 설정해야할지 모르겠습니다.

enter image description here

답변

0

나는 열을 재 배열하고 나는 약간 손 질문에 관련된 방법을 잘하지 않았다으로, 그들 모두를 사용하지 않았다. 열 A, B, C 및 D는 입력입니다. "Priority"값을 yes/no에서 True/False로 변경했습니다. 열 F에

=IF(E2="",1,IF(VLOOKUP(E2,$A$2:$C$100,3,FALSE)=TRUE,2,0)) 

셀 G1 합계 값 : F 열은 다음에 의해 채워집니다위한 "주 찾기"버튼 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 

값을 채우기 위해 다음 매크로를 활성화

이 방법을 사용하면 프로젝트 설정 방법을 알 수 있기를 바랍니다.

Column letters and Row numbers are not pictured

관련 문제