반응형

주민등록번호 13자리 안에는 많은 규칙과 의미가 내포되어 있습니다. 그중에서 7번째자리에는 1,2,3,4 네개의 숫자만 올 수 있는데 20세기 기 남자 출생자는 1, 20세기 여자 출생자는 2, 21세기 남자 출생자는 3, 21세기 여자 출생자는 4의 번호를 부여 받게 됩니다. 

 

아래는 엑셀에서 주민등록번호를 이용하여 성별을 구분하는 방법입니다. 

 

 

 

주민등록번호 성별 구분

 

보통 데이터 상의 주민등록번호 형식은 ######-####### 과 같이 앞 6자리 - 뒤 7자리 숫자의 조합으로 이루어집니다. 

 

이 중에서 뒷자리7개의 숫자 중의 첫번째 숫자를 알면 성별을 알아낼 수 있습니다. 다시말해 주민등록번호를 이용해서 성별을 구분하는 방법의 가장 핵심은 이 주민등록번호 13자리 숫자 중 8번째 숫자를 추출해 내는 것입니다. 이때 사용되는 함수가 MID 함수입니다. 

 

 

◆ MID 함수

 

MID 함수는 문자열의 지정 위치에서 문자를 지정한 개수만큼 돌려주는 함수로 다음과 같은 구문 형식으로 작성합니다. 

 

=MID(text, start_num, num_chars)

 

위 구문을 해석하면 text에서 start_num 만큼 지정된 위치에서 num_chars 만큼의 문자를 반환한다는 것입니다. 

주민등록번호는 13자리이므로 text는 주민등록번호가 되고, start_num는 7번째 숫자니깐 7, 반환할 숫자는 7번째 숫자 한개면 되니깐 num_chars는 1로 =mid(주민등록번호,7,1)과 같이 작성해주면 됩니다. 하지만 보통 주민등록번호는 13자리가 구분없이 나열되지 않고 "-"로 구분되거나 혹은 "-" 앞뒤에 띄어쓰기가 포함되기도 합니다. 이 "-"와 띄어쓰기 유무에 따라 start_num에 +를 해줘야 하겠습니다. 

 

결론적으로 주민등록번호가 ######-#######와 같이 '-"로만 구분된다면 =MID(######-#######,8,1)과 같이 작성해주면 됩니다. 

이제 성별구분 숫자를 추출해 냈으니 숫자에 따라 성별 구분만 해주면 되겠습니다. 

 

MID함수와 조합하여 가장 간단하고 짧게 수식을 만들어 낼 수 있는 함수는 CHOOSE 함수 입니다. 아래와 같이 C열에 주민등록번호가 있고 D열에 성별을 나타내고자 한다면 D3셀에 

 

=ChOOSE(MID(C3,8,1),"남자","여자","남자","여자")

을 입력 후 마우스로 드래그하여 끌어서 자동채우기를 하면 성별 구분이 됩니다. 

 

 

 

 

 

시트 상의 주민등록번호가 절대로 잘못될리가 없다면 위의 함수만으로 충분히 사용할 수 있습니다. 하지만 C7, C8 셀과 같이 주민등록번호가 13자리가 안되거나 C9셀과 같이 8번째 자리에 올 수 없는 숫자가 있을 경우에는 성별을 잘못 구분하거나 오류가 발생하게 됩니다. 

 

 

주민등록번호의 오류 중 가장 높은 확률로 발생할 수 있는 것은 13자리가 아닌 경우 일 것입니다.  그래서 우선적으로 주민등록번호가 13자리("-" 나 공백이 포함되어 있다면 +)를 확인 한다음 자리가 맞지 않다면 "주민번호오류" 메시지를 반환하도록 위의 함수에 LEN 함수와 IF함수를 추가 시켜 작성할 수 있습니다. 

 

아래와 같이 D3셀에 

 

=IF(LEN(C3)=14,CHOOSE(MID(C3,8,1),"남자","여자","남자","여자"),"주민번호오류")

을 입력하고 마우스로 드래그하여 끌어서 자동채우기를 하면 D7, D8 셀에는 C7과 C8셀의 주민등록번호 형식에 오류가 있으므로 "주민번호오류"라는 메시지가 출력되게 됩니다. 그러나 D9셀은 이 수식만으로 #VALUE! 오류를 해결해 줄 수 없습니다. 

 

 

이 오류는 CHOOSE 함수의 근본적인 한계로 CHOOSE 함수의 반환 값으로 올 수 있는 5,6,7,8,9,0에 대해서 따로 반환값을 설정해주지 않으면 어쩔 수 없게 됩니다. 그래서 CHOOSE 함수 대신 IF 함수를 중첩시켜 주민등록번호 자리가 오류이면 "주민번호오류", 뒷자리 첫째번째 숫자로 올 수 없는 숫자가 오는 경우 "성별알수없음" 메시지를 반환하도록 작성하였습니다. 

 

아래와 같이 D3셀에 

 

=IF(LEN(C3)=14,IF(OR(MID(C3,8,1)="1",MID(C3,8,1)="3"),"남자",IF(OR(MID(C3,8,1)="2",MID(C3,8,1)="4"),"여자","성별알수없음")),"주민번호오류")

을 입력하고 마우스로 드래그하여 끌어서 자동채우기를 하면 D7, D8셀에는 "주민번호오류"라는 메시지가 출력되게 되며 D9셀에는 "성별알수없음" 메시지가 출력되게 됩니다. 

 

 

 

 

 

 

위의 수식을 복사하여 사용하고자 하면 아래 텍스트 파일 링크를 다운 받으시길 바랍니다. 

 

주민등록번호_성별구분_수식_텍스트.txt
다운로드

 

반응형