■ 엑셀 날짜 관련 함수
엑셀에는 날짜와 관련하여 다양한 함수를 제공합니다. 엑셀로 작업을 하다 보면 전월, 익월, 월말 일자, 영업일수 등 필요한 경우들이 많습니다. SUMIFS등 일정 기간의 합계 등을 구하는 경우 필수입니다. 아래 표에 주로 사용하는 날짜 관련 함수와 예시입니다.
| 함수명 | 설명 |
| TODAY | 현재 날짜를 날짜 서식으로 반환. =TODAY() 반환값 : 2023-10-29 |
| YEAR | 입력한 날짜의 연도를 표시. 1900에서 9999사이의 정수로 반환. =YEAR(TODAY()) 반환값 : 2023 |
| MONTH | 입력한 날짜의 월을 표시. 1에서 12 사이의 숫자로 해당 월을 반환. =MONTH(TODAY()) 반환값 : 10 |
| DAY | 입력한 날짜의 일을 표시. 1에서 31 사이의 숫자로 해당 일자를 반환. =DAY(TODAY()) 반환값 : 29 |
| DATE | 년(year), 월(month), 일(day)을 입력하면 날짜 서식으로 반환. =DATE(2023, 10, 1) 반환값 : 2023-10-01 |
| EDATE | 입력한 날짜를 지정된 개월 수 이전이나 이후의 날짜로 반환. =EDATE("2023-10-29",1) 반환값 : 2023-11-29 |
| EOMONTH | 입력한 날짜를 지정된 개월 수 이전이나 이후의 마지막 날인 날짜로 반환. =EOMONTH("2023-10-29", 0) 반환값 : 2023-10-31 =EOMONTH("2023-10-29", -1) 반환값 : 2023-09-30 =EOMONTH("2023-10-29", 1) 반환값 : 2023-11-30 |
| DATEDIF | 입력한 날짜 사이의 년(year), 월(month), 일(day)을 반환. =DATEDIF("2021-09-01", "2023-10-01", "y") 반환값 : 2 =DATEDIF("2023-09-01", "2023-10-01", "m") 반환값 : 1 =DATEDIF("2023-10-01", "2023-10-29", "d") 반환값 : 28 |
| DATEVALUE | 텍스트 형식으로 입력된 날짜를 날짜 일련번호로 반환. =DATEVALUE("2023-10-29") 반환값 : 45228 |
| NETWORKDAYS | 시작일부터 종료일까지 주말을 제외한 영업일 수를 반환. =NETWORKDAYS("2023-10-01", "2023-10-31") |
■ 날짜 함수 사용 예시
1. TODAY
보통 일일 현황 리포트 등 매일 사용되는 경우 사용하거나 오늘 날짜를 기준으로 년, 월, 일을 추출하거나 다른 날짜와 비교 연산을 통해 경과일 등을 계산할 수 있습니다. 일보 같은 경우에는 단독으로 사용되지만 수식에서는 다른 함수들과 함께 사용되는 경우가 많습니다.
오늘 날짜 : 2023-11-06
(1) 기준 날짜의 월 값을 구함
=MONTH(TODAY())
# 반환 값 = 11
(2) 이번 달 경과일수를 구함
=TODAY() - "2023-11-01"
# 반환 값 = 5
(3) D-DAY 계산. 오늘로부터 D-100일 날짜 구함
=TODAY() + 100
# 반환 값 = 2024-02-14
2. DATE
날짜 값의 일련번호 형태가 아닌 년, 월, 일이 개별 숫자로 표기 되어 있는 경우 년, 월, 일 숫자 값을 일련번호 형태로 변환합니다.
년 = 2023, 월 = 11, 일 = 6
=DATE(년, 월, 일)
=DATE(2023, 11, 6)
# 반환 값 : 일련번호 - 45236 / 날짜형식 - 2023-11-06
3. EDATE
수식에서 기간을 기준으로 값을 가져올 경우 유용합니다. 예를 들어 DB에서 오늘 날짜를 기준으로 직전 3개월까지의 판매량을 구할 경우 SUMIFS 등 합계를 구하는 함수와 함께 활용됩니다.
A열은 판매 건수, B열은 판매 일자인 경우
=SUMIFS(A:A, B:B, ">="&EDATE(TODAY(), -3), "<="&TODAY())
오늘부터 3개월 이전의 판매 건수의 합계를 구하는 수식입니다.
EDATE에서 음수가 아닌 양수를 입력할 경우에는 기준 개월 후의 날짜를 구합니다.
=EDATE("2023-11-06", 1)
# 반환 값 : 2024-12-06
4. EOMONTH
기준 날짜의 말일자를 구하는 경우 사용합니다.
=EOMONTH("2023-11-06", 0)
# 반환 값 : 2023-11-30
=EOMONTH("2023-11-06", 1)
# 반환 값 : 2023-12-31
=EOMONTH("2023-11-06", -1)
# 반환 값 : 2023-10-31
개월 수 입력하는 부분에 0을 입력할 경우 당월말, 음수는 이전이며 양수는 이후의 말일자를 구합니다.
EOMONTH를 활용하여 매월 1일을 기준으로 값을 반환할 수 있습니다.
=EOMONTH("2023-11-06", -1) + 1
# 반환 값 : 2023-11-01
■ 날짜 서식
엑셀 셀에 표시된 날짜는 보이는 그대로의 값이 아닌 일련번호로 되어 있습니다. 셀에 보이는 날짜는 2023-11-06이지만 값은 날짜 일련번호인 45231입니다. 날짜로 보이게 서식을 지정했기 때문에 날짜의 형태로 표시됩니다. 단축키를 활용해 일련번호 또는 날짜 형태로 쉽게 바꿀 수 있습니다.
일련번호가 입력되어 있는 셀을 선택 후
Ctrl + Shift + 3 : 날짜 서식으로
Ctrl + Shift + ~ : 일반 서식으로(숫자 형태로 보입니다)
일련번호 값이 아닌 텍스트 형식으로 날짜가 입력되어 있는 경우 DATEVALUE 수식으로 일련번호로 변환합니다.
=DATEVALUE("2023-11-06")
# 반환 값 : 45236
반대로 날짜 일련번호를 텍스트 형식으로 변경할 경우
=TEXT(TODAY(), "yyyy-mm-dd")
# 반환 값 : 2023-11-06 (텍스트)
날짜의 월만 표시되게 하고 싶을 경우에는 TEXT 수식에서 서식 종류를 "M" 또는 "MM"으로 변경하거나 Ctrl + 1을 셀서식-사용자지정에서 형식을 "m" 또는 "mm"으로 변경합니다. 년을 표기할 경우 "y", 일을 표기할 경우 "d"로 변경합니다.