=DATEDIF(B2,TODAY(),"Y")는 B2의 날짜에 태어난 사람의 만 나이를 반환합니다. DATEDIF는 두 날짜 사이의 꽉 찬 햇수를 세고 TODAY()가 두 번째 날짜를 주므로, 나이는 생일마다 한 살씩 늘어납니다.
| A | B | C | |
|---|---|---|---|
| 1 | Name | Born | Age |
| 2 | Ana | 1990-05-14 | 36 |
| 3 | Ben | 1985-11-30 | 40 |
| 4 | Chloe | 2001-02-28 | 25 |
| 5 | Dan | 1978-10-10 | 47 |
| 6 | Eva | 2010-07-04 | 16 |
C열의 나이는 오늘 날짜로 계산되므로 해가 지나면서 바뀝니다. B열의 생년월일을 바꾸면 옆의 나이가 따라 바뀝니다. 수식에는 인수가 세 개 있습니다. 시작일(생년월일), 종료일(오늘), 그리고 단위로, 꽉 찬 햇수는 "Y"입니다.
특정 날짜 기준 나이
학년 시작일이나 계약일처럼 정해진 날의 나이를 구하려면 그 날짜를 셀에 넣고 TODAY() 대신 그 셀을 씁니다. $F$2의 $는 수식을 아래로 채울 때 참조를 F2에 고정합니다.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Name | Born | Age | As of | ||
| 2 | Ana | 1990-05-14 | 36 | 2026-10-01 | ||
| 3 | Ben | 1985-11-30 | 40 | |||
| 4 | Chloe | 2001-02-28 | 25 | |||
| 5 | Dan | 1978-10-10 | 47 | |||
| 6 | Eva | 2010-07-04 | 16 |
2026-10-01에 Ana는 36세이고 Dan은 47세입니다. 10월 10일인 Dan의 생일이 아직 오지 않았기 때문입니다. F2를 2026-10-10으로 바꾸면 Dan은 48세가 됩니다. 이 방식은 파일을 열 때마다 같은 결과를 내므로, 나이가 보고서에 들어갈 때 중요합니다. 다른 단위는 DATEDIF 페이지를 보세요.
년, 개월, 일로 나타낸 나이
DATEDIF에는 꽉 찬 햇수 뒤에 남는 부분을 위한 단위가 있습니다. "YM"은 마지막으로 꽉 찬 해 이후의 개월 수를, "MD"는 마지막으로 꽉 찬 달 이후의 일수를 셉니다. 세 값을 &로 이어 나이를 텍스트로 쓰세요.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Born | Years | Months | Days | Age | As of |
| 2 | 1990-05-14 | 36 | 4 | 17 | 36 years, 4 months, 17 days | 2026-10-01 |
| 3 | 1978-10-10 | 47 | 11 | 21 | 47 years, 11 months, 21 days |
1990-05-14부터 2026-10-01까지는 36년 4개월 17일입니다. Microsoft는 "MD" 단위를 권장하지 않습니다. 생일이 31일인 경우처럼 일부 경우에 음수나 잘못된 일수를 반환할 수 있기 때문입니다. 생일이 29일에서 31일 사이라면 일수를 확인하세요.
DATEDIF 없이 나이 계산하기
DATEDIF는 모든 엑셀 버전에서 동작하지만 함수 목록과 수식 자동 완성에 나오지 않으므로 YEARFRAC를 선호하는 사람도 있습니다. YEARFRAC(start,end,1)는 각 해의 실제 길이로 세어(기준 1) 두 날짜 사이의 햇수를 소수로 반환합니다. INT가 소수 부분을 버립니다.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Born | As of | DATEDIF | YEARFRAC |
| 2 | 1990-05-14 | 2026-10-01 | 36 | 36 |
| 3 | 1978-10-10 | 2026-10-01 | 47 | 47 |
| 4 | 2010-07-04 | 2026-10-01 | 16 | 16 |
두 열은 36, 47, 16으로 일치합니다. INT가 없으면 마지막 행의 YEARFRAC는 약 16.24를 반환하는데, 통계 시트처럼 나이를 소수로 써야 할 때 유용합니다.
365로 나누면 안 되는 이유
흔한 지름길은 =INT((F2-B2)/365), 즉 산 날수를 한 해의 날수로 나누는 것입니다. 윤년이 4년마다 하루를 더하므로, 수십 년이 지나면 이 수식은 생일보다 며칠 먼저 다음 나이에 도달합니다. 48번째 생일이라면 12일 일찍입니다.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Born | As of | Days lived | Divide by 365 | DATEDIF |
| 2 | 1990-05-14 | 2026-10-01 | 13289 | 36 | 36 |
| 3 | 1978-10-10 | 2026-10-01 | 17523 | 48 | 47 |
1978-10-10에 태어난 사람의 경우 365로 나누면 48번째 생일 9일 전인 2026-10-01에 48세가 됩니다. DATEDIF는 47세라고 합니다. 365.25로 나누면 대부분의 행은 맞지만 일부 날짜에서는 여전히 틀리므로 DATEDIF나 YEARFRAC를 쓰세요.
연습: 입학일 기준 나이
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Name | Born | Age | As of | |
| 2 | Ana | 2012-04-17 | 2026-09-01 |
직접 해 보세요: C2에서 E2의 날짜를 기준으로 Ana의 만 나이를 구하세요.
숨은 검사는 E2의 날짜를 바꾸므로 수식이 그 셀을 읽어야 합니다.
나이가 날짜로 보이는 이유
이미 날짜가 들어 있는 셀이나 날짜 형식인 열에 나이 수식을 입력하면 엑셀은 날짜 형식을 유지해 36을 1900-02-05(엑셀 날짜 체계의 36번째 날, 미국 설정에서는 2/5/1900)로 보여 줍니다. 그 아래의 숫자는 맞습니다. 셀을 선택하고 홈 > 표시 형식 > 일반을 고르면(또는 Ctrl+Shift+~, Mac에서는 Control+Shift+~) 나이가 나타납니다.
자주 묻는 질문
엑셀에서 나이를 계산하는 수식은 무엇인가요?
생년월일이 B2에 있다면 =DATEDIF(B2,TODAY(),"Y")입니다. 생일부터 오늘까지 꽉 찬 햇수를 세므로 나이는 생일 전이 아니라 생일 당일에 한 살 늘어납니다.
엑셀에서 특정 날짜 기준으로 나이를 계산하려면 어떻게 하나요?
날짜를 셀에 넣고 TODAY() 대신 그 셀을 씁니다. =DATEDIF(B2,$F$2,"Y")는 F2의 날짜 기준 나이를 냅니다. $ 기호는 수식을 아래로 채울 때 F2를 고정합니다.
DATEDIF 없이 엑셀에서 나이를 계산하려면 어떻게 하나요?
=INT(YEARFRAC(B2,TODAY(),1))를 씁니다. YEARFRAC는 두 날짜 사이의 햇수를 소수로 반환하고, INT가 정수 부분만 남깁니다.
나이 수식이 1900-01-30 같은 날짜로 보이는 이유는 무엇인가요?
셀이 날짜 형식이라 나이 30이 엑셀 달력의 30번째 날로 표시되기 때문입니다. 셀을 선택하고 홈 > 표시 형식을 일반으로 바꾸세요.
나이를 계산할 때 365로 나누면 왜 틀리나요?
윤년이 4년마다 하루를 더하므로 =INT((TODAY()-B2)/365)는 생일을 며칠 일찍 셉니다. 1978-10-10에 태어난 사람은 이 수식으로 2026-10-01에 48세가 되는데, 실제로 48세가 되기 9일 전입니다. DATEDIF는 달력의 연도를 세므로 이런 오류가 없습니다.