핵심 요약
- 보험나이는 만 나이에서 6개월 이상 지났으면 1살을 더하는 방식이 널리 쓰이며,
=ROUND(DATEDIF(생년월일,기준일,"M")/12,0)으로 구합니다. - 다음 상령일(보험나이가 바뀌는 날)은
=EDATE(생년월일,보험나이*12+6)으로 구합니다. - 기준일에서 상령일까지 남은 일수를 빼 보면, 30일 안에 나이가 바뀌는 사람을 명단에서 바로 찾을 수 있습니다.
보험 쪽 일을 하다 보면 "만 나이"와 함께 "보험나이"라는 말을 자주 듣습니다. 보험나이가 바뀌는 날을 흔히 상령일이라고 부르는데, 고객 명단이 길어지면 누구의 상령일이 언제인지 달력으로 일일이 세기 어렵습니다. 생년월일 열만 있으면 엑셀이 보험나이와 다음 상령일을 한 번에 계산해 줍니다. 상담 일정을 잡거나 명단을 정리할 때 쓰기 좋습니다.
엑셀 공부하는 입장에서도 좋은 연습 문제입니다. 날짜 차이를 구하는 DATEDIF, 반올림하는 ROUND, 몇 개월 뒤 날짜를 구하는 EDATE를 한 수식 안에 겹쳐 쓰기 때문입니다. 목적별 함수 조합 시리즈의 한 편으로, 예제 표에 수식을 넣고 안쪽부터 한 겹씩 풀어 봅니다.
먼저 확인하세요. 이 글의 "6개월 이상이면 1살 더하기"는 보험업계에서 널리 쓰는 계산 방식입니다. 보험사·상품마다 기준일 계산이 다를 수 있으니, 실제 나이는 반드시 해당 설계서에서 확인하세요. 엑셀 결과는 명단 정리용 참고 값입니다.
예제 표 — 생년월일과 기준일
A열에 이름, B열에 생년월일이 있습니다. 결과를 날마다 똑같이 보여 드리려고 기준일을 I1 셀에 2026-09-22로 적어 두었습니다. 실제로 쓸 때는 I1에 =TODAY()를 넣으면 파일을 열 때마다 오늘 날짜로 바뀝니다. 이름과 날짜는 모두 가상입니다.
| A | B | C | D | E | F | G | H | I | |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 이름 | 생년월일 | 만 나이 | 보험나이 | 다음 상령일 | 남은 일수 | 표시 | 기준일 | 2026-09-22 |
| 2 | 김민준 | 1990-03-15 | |||||||
| 3 | 이서연 | 1985-11-02 | |||||||
| 4 | 박지호 | 1978-04-10 | |||||||
| 5 | 최수아 | 1995-09-30 | |||||||
| 6 | 정하윤 | 2001-01-05 | |||||||
| 7 | 강도윤 | 1968-03-25 | |||||||
| 8 | 윤지우 | 1982-08-20 | |||||||
| 9 | 한지민 | 1992-03-22 |
완성 수식 — C2부터 F2까지 넣고 9행까지 채우기
| 셀 | 수식 | 구하는 것 |
|---|---|---|
| C2 | =DATEDIF(B2,$I$1,"Y") | 만 나이 |
| D2 | =ROUND(DATEDIF(B2,$I$1,"M")/12,0) | 보험나이 |
| E2 | =EDATE(B2,D2*12+6) | 다음 상령일 |
| F2 | =E2-$I$1 | 상령일까지 남은 일수 |
- C2~F2에 위 수식을 차례로 입력합니다.
- E2에
46645같은 숫자가 보이면 정상입니다. 엑셀은 날짜를 일련번호로 저장하기 때문입니다. E열을 선택하고 셀 서식에서 표시 형식을 날짜로 바꾸면2027-09-15처럼 보입니다. - C2:F2를 함께 선택하고 오른쪽 아래 채우기 핸들을 9행까지 끌어내립니다.
=ROUND(DATEDIF(B2,$I$1,"M")/12,0)
결과는 다음과 같습니다(기준일 2026-09-22).
| A 이름 | B 생년월일 | C 만 나이 | D 보험나이 | E 다음 상령일 | F 남은 일수 | |
|---|---|---|---|---|---|---|
| 2 | 김민준 | 1990-03-15 | 36 | 37 | 2027-09-15 | 358 |
| 3 | 이서연 | 1985-11-02 | 40 | 41 | 2027-05-02 | 222 |
| 4 | 박지호 | 1978-04-10 | 48 | 48 | 2026-10-10 | 18 |
| 5 | 최수아 | 1995-09-30 | 30 | 31 | 2027-03-30 | 189 |
| 6 | 정하윤 | 2001-01-05 | 25 | 26 | 2027-07-05 | 286 |
| 7 | 강도윤 | 1968-03-25 | 58 | 58 | 2026-09-25 | 3 |
| 8 | 윤지우 | 1982-08-20 | 44 | 44 | 2027-02-20 | 151 |
| 9 | 한지민 | 1992-03-22 | 34 | 35 | 2027-09-22 | 365 |
박지호(18일)와 강도윤(3일)은 한 달 안에 보험나이가 1살 올라갑니다. 한지민은 기준일이 바로 상령일이라, 오늘부터 보험나이 35로 계산됐고 다음 상령일은 1년 뒤입니다.
수식 풀어 보기 — 안쪽부터 한 겹씩
2행 김민준(1990-03-15)으로 따라가 봅니다.
1단계: DATEDIF로 개월 수 구하기
DATEDIF(B2,$I$1,"M")은 생년월일부터 기준일까지 다 채운 개월 수를 셉니다. 1990-03-15부터 2026-09-22까지는 438개월입니다. 셋째 인수를 "Y"로 바꾸면 다 채운 연수, 즉 만 나이 36이 나옵니다(C열).
2단계: 12로 나누기
438 ÷ 12 = 36.5입니다. 소수점 아래 .5는 "만 36세에서 6개월이 지났다"는 뜻입니다. 3행 이서연은 490개월이라 40.83, 4행 박지호는 581개월이라 48.42가 됩니다.
3단계: ROUND로 반올림하기
ROUND(36.5,0)은 소수 첫째 자리에서 반올림해 37이 됩니다. 소수 부분이 .5 이상(6개월 이상)이면 1살이 더해지고, .5 미만(6개월 미만)이면 만 나이 그대로입니다. 반올림이 곧 "6개월 이상이면 1살 더하기" 규칙과 같은 일을 하는 셈입니다.
| 이름 | 개월 수 | ÷12 | ROUND 결과 |
|---|---|---|---|
| 김민준 | 438 | 36.5 | 37 |
| 이서연 | 490 | 40.83 | 41 |
| 박지호 | 581 | 48.42 | 48 |
| 강도윤 | 701 | 58.42 | 58 |
4단계: EDATE로 다음 상령일 구하기
보험나이는 태어난 지 0.5년, 1.5년, 2.5년… 되는 날마다 1살씩 올라갑니다. 지금 보험나이가 37이면 다음에 바뀌는 때는 37.5년, 즉 37×12+6 = 450개월째입니다. EDATE(B2,450)은 생년월일에서 450개월 뒤인 2027-09-15를 돌려줍니다.
4행 박지호는 보험나이가 48이므로 48×12+6 = 582개월 뒤인 2026-10-10이 다음 상령일입니다. 마지막으로 E2-$I$1은 두 날짜의 차이, 즉 남은 일수를 계산합니다.
자주 막히는 곳
DATEDIF는 조금 특별한 함수입니다. Microsoft는 옛 Lotus 1-2-3 통합문서를 지원하려고 이 함수를 제공한다고 설명하며, 특정 상황에서 결과가 틀릴 수 있다고 안내합니다. 특히 "MD" 인수는 음수, 0, 부정확한 값이 나올 수 있다고 적혀 있습니다. 이 글은 "Y"와 "M"만 씁니다. 입력할 때 함수 이름이 자동 완성 목록에 보이지 않을 수 있는데, 철자를 끝까지 직접 입력하면 됩니다.
$I$1의 달러 기호 — 기준일 칸을 고정하는 절대 참조입니다.$없이I1로 쓰고 아래로 채우면 I2, I3을 보게 되어 결과가 틀어집니다.- #NUM! 오류 — 생년월일이 기준일보다 늦을 때 DATEDIF가 내는 오류입니다. 생년월일에
19900315처럼 여덟 자리 숫자가 들어 있으면 엑셀은 이를 날짜가 아닌 아주 큰 숫자로 받아들여 같은 오류가 납니다. 이럴 때는=DATE(LEFT(B2,4),MID(B2,5,2),RIGHT(B2,2))로 진짜 날짜를 만든 뒤 그 칸을 기준으로 계산합니다. - 남은 일수가 날짜처럼 보일 때 — F열 서식이 날짜로 잡힌 경우입니다. 표시 형식을 일반이나 숫자로 바꾸면 18, 3 같은 일수로 보입니다.
- 기준일을 오늘로 할 때 — I1에
=TODAY()를 넣습니다. Microsoft 문서에 따르면 TODAY는 통합문서를 열 때 현재 날짜로 갱신되며, 계산 설정에 따라 재계산 시점이 달라질 수 있습니다.
30일 안에 바뀌는 사람 표시하기
G2에 다음 수식을 넣고 아래로 채우면, 한 달 안에 보험나이가 바뀌는 행에만 글자가 나옵니다. 예제에서는 박지호와 강도윤 행에 30일 이내가 표시됩니다.
=IF(F2<=30,"30일 이내","")
G열로 필터를 걸거나 F열을 오름차순 정렬하면 가까운 순서대로 일정표를 만들 수 있습니다.
다른 방법 — DATEDIF 없이 개월 수 구하기
DATEDIF를 쓰기 꺼려진다면 YEAR·MONTH·DAY로 다 채운 개월 수를 직접 계산할 수 있습니다. 세 함수는 컴퓨터활용능력 시험에서도 다루는 기본 날짜 함수라 원리를 익히기에도 좋습니다.
=(YEAR($I$1)-YEAR(B2))*12+MONTH($I$1)-MONTH(B2)-(DAY($I$1)<DAY(B2))
(YEAR($I$1)-YEAR(B2))*12— 연도 차이를 개월로 바꿉니다. 2026-1990 = 36년, 432개월.+MONTH($I$1)-MONTH(B2)— 월 차이를 더합니다. 9-3 = 6, 합계 438.-(DAY($I$1)<DAY(B2))— 기준일의 날짜가 생일 날짜보다 앞서면 아직 한 달을 다 채우지 못한 것이므로 1을 뺍니다. 22일은 15일보다 뒤라서 0을 빼고, 결과는 438입니다.
예제 8명 모두 DATEDIF의 "M" 결과와 같은 개월 수가 나왔습니다. 이 값을 ROUND(개월 수/12,0)에 넣으면 보험나이가 됩니다.
자주 묻는 질문
주민등록번호 앞자리만 있을 때 생년월일은 어떻게 만드나요?
A2에 "900315-1"처럼 앞 7자리가 있다면 =DATE(IF(OR(MID(A2,8,1)="3",MID(A2,8,1)="4"),2000,1900)+LEFT(A2,2),MID(A2,3,2),MID(A2,5,2))로 1990-03-15를 만듭니다. 성별 자리가 3이나 4면 2000년대생으로 계산합니다. 뒷자리는 계산에 필요 없으니 명단에 저장하지 않는 편이 안전합니다.
보험나이를 ROUNDUP이나 INT로 구하면 안 되나요?
ROUNDUP은 1개월만 지나도 1살을 더하고, INT나 ROUNDDOWN은 만 나이와 같아집니다. "6개월 이상이면 1살 더하기"와 맞는 것은 0.5에서 올리는 ROUND입니다.
엑셀 결과와 설계서 나이가 다르면 어느 쪽이 맞나요?
설계서가 기준입니다. 보험사·상품마다 계약일이나 기준일을 잡는 방식이 다를 수 있습니다. 엑셀 계산은 명단을 정리하고 일정을 챙기기 위한 참고 값으로 쓰세요.
함께 보면 좋은 글: 엑셀 날짜 함수 DAY MONTH YEAR WEEKDAY, 엑셀 절대참조 상대참조 차이와 $ 사용법, 엑셀 IF 함수와 중첩 IF 사용법 · 전체 목록은 엑셀 가이드 목차에서 볼 수 있습니다.
참고: DATEDIF 함수 (Microsoft 지원), EDATE 함수 (Microsoft 지원), ROUND 함수 (Microsoft 지원)
댓글
댓글 남기기