엑셀 주민번호 앞자리로 생년월일 성별 구하기

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

핵심 요약

  • 주민등록번호 앞 7자리(예: 900315-1)만으로 생년월일 날짜와 성별을 한 번에 구합니다.
  • 생년월일은 DATE + MID + CHOOSE, 성별은 =CHOOSE(MID(B2,8,1),"남","여","남","여") 조합입니다.
  • 020507-3은 2002년 5월 7일·남, 081201-4는 2008년 12월 1일·여로 나옵니다. 1~4가 아닌 숫자는 오류로 드러나게 만듭니다.

명단을 받을 때 생년월일 열은 없고 주민등록번호 앞자리만 적혀 있는 경우가 있습니다. 영업하는 분이라면 이 앞자리로 생년월일 열을 만들어 두어야 생일 안내나 나이 계산을 할 수 있습니다. 한 명씩 보고 날짜를 옮겨 적는 대신, 앞 7자리에서 필요한 글자만 잘라 날짜로 조립하면 명단 전체를 한 번에 채울 수 있습니다.

자격증 공부를 하다 보면 주민등록번호로 성별이나 출생 연도를 구하는 문제를 자주 만납니다. 이 글은 "목적별 함수 조합" 시리즈의 한 편으로, 글자를 자르는 MID, 번호에 따라 값을 고르는 CHOOSE, 연·월·일을 날짜로 만드는 DATE를 어떤 순서로 겹치는지 한 겹씩 풀어 봅니다.

이 글의 번호는 모두 가짜이고, 앞 7자리만 씁니다. 생년월일 여섯 자리와 성별을 나타내는 뒷자리 첫 숫자까지만 있으면 이 글의 계산은 모두 됩니다. 실제 명단에서도 계산에 필요한 앞 7자리 외에는 파일에 담지 않는 편이 안전합니다.

번호 앞자리로 생일·성별 구하기 - MID DATE 조합

예제 표 — 앞 7자리가 있는 명단

뒷자리 첫 숫자는 정부 정책브리핑의 설명대로 1900년대 출생은 남자 1·여자 2, 2000년 이후 출생은 남자 3·여자 4입니다. 이 글은 이 네 가지 숫자만 다룹니다. B열의 번호는 하이픈(-)이 들어 있어 엑셀이 글자로 저장합니다.

ABCD
1이름주민번호 앞 7자리생년월일성별
2김민준900315-1
3이서연850924-2
4박지훈020507-3
5최수아081201-4
6정우진720110-1
7강하은991130-2
8윤도현100707-3
9한지아050214-4

900315-1을 한 글자씩 세면 1번째가 9, 7번째가 하이픈, 8번째가 성별 숫자입니다. 이 위치 번호가 수식의 핵심입니다.

위치1~23~45~678
글자900315-1
뜻연도 뒤 두 자리월일구분 기호성별·출생 세기

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

C2: =DATE(CHOOSE(MID(B2,8,1),1900,1900,2000,2000)+LEFT(B2,2),MID(B2,3,2),MID(B2,5,2))
D2: =CHOOSE(MID(B2,8,1),"남","여","남","여")
  1. C2와 D2에 위 수식을 각각 입력합니다.
  2. C2:D2를 함께 선택하고 채우기 핸들을 9행까지 끌어내립니다.
  3. C열에 32947 같은 숫자가 보이면 C열을 선택하고 표시 형식을 간단한 날짜로 바꿉니다. 엑셀은 날짜를 일련번호로 저장하기 때문에 서식을 바꿔야 날짜 모양이 됩니다.
ABC (생년월일)D (성별)
2김민준900315-11990-03-15남
3이서연850924-21985-09-24여
4박지훈020507-32002-05-07남
5최수아081201-42008-12-01여
6정우진720110-11972-01-10남
7강하은991130-21999-11-30여
8윤도현100707-32010-07-07남
9한지아050214-42005-02-14여

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

성별 (D열)

  1. MID(B4,8,1) → 박지훈 님의 020507-3에서 8번째 글자부터 1글자를 꺼냅니다. 결과는 글자 "3"입니다. MID는 시작 위치와 글자 수를 받아 가운데 글자를 잘라 내는 함수입니다.
  2. CHOOSE("3","남","여","남","여") → CHOOSE는 첫 번째 인수가 가리키는 순번의 값을 고릅니다. 3이면 세 번째 값 남입니다. 1·2·3·4에 차례로 남·여·남·여를 적어 두었으니 뒷자리 숫자가 무엇이든 성별이 맞게 나옵니다.

생년월일 (C열)

  1. MID(B4,8,1) → 성별과 같은 숫자 "3". 이 숫자는 태어난 세기도 알려 줍니다.
  2. CHOOSE("3",1900,1900,2000,2000) → 1·2면 1900, 3·4면 2000을 고릅니다. 결과는 2000.
  3. 2000+LEFT(B4,2) → LEFT가 앞 두 글자 "02"를 꺼냅니다. 글자지만 더하기에 쓰이면 숫자 2로 계산되어 2002가 됩니다.
  4. MID(B4,3,2) → 3번째부터 2글자 "05"(월), MID(B4,5,2) → 5번째부터 2글자 "07"(일).
  5. DATE(2002,"05","07") → 연·월·일을 날짜로 조립합니다. 2002년 5월 7일, 일련번호 37383입니다.

Microsoft의 DATE 도움말에도 =DATE(LEFT(C2,4),MID(C2,5,2),RIGHT(C2,2))처럼 텍스트에서 연·월·일을 잘라 날짜로 바꾸는 예가 나옵니다. 여기서는 연도가 두 자리뿐이라 세기를 CHOOSE로 붙여 준 것이 다릅니다. 연도에 1900이나 2000을 더하지 않고 DATE(2,5,7)처럼 두 자리만 넣으면, DATE는 0~1899 사이의 연도에 1900을 더하는 규칙이 있어 1902년이 됩니다. 2000년대생이 100년 전 사람이 되는 것입니다.

자주 막히는 곳

증상원인해결
성별이 전부 #VALUE!하이픈이 있는데 MID 위치를 7로 적었습니다. 7번째 글자는 -라서 CHOOSE가 순번으로 쓸 수 없습니다.하이픈이 있으면 8, 없으면 7로 맞춥니다.
몇 사람만 #VALUE!뒷자리 첫 숫자가 1~4가 아닙니다. CHOOSE는 순번이 1보다 작거나 준비한 값의 개수보다 크면 #VALUE!를 돌려줍니다.번호를 다시 확인합니다. 이 오류는 계산 규칙 밖의 번호를 찾아 주는 표시이기도 합니다.
2000년대생 날짜가 이상함하이픈 없이 0205073을 입력해 숫자로 저장되면서 맨 앞 0이 사라졌습니다. 205073이 되어 LEFT가 "20"을 꺼냅니다.번호 열을 먼저 텍스트 서식으로 바꾸고 입력하거나, 번호 앞에 작은따옴표(')를 붙여 입력합니다.
날짜 대신 숫자가 보임날짜 일련번호가 일반 서식으로 보입니다.C열을 간단한 날짜 서식으로 바꿉니다.

이미 앞 0이 사라진 명단이라면 TEXT로 일곱 자리를 되살린 뒤 같은 수식을 씁니다. 하이픈 없는 일곱 자리이므로 성별 위치는 7입니다. 예를 들어 205073이 든 칸을 TEXT(B2,"0000000")으로 감싸면 "0205073"이 되고, 이것을 넣은 =DATE(CHOOSE(MID(TEXT(B2,"0000000"),7,1),1900,1900,2000,2000)+LEFT(TEXT(B2,"0000000"),2),MID(TEXT(B2,"0000000"),3,2),MID(TEXT(B2,"0000000"),5,2))의 결과는 2002년 5월 7일입니다. 수식이 길어지므로 옆 열에 TEXT 결과를 따로 만들어 두고 그 열을 참조하는 편이 읽기 쉽습니다.

다른 방법 — IF·MOD로 쓰기

1. 성별을 MOD로 (시험에서 자주 보는 형태)

=IF(MOD(MID(B2,8,1),2)=1,"남","여")

MOD는 나눗셈의 나머지를 구합니다. MOD(3,2)는 1, MOD(4,2)는 0입니다. 뒷자리가 1·3처럼 홀수면 남, 2·4처럼 짝수면 여라는 규칙을 그대로 옮긴 수식입니다. 예제 8명 모두 CHOOSE와 같은 결과가 나왔습니다. 다만 이 수식은 1~4가 아닌 숫자도 홀짝으로 나눠 버리므로, 잘못 적힌 번호를 걸러 주지는 못합니다.

2. 세기를 IF로

=DATE(IF(VALUE(MID(B2,8,1))<=2,1900,2000)+LEFT(B2,2),MID(B2,3,2),MID(B2,5,2))

VALUE로 글자 "3"을 숫자 3으로 바꾼 뒤 2 이하면 1900, 아니면 2000을 붙입니다. 예제 8명은 CHOOSE와 같은 날짜가 나옵니다. 차이는 규칙 밖 번호에서 드러납니다. 뒷자리가 5인 번호를 넣어 보면 CHOOSE 쪽은 #VALUE!로 멈추지만, IF 쪽은 2000을 붙여 1990년생을 2090년생으로 만들어 버립니다. 오류가 나는 편이 오히려 안전하다는 이유로 이 글은 CHOOSE를 완성 수식으로 골랐습니다.

3. 규칙 밖 번호를 "확인"으로 표시

=IFERROR(CHOOSE(MID(B2,8,1),"남","여","남","여"),"확인")

오류 대신 확인이 보이게 하면 다시 봐야 할 사람을 필터로 모으기 쉽습니다. 만든 생년월일로 나이를 계산하려면 =DATEDIF(C2,TODAY(),"Y")를 이어 쓰면 됩니다. 2026년 9월 24일 기준으로 김민준 님은 36세입니다.

자주 묻는 질문

하이픈이 없는 일곱 자리면 수식을 어떻게 바꾸나요?

성별 숫자가 7번째 글자가 되므로 MID(B2,8,1)을 MID(B2,7,1)로 바꾸면 됩니다. 연·월·일을 꺼내는 LEFT(B2,2), MID(B2,3,2), MID(B2,5,2)는 그대로입니다. 번호가 텍스트로 저장되어 있어 맨 앞 0이 살아 있는지 먼저 확인하세요.

결과를 "1990년 3월 15일"처럼 보이게 할 수 있나요?

C열은 진짜 날짜 값이므로 표시 형식만 바꾸면 됩니다. 셀 서식의 날짜 범주에서 원하는 모양을 고르세요. 값 자체는 그대로라 나이 계산이나 정렬에도 그대로 쓸 수 있습니다.

CHOOSE 대신 중첩 IF로 성별을 구해도 되나요?

됩니다. IF(OR(MID(B2,8,1)="1",MID(B2,8,1)="3"),"남",IF(OR(MID(B2,8,1)="2",MID(B2,8,1)="4"),"여","확인"))처럼 쓰면 1~4 밖의 번호를 확인으로 표시할 수 있습니다. MID 결과가 글자이므로 비교할 숫자도 따옴표로 감싸야 합니다.

함께 보면 좋은 글

참고

벤

글쓴이 · 엉클벤

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

📚 벤스페이퍼 엑셀 강좌

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

Powered by Blogger