1. 구문
EDATE(start_date, months)
- start_date : 시작일인데 기준일이라고 생각하면 됩니다.
날짜 형식이어야지 문자 형식이면 에러가 발생합니다.
- months : 떨어진 달 수입니다. +이면 미래, -이면 과거 날짜를 구해줍니다.
월 단위만 있고, 일, 주, 연 단위로는 계산하지 못하므로 일, 주 단위인 경우는 + 또는 - 연산자를 이용하고, 연인 경우는 12개월 단위로 입력하면 됩니다.
2. 예제
가. 2개월 후 날짜 구하기
Edate 함수 내에 start_date를 직접 날짜 형식인 date(2022,4,11)로 입력할 수도 있지만 A열에 날짜가 있고, B열에 months가 있기 때문에
=EDATE($A2,C$1&$B2)
라고 입력했습니다.
+ 기호는 안 붙이고, =Edate(A2, B2)라고 해도 되지만, D2셀에 복사하기 위해 C$1&라고 해서 +기호를 붙였고,
시작일과 월수가 고정되도록 A와 B에만 $표시를 붙이고, 2는 내려갈 때 3, 4식으로 바뀔 수 있도록 $표시를 하지 않았습니다.
그리고, +기호가 있는 C1셀 주소는 C가 옆으로 가면 D로 바뀌여야 하지만, 1행은 아래로 내려갈 때 바뀌면 안 되므로 1에 $표시를 붙였습니다.
결괏값이 44723이라고 표시되는 것은 1900/1/1부터의 일련번호로서, 홈 탭 > 표시형식 그룹에서 일반을 간단한 날짜 표시형식으로 바꾸거나, 마우스 오른쪽 버튼을 누른 후 셀 서식을 선택하고 간단한 날짜 표시형식으로 바꿔도 됩니다.
그러면 2022-06-11로 표시가 바뀝니다.
나. C2셀의 수식을 D2셀에 복사해서 2개월 전 날짜 구하기
마우스로 C2셀 오른쪽 아래 네모 모양의 채우기 핸들을 D2셀까지 끌면 쉽게 수식이 복사됩니다.
그런데, 2022-02-11로 표시되지 않고, #######라고 표시되는 것은 열 너비가 좁아서 그런 것으로 열 너비를 직접 입력할 수도 있지만, 열 문자 D와 E사이의 세로 경계선을 더블 클릭하면 자동으로 열 너비가 조절되므로 편리합니다.
세로 경계선을 더블 클릭하면 아래와 같이 2022-02-11이 정상적으로 표시됩니다.
다. 날짜를 문자형식으로 입력하면 에러 발생
(1) 작은따옴표 다음에 2022-04-11식으로 입력한 경우
일반적으로 숫자를 문자열로 바꿀 때 작은따옴표를 앞에 붙이는데, 문자열이라도 수식에서 사용할 때는 정상적으로 계산됩니다.
다시 말해 A3셀에 '2022-04-11이라고 입력한 다음 B2셀부터 D2셀까지 복사한 후 B3셀에 붙여 넣으면
정상적으로 6월과 2월이 구해집니다.
(2) 큰 따옴표를 이용해 "2022-04-11"로 입력한 경우
A4셀에 "2022-04-11"이라고 입력한 다음 이번에는 마우스로 B3셀부터 D4셀까지 끌어 범위를 선택한 후 채우기 핸들을 더블 클릭하면 4행에 수식이 복사되는데, 날짜 표시형식이 아닌 문자열 표시형식이기 때문에 #VALUE! 에러가 발생합니다.
DateDif함수를 사용할 때는 문자열로 날짜를 입력해도 되는데 이것과 다른 점입니다.
라. 특수한 날짜인 경우 Edate결과 확인하기
(1) 2/28에서 한 달 전후인 경우
2/28이 말일이므로 한 달 후면 3/31이 구해질 것 같은데, 3/28이 구해집니다. 한 달 전도 1/31일 것 같은데 1/28이 구해집니다. 만약 3/31이 맞는 답이라면 특별한 처리를 해야 하겠습니다.
(2) 3/31에서 한 달 전후인 경우
A6셀에 3/31이라고 입력하고, B6셀에 1이라고 입력하니 위의 수식을 자동으로 복사합니다.
결과를 확인해 보니 한 달 후에 31일이 없어서 4/30이 되고, 한 달 전에 31일이 없어서 2/28일이 구해집니다.
(3) 윤년 3/31에서 한 달 전후를 구할 경우
2020/03/31이라고 입력하고, 1개월 전후를 구하니 4/30은 동일한데 2월은 29일이 반환됩니다.
(4) 윤년 2/29에서 한 달 전후를 구할 경우
2/29일이라고 해서 특별하지는 않고, 3/29과 1/29이 구해집니다.
(5) 2023/1/1에서 한 달 전후를 구할 경우
1/1에서 한 달 전후를 구할 경우 한 달 전후 모두 1일로 반환됩니다.
'Excel' 카테고리의 다른 글
DateValue, TimeValue : 텍스트 형식의 날짜, 시간을 정수 또는 소수로 변환 (0) | 2023.04.13 |
---|---|
영업일 기준 전후 날짜 구하기 - Workday, Workday.Intl 함수 (0) | 2023.04.12 |
날짜간의 차이 계산(2) : Days 함수 (0) | 2023.04.06 |
날짜간의 차이 계산(1) : +,- 연산자와 DateDif 함수 (0) | 2023.04.05 |
조견표에서 일치하는 값 찾기(3) - Aggregate 함수 (0) | 2023.04.04 |