엑셀 보험나이와 상령일 계산하기

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

핵심 요약

  • 보험나이는 만 나이에서 6개월 이상 지났으면 1살을 더하는 방식이 널리 쓰이며, =ROUND(DATEDIF(생년월일,기준일,"M")/12,0)으로 구합니다.
  • 다음 상령일(보험나이가 바뀌는 날)은 =EDATE(생년월일,보험나이*12+6)으로 구합니다.
  • 기준일에서 상령일까지 남은 일수를 빼 보면, 30일 안에 나이가 바뀌는 사람을 명단에서 바로 찾을 수 있습니다.

보험 쪽 일을 하다 보면 "만 나이"와 함께 "보험나이"라는 말을 자주 듣습니다. 보험나이가 바뀌는 날을 흔히 상령일이라고 부르는데, 고객 명단이 길어지면 누구의 상령일이 언제인지 달력으로 일일이 세기 어렵습니다. 생년월일 열만 있으면 엑셀이 보험나이와 다음 상령일을 한 번에 계산해 줍니다. 상담 일정을 잡거나 명단을 정리할 때 쓰기 좋습니다.

엑셀 공부하는 입장에서도 좋은 연습 문제입니다. 날짜 차이를 구하는 DATEDIF, 반올림하는 ROUND, 몇 개월 뒤 날짜를 구하는 EDATE를 한 수식 안에 겹쳐 쓰기 때문입니다. 목적별 함수 조합 시리즈의 한 편으로, 예제 표에 수식을 넣고 안쪽부터 한 겹씩 풀어 봅니다.

먼저 확인하세요. 이 글의 "6개월 이상이면 1살 더하기"는 보험업계에서 널리 쓰는 계산 방식입니다. 보험사·상품마다 기준일 계산이 다를 수 있으니, 실제 나이는 반드시 해당 설계서에서 확인하세요. 엑셀 결과는 명단 정리용 참고 값입니다.

보험나이 상령일 계산 - EDATE DATEDIF 활용

예제 표 — 생년월일과 기준일

A열에 이름, B열에 생년월일이 있습니다. 결과를 날마다 똑같이 보여 드리려고 기준일을 I1 셀에 2026-09-22로 적어 두었습니다. 실제로 쓸 때는 I1에 =TODAY()를 넣으면 파일을 열 때마다 오늘 날짜로 바뀝니다. 이름과 날짜는 모두 가상입니다.

ABCDEFGHI
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상령일까지 남은 일수
  1. C2~F2에 위 수식을 차례로 입력합니다.
  2. E2에 46645 같은 숫자가 보이면 정상입니다. 엑셀은 날짜를 일련번호로 저장하기 때문입니다. E열을 선택하고 셀 서식에서 표시 형식을 날짜로 바꾸면 2027-09-15처럼 보입니다.
  3. C2:F2를 함께 선택하고 오른쪽 아래 채우기 핸들을 9행까지 끌어내립니다.
=ROUND(DATEDIF(B2,$I$1,"M")/12,0)

결과는 다음과 같습니다(기준일 2026-09-22).

A 이름B 생년월일C 만 나이D 보험나이E 다음 상령일F 남은 일수
2김민준1990-03-1536372027-09-15358
3이서연1985-11-0240412027-05-02222
4박지호1978-04-1048482026-10-1018
5최수아1995-09-3030312027-03-30189
6정하윤2001-01-0525262027-07-05286
7강도윤1968-03-2558582026-09-253
8윤지우1982-08-2044442027-02-20151
9한지민1992-03-2234352027-09-22365

박지호(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살 더하기" 규칙과 같은 일을 하는 셈입니다.

이름개월 수÷12ROUND 결과
김민준43836.537
이서연49040.8341
박지호58148.4248
강도윤70158.4258

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))
  1. (YEAR($I$1)-YEAR(B2))*12 — 연도 차이를 개월로 바꿉니다. 2026-1990 = 36년, 432개월.
  2. +MONTH($I$1)-MONTH(B2) — 월 차이를 더합니다. 9-3 = 6, 합계 438.
  3. -(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 지원)

벤

글쓴이 · 엉클벤

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

📚 벤스페이퍼 엑셀 강좌

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

Powered by Blogger