엑셀 날짜 함수 총정리: TODAY, DATEDIF, EDATE, EOMONTH, NETWORKDAYS 사용법
TUREFF• •0
근속 연수, 계약 만료일, 영업일 수, 요일 표시처럼 날짜 계산은 실무에서 자주 나오지만 함수 이름이 비슷해 헷갈립니다. 자주 쓰는 날짜 함수를 용도별로 묶고, 날짜가 숫자로 보이는 문제까지 정리했습니다.
먼저 알아 둘 것: 엑셀의 날짜는 숫자입니다
엑셀은 날짜를 1900년 1월 1일을 1로 하는 일련번호로 저장합니다. 그래서 날짜끼리 빼면 일수가 나오고, 날짜에 7을 더하면 일주일 뒤가 됩니다. 아래 함수들은 모두 이 원리 위에서 동작합니다.
오늘 날짜와 날짜 만들기
- TODAY(): 오늘 날짜. 파일을 열 때마다 바뀝니다.
- NOW(): 오늘 날짜와 현재 시각.
- DATE(연, 월, 일): 숫자 세 개로 날짜를 만듭니다. =DATE(2026,10,9)
- 바뀌지 않는 오늘 날짜를 넣고 싶다면 함수 대신 Ctrl+; 를 누르세요. 입력한 날짜가 값으로 고정됩니다.
DATE는 넘치는 값을 알아서 처리합니다. =DATE(2026,13,1)은 2027년 1월 1일이 되고, =DATE(2026,3,0)은 2월의 마지막 날이 됩니다.
연·월·일·요일 꺼내기
- YEAR(날짜), MONTH(날짜), DAY(날짜): 각각 연도, 월, 일을 숫자로 돌려줍니다.
- WEEKDAY(날짜): 요일을 숫자로 돌려줍니다. 기본값은 일요일이 1, 토요일이 7입니다. 두 번째 인수에 2를 주면 월요일이 1, 일요일이 7이 되어 주말 판별이 쉬워집니다. =WEEKDAY(A2,2)>5 이면 주말입니다.
- 요일을 글자로 보고 싶다면 =TEXT(A2,"aaa") 는 '월', =TEXT(A2,"aaaa") 는 '월요일'처럼 표시합니다(한국어 표시 설정 기준). 영어 요일은 "ddd"를 씁니다.
기간 계산: DATEDIF
=DATEDIF(시작일, 종료일, 단위)
- "Y": 만 몇 년인지 (만 나이, 근속 연수)
- "M": 만 몇 개월인지
- "D": 며칠인지
- "YM": 연을 뺀 나머지 개월 수
근속 기간을 '3년 4개월'처럼 쓰려면 이렇게 합니다.
=DATEDIF(A2,TODAY(),"Y")&"년 "&DATEDIF(A2,TODAY(),"YM")&"개월"
DATEDIF는 함수 목록과 자동 완성에 나오지 않는 숨은 함수입니다. Lotus 1-2-3 파일과의 호환을 위해 남아 있는 함수라서, 철자를 끝까지 직접 입력해야 합니다. 마이크로소프트 도움말은 이 함수가 일부 상황에서 잘못된 결과를 낼 수 있다고 안내하며, 특히 "MD" 단위(월을 뺀 나머지 일수)는 쓰지 말라고 권합니다. 시작일이 종료일보다 늦으면 #NUM! 오류가 납니다. 단순 일수는 =B2-A2 처럼 빼기로 구하는 편이 확실합니다.
몇 달 뒤, 그 달의 마지막 날: EDATE와 EOMONTH
- EDATE(시작일, 개월 수): 몇 개월 뒤(앞)의 같은 날짜. 계약 시작일이 A2이고 12개월 계약이면 =EDATE(A2,12)-1 이 만료일입니다. 1월 31일에서 한 달 뒤처럼 해당 날짜가 없으면 그 달의 마지막 날로 맞춰 줍니다.
- EOMONTH(시작일, 개월 수): 몇 개월 뒤 달의 마지막 날. =EOMONTH(A2,0) 은 이번 달 말일, =EOMONTH(A2,-1)+1 은 이번 달 1일입니다. 월말 마감일, 다음 달 말 지급일 계산에 씁니다.
두 함수 모두 결과가 숫자로 보이면 셀 서식을 날짜로 바꾸면 됩니다.
영업일 계산: NETWORKDAYS와 WORKDAY
- NETWORKDAYS(시작일, 종료일, 휴일 범위): 두 날짜 사이의 평일 수(시작일과 종료일 포함).
- WORKDAY(시작일, 일수, 휴일 범위): 며칠 영업일 뒤의 날짜. 결재 후 5영업일 안에 처리 같은 기한 계산에 씁니다.
- 공휴일은 엑셀이 모르기 때문에 별도 시트에 그해 공휴일 목록을 적어 두고 세 번째 인수로 지정해야 합니다. 대체공휴일과 임시공휴일도 직접 추가하세요.
- 토·일이 아닌 다른 요일이 휴무라면 NETWORKDAYS.INTL과 WORKDAY.INTL로 주말 요일을 바꿀 수 있습니다.
날짜가 숫자로 보이거나 계산이 안 될 때
- 46000 같은 숫자로 보인다: 날짜 일련번호가 보이는 것입니다. 셀 서식(Ctrl+1)에서 날짜 형식으로 바꾸면 됩니다.
- 2026.10.09처럼 입력했는데 계산이 안 된다: 마침표로 구분한 날짜는 텍스트로 들어갑니다. 하이픈(2026-10-09)이나 슬래시로 입력하세요. 이미 입력된 자료는 바꾸기(Ctrl+H)로 마침표를 하이픈으로 바꾸면 날짜로 인식되는 경우가 많습니다.
- 20261009처럼 여덟 자리 숫자: =DATE(LEFT(A2,4),MID(A2,5,2),RIGHT(A2,2)) 로 변환합니다.
- 셀에 ####가 보인다: 열 너비가 좁은 것입니다. 열 경계를 더블클릭하세요.
자주 쓰는 공식 모음
- 오늘까지 경과 일수: =TODAY()-A2
- 만 나이: =DATEDIF(생년월일,TODAY(),"Y")
- 다음 달 말일: =EOMONTH(A2,1)
- 6개월 뒤: =EDATE(A2,6)
- 이번 달 영업일 수: =NETWORKDAYS(EOMONTH(A2,-1)+1,EOMONTH(A2,0),공휴일)
날짜 계산이 하루씩 어긋나거나 DATEDIF 결과가 이상하게 나온 경험이 있다면 댓글로 수식과 함께 남겨 주세요. 근속 연수, 계약 기간 계산에 쓰는 나만의 공식도 공유해 주시면 좋겠습니다.