엑셀 프로그램 > VBA > 해가 바뀌어도 계속 누적되는 프로젝트 주차 구하기

해가 바뀌어도 계속 누적되는 프로젝트 주차 구하기

특정 시작일부터 현재일까지 해가 바뀌어도 계속 누적되는 주차를 수식사용자 정의함수로 구해 보겠습니다.

누적주차는 프로젝트를 관리할 때 프로젝트가 현재 몇주차인가를 구할 때 많이 사용됩니다.

사실 시작일로부터 현재일까지 경과된 일수를 7로 나누면 간단히 해결할 수 있는 문제이지만, 업무에 따라서 한 주의 시작요일이 달라 질 수 있으므로 이것을 고려하면 해결 방법이 약간 복잡합니다.

누적주차를 구하기 위해서는 아래 그림과 같이 시작일, 현재일, 주의 시작요일 값이 필요합니다.

해가 바뀌어도 계속 누적되는 주차 구하기

 

1. 수식으로 구하기

=CEILING(((C4-B4+1)+IF((WEEKDAY(B4)-D4)<0,(WEEKDAY(B4)-D4)+7,(WEEKDAY(B4)-D4)))/7,1)

=> 73

(2021년 1월부터 시작해서 해를 넘겨서 2022년 5월 22일은 73주차에 해당)

 

2. 사용자 정의함수로 구하기(VBA이용)

엑셀에서 Alt+F11을 눌러서 VBA를 이용하여 다음 코드를 붙여 넣고 셀에서 다음과 같이 사용합니다.

=getProjectWeekNum(B4,C4,D4)

=> 73


Function getProjectWeekNum(projectStartDate As Date, currentDate As Date, firstDayOfWeek As Integer) As Integer

'// 해가 바뀌어도 계속 누적되는 주차 구하기(https://xlworks.net)
'// @2021.10.29
'//
'// 함수 인수 :
'// projectStartDate - 시작일
'// currentDate - 현재일
'// firstDayOfWeek : 주의 시작요일 (1-일요일,2-월요일,3-화요일,4-수요일.... 7-토요일)
    
Dim weekOffset As Integer

    weekOffset = (Weekday(projectStartDate) - (firstDayOfWeek))
    If weekOffset < 0 Then
        weekOffset = 7 + weekOffset
    End If

   getProjectWeekNum = Application.WorksheetFunction.Ceiling(((currentDate - projectStartDate + 1) + weekOffset) / 7, 1)
  

End Function


엑셀웍스 책 출간 안내

그동안 엑셀웍스에 올린 '엑셀 강좌', '함수 사용법', 여러 '실무 예제'에서 핵심만 뽑아 '된다! 엑셀 수식 & 함수' 책으로 출간하였습니다.

엑셀웍스 책 출간안내  자세히 보기

온라인 구매처: 예스24   교보문고   알라딘 

댓글 남기기

Scroll to Top