"입사일로부터 몇 년 근무했는지", "생년월일로 나이 계산", "마감일까지 남은 일수" 같은 작업은 실무에서 자주 발생해요.
엑셀의 날짜 함수를 쓰면 이런 계산을 수식 하나로 처리할 수 있습니다.
이 글에서는 오늘 날짜, 날짜 구성 요소 추출, 날짜 차이 계산, 날짜 생성, 요일 관련 함수까지 다룹니다.
엑셀의 날짜 처리 방식
먼저 알아야 할 기본 원리가 있어요.
엑셀은 날짜를 내부적으로 숫자(시리얼 번호)로 저장합니다.
1900년 1월 1일 = 1, 1900년 1월 2일 = 2, ... 이런 식이에요.
2025년 1월 1일은 시리얼 번호 45658에 해당합니다.
셀에 "2025-03-15"로 보이는 건 셀 서식이 날짜 형식이기 때문이에요.
실제로는 숫자이므로 날짜끼리 빼기(-)만 해도 일수 차이를 구할 수 있습니다.
TODAY 함수 - 오늘 날짜
=TODAY()
인수가 없어요. 괄호만 쓰면 됩니다.
파일을 열거나 시트를 다시 계산할 때마다 오늘 날짜로 자동 갱신돼요.
| 수식 | 결과 (오늘이 2026-02-18일 때) |
|---|---|
| =TODAY() | 2026-02-18 |
| =TODAY()-7 | 2026-02-11 (7일 전) |
| =TODAY()+30 | 2026-03-20 (30일 후) |
NOW 함수 - 현재 날짜+시간
=NOW()
TODAY와 비슷하지만 시간까지 포함해요.
결과 예시: 2026-02-18 14:30
시간 정보가 필요 없으면 TODAY를 사용하세요.
NOW는 타임스탬프가 필요한 경우에 활용합니다.
YEAR, MONTH, DAY - 날짜 구성 요소 추출
=YEAR(날짜) → 연도
=MONTH(날짜) → 월
=DAY(날짜) → 일
| 수식 (A2 = 2025-03-15) | 결과 |
|---|---|
| =YEAR(A2) | 2025 |
| =MONTH(A2) | 3 |
| =DAY(A2) | 15 |
7편에서 LEFT 함수로 날짜를 추출하면 안 되는 이유를 언급했어요.
날짜 셀의 실제 값은 숫자이므로, 반드시 YEAR/MONTH/DAY 함수를 사용해야 합니다.
DATE 함수 - 연/월/일로 날짜 생성
=DATE(년, 월, 일)
개별 셀에 있는 연, 월, 일 값을 합쳐서 하나의 날짜로 만들어요.
| 수식 | 결과 |
|---|---|
| =DATE(2025,3,15) | 2025-03-15 |
| =DATE(2025,13,1) | 2026-01-01 (13월 → 다음 해 1월로 자동 변환) |
| =DATE(YEAR(A2),MONTH(A2)+3,DAY(A2)) | A2 날짜로부터 3개월 후 |
월에 13 이상의 값을 넣으면 자동으로 연도가 넘어가요.
이 특성을 이용하면 "N개월 후 날짜"를 쉽게 계산할 수 있습니다.
날짜 차이 계산 - 빼기와 DATEDIF
방법 1 - 단순 빼기 (일수 차이)
날짜끼리 빼면 일수 차이가 나와요.
=B2-A2
A2: 2025-01-10, B2: 2025-03-15 → 결과: 64 (일)
결과 셀의 서식이 날짜로 되어 있으면 숫자가 아닌 날짜로 표시될 수 있어요.
셀 서식을 "일반" 또는 "숫자"로 바꾸면 일수가 정상 표시됩니다.
방법 2 - DATEDIF (년/월/일 단위 차이)
=DATEDIF(시작일, 종료일, 단위)
| 단위 | 의미 | 예시 (2023-04-01 ~ 2025-03-15) |
|---|---|---|
| "Y" | 만 몇 년 | 1 |
| "M" | 만 몇 개월 | 23 |
| "D" | 총 며칠 | 714 |
| "YM" | 년을 제외한 나머지 개월 수 | 11 |
| "MD" | 월을 제외한 나머지 일수 | 14 |
| "YD" | 년을 제외한 나머지 일수 | 349 |
DATEDIF는 엑셀 수식 자동 완성 목록에 표시되지 않아요.
숨겨진 함수이지만 정상적으로 작동합니다. 직접 수식을 타이핑해서 입력하면 돼요.
주의: 시작일이 종료일보다 늦으면 #NUM! 오류가 나요.
반드시 시작일 < 종료일 순서로 입력해야 합니다.
실무 예제 1 - 근속 연수 계산
입사일로부터 현재까지 근속 연수를 구하는 예제입니다.
| A | B | |
|---|---|---|
| 1 | 이름 | 입사일 |
| 2 | 김민수 | 2019-03-01 |
| 3 | 이지은 | 2021-07-15 |
| 4 | 박준호 | 2023-01-10 |
C2에 입력:
=DATEDIF(B2,TODAY(),"Y")
결과: 6 (2026-02-18 기준, 만 6년)
"Y년 M개월" 형식으로 표시하려면:
=DATEDIF(B2,TODAY(),"Y") & "년 " & DATEDIF(B2,TODAY(),"YM") & "개월"
결과: 6년 11개월
실무 예제 2 - 마감일까지 남은 일수
| A | B | |
|---|---|---|
| 1 | 프로젝트 | 마감일 |
| 2 | 웹개편 | 2026-03-31 |
| 3 | 앱출시 | 2026-06-15 |
C2에 입력:
=B2-TODAY()
결과: 41 (2026-02-18 기준)
IF와 조합하면 기한 경과 여부도 표시할 수 있어요.
=IF(B2-TODAY()>=0, B2-TODAY() & "일 남음", "기한 경과")
실무 예제 3 - 나이 계산
생년월일로 만 나이를 구하는 수식이에요.
=DATEDIF(A2,TODAY(),"Y")
A2에 1990-05-20이 있으면, 2026-02-18 기준 결과는 35 (만 35세)입니다.
WEEKDAY 함수 - 요일 구하기
=WEEKDAY(날짜, [유형])
날짜에 해당하는 요일을 숫자로 반환해요.
유형을 생략하면 일요일=1, 월요일=2, ... 토요일=7 입니다.
| 유형 | 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|---|
| 1 (기본) | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 2 | 7 | 1 | 2 | 3 | 4 | 5 | 6 |
요일을 한글로 표시하려면 TEXT 함수를 사용하세요.
=TEXT(A2,"AAAA") → 화요일
=TEXT(A2,"AAA") → 화
EDATE 함수 - N개월 후/전 날짜
=EDATE(시작일, 개월수)
양수면 N개월 후, 음수면 N개월 전 날짜를 반환해요.
| 수식 (A2 = 2025-03-15) | 결과 |
|---|---|
| =EDATE(A2,3) | 2025-06-15 |
| =EDATE(A2,-1) | 2025-02-15 |
| =EDATE(A2,12) | 2026-03-15 |
계약 만료일, 정기 점검일 등 "N개월 후" 날짜를 구할 때 편리해요.
DATE 함수로 월을 더하는 것과 결과는 같지만, EDATE가 더 직관적입니다.
EOMONTH 함수 - 해당 월의 말일
=EOMONTH(시작일, 개월수)
지정한 개월수만큼 이동한 달의 마지막 날을 반환해요.
개월수를 0으로 넣으면 해당 월의 말일을 구할 수 있습니다.
| 수식 (A2 = 2025-03-15) | 결과 |
|---|---|
| =EOMONTH(A2,0) | 2025-03-31 |
| =EOMONTH(A2,1) | 2025-04-30 |
| =EOMONTH(A2,-1) | 2025-02-28 |
월말 마감일, 급여일 계산 등에 활용해요.
2월이 28일인지 29일인지 자동으로 처리해주므로 윤년도 신경 쓸 필요 없습니다.
자주 하는 실수 / 주의사항
1. 날짜처럼 보이지만 텍스트인 경우
다른 시스템에서 가져온 날짜가 텍스트로 인식되는 경우가 있어요.
이 경우 YEAR, DATEDIF 등이 오류를 반환합니다.
셀을 선택하고 왼쪽 정렬이면 텍스트, 오른쪽 정렬이면 날짜(숫자)예요.
텍스트를 날짜로 변환하려면 DATEVALUE 함수를 사용합니다.
=DATEVALUE("2025-03-15")
2. DATEDIF에서 시작일 > 종료일이면 오류
DATEDIF는 시작일이 종료일보다 크면 #NUM! 오류가 나요.
IF로 감싸서 방어하거나, 날짜 순서를 확인하세요.
3. TODAY/NOW는 휘발성 함수
TODAY와 NOW는 파일을 열 때마다 값이 바뀌어요.
특정 시점의 날짜를 고정하려면 함수 대신 Ctrl+; (오늘 날짜 입력 단축키)로 값을 직접 넣으세요.
관련 함수 안내
근무일 수를 계산하는 NETWORKDAYS 함수도 있어요.
주말과 공휴일을 자동으로 제외하고 영업일 수만 세줍니다.
다음 글에서는 INDIRECT와 OFFSET 함수를 다룰 예정이에요.
동적 범위를 만들어서 수식이나 드롭다운의 참조 범위를 유동적으로 변경하는 함수입니다.
'엑셀' 카테고리의 다른 글
| 엑셀 차트 만들기 - 기초부터 서식 설정까지 (0) | 2026.02.21 |
|---|---|
| 엑셀 INDIRECT OFFSET 함수 사용법 - 동적 참조와 동적 범위 (0) | 2026.02.21 |
| 엑셀 틀 고정 시트 보호 사용법 - 머리글 고정과 데이터 보호 (0) | 2026.02.19 |
| 엑셀 CONCATENATE TEXTJOIN 함수 사용법 - 텍스트 합치기 (1) | 2026.02.18 |
| 엑셀 데이터 유효성 검사 사용법 - 드롭다운 목록과 입력 제한 (0) | 2026.02.18 |