엑셀에서 만 나이를 구하려면 =DATEDIF(생년월일, TODAY(), "Y") 하나면 됩니다. 생일이 지났는지까지 자동으로 반영됩니다. 그런데 이 DATEDIF 함수는 엑셀 함수 목록에 나타나지 않아서 존재 자체를 모르는 분이 많습니다. 그래서 =(TODAY()-생년월일)/365 같은 방식을 쓰다가 나이가 하루 이틀씩 틀어집니다.
나이는 세 가지가 있습니다
한국은 2023년 6월부터 만 나이로 통일됐지만, 실무에서는 여전히 셋을 구분해서 써야 합니다.
| 구분 | 계산법 | 1990년 5월 20일생 (2026년 9월 기준) |
| 만 나이 | 생일 지났으면 +1 | 36세 |
| 연 나이 | 올해 − 태어난 해 | 36세 |
| 세는 나이 | 연 나이 + 1 | 37세 |
같은 사람인데 기준에 따라 다릅니다. 보험·병역·주민등록은 만 나이, 일부 행정 기준은 연 나이를 씁니다. 어느 쪽인지 확인하고 계산하세요.
1. 만 나이 — DATEDIF
=DATEDIF(B2, TODAY(), "Y")
B2에 생년월일이 있으면 만 나이가 나옵니다.
주의: 이 함수는 자동완성 목록에 안 뜹니다. =DAT 까지 쳐도 DATEDIF는 나타나지 않습니다. 그래도 정상 작동하니 이름을 끝까지 직접 입력하세요. 하위 호환용으로 남겨 둔 함수라 문서화가 안 되어 있을 뿐입니다.
특정 날짜 기준으로 계산하려면
=DATEDIF(B2, $D$1, "Y")
D1에 기준일을 넣어 두면 "입사일 기준 나이" 같은 것도 구할 수 있습니다.
"OO세 O개월"로 표시
=DATEDIF(B2,TODAY(),"Y") & "세 " & DATEDIF(B2,TODAY(),"YM") & "개월"
2. 연 나이 — YEAR
=YEAR(TODAY()) - YEAR(B2)
생일과 무관하게 연도만 뺍니다. 일부 병역·행정 기준에서 씁니다.
3. 세는 나이 (한국식 나이)
=YEAR(TODAY()) - YEAR(B2) + 1
지금은 공식적으로 쓰지 않지만, 기존 자료를 변환할 때 필요할 수 있습니다.
4. 왜 365로 나누면 안 되나
=(TODAY()-B2)/365
이 방식은 윤년 때문에 오차가 쌓입니다. 4년마다 하루씩 어긋나서 40세쯤 되면 열흘 가까이 틀어집니다. 생일 전후에 나이가 잘못 나옵니다.
/365.25로 바꿔도 근본 해결이 안 됩니다. 반드시 DATEDIF를 쓰세요.
퇴직금이나 연차 계산에 이 방식을 쓰면 분쟁의 소지가 됩니다.
5. 실무에서 자주 쓰는 응용
정년까지 남은 기간
=DATE(YEAR(B2)+60, MONTH(B2), DAY(B2)) - TODAY()
60세 생일까지 남은 일수입니다. 연 단위로 보려면
=60 - DATEDIF(B2, TODAY(), "Y")
만 나이로 연령대 구분
=IF(C2<20,"10대", IF(C2<30,"20대", IF(C2<40,"30대", IF(C2<50,"40대", IF(C2<60,"50대","60대 이상")))))
C2에 만 나이가 있다고 가정한 수식입니다.
생일이 이번 달인 사람 표시
=IF(MONTH(B2)=MONTH(TODAY()), "이번 달 생일", "")
만 19세 이상인지 판정 (성인 여부)
=IF(DATEDIF(B2,TODAY(),"Y")>=19, "성인", "미성년")
보험 나이 (상령일 기준)
보험은 만 나이에 6개월을 더해 반올림하는 방식을 씁니다.
=DATEDIF(B2, TODAY(), "Y") + IF(DATEDIF(B2, TODAY(), "YM")>=6, 1, 0)
만 나이 이후 6개월이 지났으면 한 살 더합니다. 보험사마다 기준이 다를 수 있으니 실제 가입 시에는 해당 보험사 기준을 확인하세요.

6. 주민등록번호로 생년월일 뽑기
=DATE(
IF(MID(A2,8,1)="1", 1900, IF(MID(A2,8,1)="2", 1900,
IF(MID(A2,8,1)="3", 2000, IF(MID(A2,8,1)="4", 2000, 1900)))) + VALUE(LEFT(A2,2)),
VALUE(MID(A2,3,2)),
VALUE(MID(A2,5,2)))
뒷자리 첫 숫자로 1900년대인지 2000년대인지 판단합니다. 1·2는 1900년대, 3·4는 2000년대입니다.
주의: 주민등록번호는 민감한 개인정보입니다. 꼭 필요한 경우가 아니면 다루지 마세요. 파일을 공유할 때는 반드시 마스킹하고, 보관 기간이 지나면 삭제해야 합니다.
7. 자주 나오는 문제
문제 1. DATEDIF가 #NAME? 오류를 냅니다
함수 이름 오타이거나 한글 입력 상태로 입력한 경우입니다. 영문 입력 상태에서 DATEDIF를 정확히 치세요.
문제 2. #NUM! 오류가 납니다
시작일이 종료일보다 나중입니다. 인수 순서를 확인하세요. 생년월일이 먼저입니다.
문제 3. 생년월일이 왼쪽 정렬되어 있습니다
날짜가 아니라 텍스트로 저장된 것입니다. 1990.05.20 처럼 점으로 입력하면 이렇게 됩니다.
해결: 바꾸기(Ctrl+H)로 점을 하이픈으로 바꾼 뒤, 데이터 → 텍스트 나누기를 마침까지 눌러 변환하세요. 자세한 내용은 초록색 삼각형 없애는 법에 정리했습니다.
문제 4. 나이가 날짜로 표시됩니다
결과 셀의 서식이 날짜로 되어 있습니다. 홈 → 표시 형식을 일반으로 바꾸세요.
문제 5. 파일을 열 때마다 나이가 바뀝니다
TODAY()를 썼기 때문입니다. 이게 정상 동작입니다. 특정 시점으로 고정하려면 기준일 셀을 따로 만들어 참조하세요.
8. DATEDIF 단위 코드 정리
| 코드 | 의미 |
| "Y" | 만 년수 (나이) |
| "M" | 만 개월수 |
| "D" | 총 일수 |
| "YM" | 년을 뺀 나머지 개월 |
| "MD" | 월을 뺀 나머지 일 |
| "YD" | 년을 뺀 나머지 일 |
Y, YM, MD를 조합하면 "36세 3개월 18일" 같은 표기를 만들 수 있습니다.
마무리
만 나이는 DATEDIF 하나면 끝입니다. 함수 목록에 안 뜨니 이름만 기억해 두세요.
그리고 365로 나누는 습관은 오늘 버리시길 권합니다. 나이든 근속연수든 마찬가지입니다.
관련 글
- 엑셀 날짜 계산 완전정리 — 근속연수·나이·D-day 한 번에
- 엑셀 셀 왼쪽 위 초록색 삼각형 없애는 법
- 엑셀 셀 나누기·합치기 완전정리
- 연차휴가 발생 기준 완전정리
- 퇴직금 계산기 엑셀로 직접 만드는 법
공식 출처
- Microsoft 지원 — DATEDIF 함수: https://support.microsoft.com/ko-kr/office/datedif-%ED%95%A8%EC%88%98-25dba1a4-2812-480b-84dd-8b32a451b35c
'엑셀 실무' 카테고리의 다른 글
| 엑셀_사용자지정_정렬 (0) | 2026.09.10 |
|---|---|
| 엑셀 두 칸 합치는 방법 — 셀 병합 vs 값 합치기, 뭘 써야 하나 (0) | 2026.09.08 |
| 다 알것 같지만 잘 모르는 엑셀 숨긴 행·열 다시 보이게 하는 법 (1행·A열이 안 보일 때까지) (0) | 2026.09.07 |
| 엑셀 시트가 사라졌을 때 찾는 법 (숨김·매우 숨김·탭 표시 해제) (0) | 2026.09.03 |
| 엑셀 셀 왼쪽 위 초록색 삼각형 없애는 법 (숫자가 텍스트로 저장됨) (0) | 2026.09.01 |