Please Enable JavaScript!
Gon[ Enable JavaScript ]

엑셀 VBA 날짜 차이를 계산하는 DateDiff 함수 사용하기

엑셀(Excel)/VBA
반응형

VBA 함수 중에서 날짜간의 간격을 알 수 있는 함수는 무엇을 있을까요? 이런 날짜 계산 함수는 아주 다양하게 쓰일 수 있습니다. 여자 친구의 생일, 수험 일자, 군대 입대일 등 현재부터 정 해진 날짜까지의 일, , , , 시간, 초 를 모두 함수 하나로 알아 낼 수 있습니다.

 

아래 함수에서처럼 시작과 끝나는 날짜 사이의 년도, 분기, 월의 간격을 DateDiff 함수로 구했습니다. DateDiff 를 실행해서 얻은 결과 값은 Debug.Print 함수로 콘솔에 출력했습니다.

Sub DateDiffFunction()
 
    Dim dif As Long
   
    dif = DateDiff("yyyy", "2003-12-15", "2013-12-15")
    Debug.Print dif
 
    dif = DateDiff("q", "2003-12-15", "2013-10-20")
    Debug.Print dif
   
    dif = DateDiff("m", "2003-12-15", "2013-10-20")
    Debug.Print dif
 
End Sub

 

엑셀 VBA 날짜 차이를 계산하는 DateDiff 함수 사용하는 방법

아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※
엑셀 VBA 날짜 관련 함수 처리하는 다양한 방법
엑셀 VBA 날짜 데이터를 비교하거나 연산하는 방법
엑셀 VBA 년도, 월 비교해서 발생 횟수 조회하는 방법
엑셀 VBA 입력된 값 형식 확인할 수 있는 Information 관련 함수 모음
엑셀 VBA 문서가 열릴 때 필요한 기능 구현하기

 



DateDiff 의 문법은 다음과 같습니다. 날짜 간격에서 얻고 싶은 데이터의 종류는 첫 번째 인수인 interval에서 결정합니다. 그리고 date1, date2 에 시작과 종료 날짜를 입력합니다. firstdayofweek, firstweekofyear 두 인수는 필수 옵션이 아닙니다.

 

DateDiff( interval, date1, date2, [firstdayofweek], [firstweekofyear] )

 

interval : 시간 간격의 단위를 나타내는 문자열 식을 지정한다. 아래 표 참고 

 

설정 설명
yyyy 년도
q 분기
m
y 해당 연도의 일
d
w 주중
ww
h
n
s

 

date1 date2 : 시간 간격에서 시작과 종료 날짜를 지정한다.

 

firstdayofweek : 주의 시작 요일을 나타내는 정수를 지정한다. 생략하면 일요일이 지정된다. 어떤 요일을 지정하느냐에 따라 w, ww 의 값이 달라진다.

 

firstweekofyear : 연도의 첫 째 주를 나타내는 상수로 생략하면 11일이 포함된 주가 1주가 된다.

 

DateDiff 함수를 이용해서 엑셀 시트에 없는 날짜 차이를 구하는 사용자 정의 함수를 만들었습니다. 인수로 시작 날짜와 종료 날짜를 입력하도록 했습니다. 좀더 개선한다면 interval 문자열을 인수로 받아 switch case 문을 사용해서 여러 종류의 시간 간격을 구하는 함수로 만들 수 있겠죠.

'' 일 차이를 구하는 함수
Function DiffDates(pDate1 As Date, pDate2 As Date) As Long
 
   DiffDates = DateDiff("d", pDate1, pDate2)
 
End Function

 

 

 Visual Editor 창이 열리면 함수를 추가합니다

엑셀 VBA 날짜 차이를 계산하는 DateDiff 함수 사용하는 방법

 

 함수 추가가 끝나면 수식입력기에서 함수를 찾을 수 있습니다. 셀에 DiffDates() 를 추가합니다

엑셀 VBA 날짜 차이를 계산하는 DateDiff 함수 사용하는 방법

 

 추가한 함수에 필요한 인수를 입력합니다. 시작과 종료를 입력하면 날짜 차이를 계산해서 알려 줍니다.

엑셀 VBA 날짜 차이를 계산하는 DateDiff 함수 사용하는 방법

아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※
엑셀 VBA 날짜 관련 함수 처리하는 다양한 방법
엑셀 VBA 날짜 데이터를 비교하거나 연산하는 방법
엑셀 VBA 년도, 월 비교해서 발생 횟수 조회하는 방법
엑셀 VBA 입력된 값 형식 확인할 수 있는 Information 관련 함수 모음
엑셀 VBA 문서가 열릴 때 필요한 기능 구현하기
반응형
Posted by 녹두장군

댓글을 달아 주세요