엑셀 생년월일로 만 나이 자동 계산하기

· 엉클벤 엑셀함수(스프레드시트)

핵심 요약

  • 생년월일 열 옆에 만 나이를 넣고, 파일을 열 때마다 오늘 날짜 기준으로 저절로 바뀌게 합니다.
  • 쓰는 조합은 =DATEDIF(생년월일, TODAY(), "Y")입니다. 시험에서 자주 보는 YEAR(TODAY())-YEAR(생년월일)과 무엇이 다른지도 비교합니다.
  • 2026년 9월 24일 기준으로 1985년 9월 25일생은 만 40세입니다. 연도만 빼면 41이 나와 한 살 차이가 납니다.

고객 명단에 나이 열을 손으로 적어 두면 해가 바뀔 때마다 고쳐야 합니다. 생일이 지난 사람만 한 살씩 올려야 하니 명단이 길수록 틀리기 쉽습니다. 영업하는 분이라면 명단을 열 때마다 나이가 오늘 기준으로 다시 계산되는 편이 훨씬 편합니다. 생년월일만 적어 두고 나이는 수식에 맡기는 방법입니다.

자격증 공부를 하는 학생에게도 나이 계산은 익숙한 문제입니다. 오늘 날짜를 구하는 TODAY, 날짜에서 연도만 꺼내는 YEAR를 함께 쓰는 문제가 많습니다. 이 글은 "목적별 함수 조합" 시리즈의 한 편으로, 만 나이를 정확히 구하는 방법과 연도만 빼는 방법을 나란히 놓고 차이를 설명합니다.

생년월일로 만 나이 자동 - DATEDIF TODAY 조합

예제 표 — 생년월일만 있는 고객 명단

아래처럼 A열에 이름, B열에 생년월일이 있고 C열을 비워 둔 명단을 준비합니다. 이름과 날짜는 모두 가상입니다. 맨 윗줄의 A·B·C는 열 문자, 맨 왼쪽 숫자는 행 번호입니다.

ABC
1이름생년월일만 나이
2김민준1990-03-15
3이서연1985-09-24
4박지훈1985-09-25
5최수아2008-12-01
6정우진1972-01-10
7강하은1999-11-30
8윤도현1963-07-07
9한지아2010-02-14

B열은 반드시 날짜로 들어 있어야 합니다. 셀을 클릭했을 때 수식 입력줄에 날짜가 보이고, 셀 안에서 오른쪽으로 붙어 있으면 대개 날짜로 인식된 것입니다. 글자로 들어 있을 때 생기는 문제는 아래 "자주 막히는 곳"에서 다룹니다.

완성 수식 — C2에 넣고 아래로 채우기

=DATEDIF(B2,TODAY(),"Y")
  1. C2 셀을 클릭합니다.
  2. 위 수식을 입력하고 Enter를 누릅니다.
  3. C2를 다시 클릭하고, 셀 오른쪽 아래의 작은 네모(채우기 핸들)를 C9까지 끌어내립니다.

수식을 아래로 채우면 B2가 B3, B4…로 자동으로 바뀝니다. TODAY()는 칸이 없으니 바뀔 것이 없습니다. 그래서 이 수식에는 $(절대참조)가 필요 없습니다.

오늘이 2026년 9월 24일이라고 할 때 결과는 아래와 같습니다. 비교를 위해 D열에 연도만 뺀 값도 적었습니다.

ABC (만 나이)D (연도만 뺀 값)
2김민준1990-03-153636
3이서연1985-09-244141
4박지훈1985-09-254041
5최수아2008-12-011718
6정우진1972-01-105454
7강하은1999-11-302627
8윤도현1963-07-076363
9한지아2010-02-141616

이서연 님은 오늘이 생일이라 41세가 되었고, 하루 늦게 태어난 박지훈 님은 아직 40세입니다. 올해 생일이 아직 오지 않은 박지훈·최수아·강하은 세 사람만 두 열의 값이 다릅니다. 여러분이 표를 따라 만들면 C열은 여러분 컴퓨터의 오늘 날짜 기준으로 나오므로 위 표와 다를 수 있습니다.

수식 풀어 보기 — 안쪽부터 한 겹씩

김민준 님이 있는 2행을 예로, 가장 안쪽부터 바깥으로 계산 순서를 따라가 보겠습니다.

  1. TODAY() — 오늘 날짜. 괄호 안에 아무것도 넣지 않습니다. 엑셀은 날짜를 1900년 1월 1일을 1로 하는 일련번호로 저장하는데, 2026년 9월 24일은 46289입니다. 셀에는 날짜 모양으로 보입니다.
  2. B2 — 생년월일. 1990년 3월 15일은 일련번호 32947입니다. 날짜끼리 비교하고 계산할 수 있는 것은 이렇게 숫자로 저장되어 있기 때문입니다.
  3. DATEDIF(32947, 46289, "Y") — 두 날짜 사이의 꽉 찬 햇수. 세 번째 인수 "Y"는 "전체 연수"를 뜻합니다. 생일이 지나야 1년이 채워진 것으로 세므로 결과는 36, 곧 만 나이입니다.

DATEDIF의 인수는 순서대로 시작 날짜, 끝 날짜, 단위입니다. 단위에는 "Y"(전체 연수) 말고도 "M"(전체 개월 수), "D"(일 수), "YM"(연도를 뺀 나머지 개월) 등이 있습니다. 나이에는 "Y"만 있으면 됩니다.

DATEDIF는 조심해서 쓰는 함수입니다. Microsoft 문서는 이 함수가 옛 Lotus 1-2-3 통합 문서를 지원하려고 제공되며, 특정 상황에서는 잘못된 결과를 낼 수 있다고 적고 있습니다. 특히 "MD" 단위는 음수나 0, 부정확한 값이 나올 수 있어 쓰지 말라고 안내합니다. 이 글에서 쓰는 "Y"는 그 경고 대상이 아니지만, 중요한 명단이라면 아래 "다른 방법"의 DATEDIF 없는 수식으로 한 번 맞춰 보는 것도 좋습니다.

자주 막히는 곳

보이는 결과원인해결
126생년월일 칸이 비어 있습니다. 빈 칸은 0으로 계산되어 1900년 초부터 센 햇수가 나옵니다.=IF(B2="","",DATEDIF(B2,TODAY(),"Y"))처럼 빈칸이면 비워 두게 합니다.
#VALUE!생년월일이 엑셀이 날짜로 알아보지 못하는 글자로 들어 있습니다.날짜로 다시 입력합니다.
#NUM!시작 날짜가 끝 날짜보다 늦습니다. 생년월일에 미래 날짜를 잘못 적었거나, 19900315처럼 여덟 자리 숫자로 적어 아주 큰 수로 계산된 경우입니다.B열 날짜를 확인합니다. 여덟 자리는 아래처럼 DATE로 바꿉니다.
날짜 모양(예: 1900-02-05)C열 서식이 날짜로 되어 있습니다.C열을 선택하고 표시 형식을 일반이나 숫자로 바꿉니다.

생년월일이 19900315처럼 여덟 자리 숫자나 글자로 들어온 명단도 있습니다. 이럴 때는 Microsoft 문서에 나오는 방법대로 DATE와 LEFT·MID·RIGHT를 조합해 날짜로 바꾼 뒤 DATEDIF에 넣습니다.

=DATE(LEFT(B2,4),MID(B2,5,2),RIGHT(B2,2))

LEFT가 앞 네 글자 1990을, MID가 다섯 번째부터 두 글자 03을, RIGHT가 끝 두 글자 15를 꺼내고, DATE가 이것을 1990년 3월 15일(일련번호 32947)로 만들어 줍니다. 이 값을 DATEDIF의 첫 번째 인수로 넣으면 36이 나옵니다.

나이가 안 바뀌는 것 같다면 계산 옵션을 확인하세요. TODAY는 통합 문서를 열 때마다 오늘 날짜로 바뀌는 함수입니다. 바뀌지 않으면 파일 > 옵션 > 수식의 계산 옵션이 자동으로 되어 있는지 봅니다.

다른 방법 — 시험용 연도 빼기와 DATEDIF 없는 만 나이

1. 연도만 빼기 (시험에 자주 나오는 형태)

=YEAR(TODAY())-YEAR(B2)

YEAR는 날짜에서 연도만 꺼내 1900~9999 사이의 정수로 돌려줍니다. Microsoft의 TODAY 도움말에도 =YEAR(TODAY())-1963처럼 올해 연도에서 태어난 해를 빼는 예가 나옵니다. 계산이 단순해서 시험 문제로 자주 쓰입니다. 다만 생일이 지났는지는 보지 않으므로, 위 결과표의 D열처럼 올해 생일이 아직 안 된 사람은 만 나이보다 1 크게 나옵니다. 시험에서는 문제에 적힌 계산 방법을 그대로 따르면 되고, 실제 명단의 만 나이가 필요하면 DATEDIF를 씁니다.

결과가 날짜 모양으로 나오면 셀 서식을 일반으로 바꾸면 됩니다.

2. DATEDIF 없이 만 나이 구하기

=YEAR(TODAY())-YEAR(B2)-(DATE(YEAR(TODAY()),MONTH(B2),DAY(B2))>TODAY())

길어 보이지만 연도 빼기에서 "올해 생일이 아직 안 왔으면 1을 뺀다"를 붙인 것입니다. 박지훈 님(1985-09-25)으로 따라가 보면 이렇습니다.

  1. YEAR(TODAY())-YEAR(B4) → 2026 − 1985 = 41
  2. DATE(YEAR(TODAY()),MONTH(B4),DAY(B4)) → 올해 생일인 2026년 9월 25일(일련번호 46290)
  3. 46290>46289 → 생일이 아직 안 왔으므로 TRUE. 뺄셈에 쓰이면 TRUE는 1, FALSE는 0으로 계산됩니다.
  4. 41 − 1 = 40

예제 표 8명 모두 DATEDIF와 같은 값이 나오는 것을 확인했습니다. 함수 이름만으로 뜻이 드러나는 DATEDIF 쪽이 읽기 쉽고, 이 수식은 DATEDIF를 믿기 어려울 때 맞춰 보는 용도로 좋습니다.

3. 오늘이 아닌 특정 날짜 기준 나이

"올해 말 기준 나이"나 "시험일 기준 나이"처럼 기준일을 고정하려면 TODAY() 자리에 날짜를 넣습니다. 예를 들어 =DATEDIF(B2,DATE(2026,12,31),"Y")로 계산하면 연말까지 생일이 모두 지나므로 박지훈 41, 최수아 18, 강하은 27이 됩니다. 기준일을 F1 같은 한 칸에 적어 두고 =DATEDIF(B2,$F$1,"Y")로 쓰면 날짜만 바꿔 가며 볼 수 있습니다. 이때는 수식을 아래로 채워도 F1이 따라 내려가지 않도록 $를 붙여야 합니다.

보험에서 쓰는 보험나이는 계산 기준이 달라 이 수식과 다른 값이 나올 수 있습니다. 보험사·상품마다 기준이 다를 수 있으니 설계서를 확인하세요.

자주 묻는 질문

DATEDIF를 입력했는데 #NAME? 오류가 납니다.

함수 이름의 철자를 확인하세요. DATE와 DIF 사이에 띄어쓰기나 다른 글자가 들어가면 엑셀이 함수를 알아보지 못합니다. 단위 "Y"는 반드시 큰따옴표로 감싸야 합니다.

만 나이 옆에 개월 수까지 보고 싶어요.

단위를 "YM"으로 바꾼 DATEDIF를 하나 더 쓰면 연도를 빼고 남은 개월 수가 나옵니다. =DATEDIF(B2,TODAY(),"Y")&"세 "&DATEDIF(B2,TODAY(),"YM")&"개월"처럼 &로 이어 붙이면 한 칸에 함께 표시됩니다.

파일을 다른 사람에게 보내면 나이가 달라지나요?

TODAY는 파일을 연 날의 날짜를 쓰므로, 받는 사람이 연 날짜 기준으로 다시 계산됩니다. 보낸 날 기준 나이로 고정하고 싶다면 나이 열을 복사해 선택하여 붙여넣기에서 값으로 붙여 넣으세요.

함께 보면 좋은 글

참고

벤

글쓴이 · 엉클벤

엑셀·스프레드시트 함수, AI 활용법, 컴퓨터·스마트폰 생활 팁을 따라 하기 쉽게 정리합니다. 틀린 내용은 연락처로 알려 주세요. 소개 보기

📚 벤스페이퍼 엑셀 강좌

기초부터 피벗 테이블까지 배우는 순서대로 정리한 엑셀 강좌 전체 목차에서 다음 글을 이어서 볼 수 있습니다.

Powered by Blogger