엑셀 Excel 주민번호에서 함수로 생년월일 추출하기
이전 포스팅에서는 주민번호에서 생년월일을 추출할 때 “텍스트 나누기” 기능을 이용했었습니다. 이번에는 함수를 이용해서 추출해 볼 것입니다. 작업에 이용할 함수는 문자열을 자를 수 있는 MID 와 추출한 년, 월, 일에 해당하는 숫자를 조합해서 날짜 데이터로 변환할 DATE 함수를 이용할 것입니다. 이번 포스팅에 내용만 잘 익히시면 문자열에서 자신이 원하는 부분을 추출하는데 어려움이 없을 겁니다.
▼ 먼저 문자열을 추출하는 MID 함수에 대해 알아 보겠습니다. 함수의 원형은 다음과 같습니다.
MID (문자열, 글시작위치, 글자크기)
l 문자열 : 추출할 데이터나 셀 주소를 입력한다.
l 글 시작 위치 : 추출할 데이터의 시작 위치를 입력한다.
l 글자크기 : 추출할 글자 개수를 입력한다. 공백도 포함된다.
첫 번째 인수에 글을 넣고 시작 위치와 추출할 글자 크기를 입력해 주면 잘라서 반환하게 됩니다. 그림처럼 MID(C3, 1, 2) 를 하게 되면 주민번호에서 년도에 해당하는 부분을 잘라 내게 됩니다.
▼ 이렇게 주민번호 앞 자리에서 MID 함수를 이용해 생년월일을 추출해 줍니다. 그리고 숫자 뒤에 년, 월, 일을 표시 하기 위해 문자열을 합치는 “&” 연산자를 사용했습니다. 그렇게 해서 그림과 같은 결과가 나왔습니다.
▼ 그런데 추출한 생년이 완전하지 않습니다. 앞에 19 혹은 20 이 빠진 것이죠. 이렇게 빠진 값을 추가해서 완성된 년도를 만들기 위해서 DATE 함수를 이용해야 합니다. DATE 함수는 인수로 입력된 년, 월, 일 값을 날짜 형식으로 변환 시킵니다. 수식 입력기에서 DATE 를 입력하고 fx 클릭하게 되면 함수 인수 창이 뜹니다. 이곳에 주민번호에서 추출한 년, 월, 일을 입력합니다.
※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※ ▶ 엑셀 Excel 함수 주민번호 태어난 요일 추출하기 ▶ 엑셀 VBA 주민번호, 이메일 문자열 잘라 내는 방법 ▶ 엑셀 주민번호로 나이 구하기 ▶ 엑셀 Excel 주민번호나 카드번호 뒷자리 별표처리 하는 방법 ▶ 엑셀 Excel 사용자 주민 번호에서 생일 데이터 추출하는 방법 |
▼ 결과는 그림과 같이 완성된 형태의 날짜가 되었습니다. 그런데 문제가 있습니다. 2000년 이후에 태어난 사람의 주민번호는 앞자리가 “00” 입니다. DATE 함수의 첫 번째 인수로 입력하게 되면 “2000” 이 아닌 “1900” 으로 표현이 됩니다.
▼ 이것을 해결하기 위한 방법은 IF 함수를 이용하는 것입니다. 그리고 2000년도 태생인지 구분하는 방법은 두 가지 입니다. 주민번호 제일 앞에 숫자가 0 이거나 주민번호 뒷부분 첫 번째 숫자가 3, 4 일 때입니다. 3은 남자이며, 4는 여자입니다. 저는 앞자리가 0 일 때 2000년도와 1900 년도를 구분했습니다.
=IF(MID(C3,1,1)="0", "20","19") & MID(C3,1,2)
▼ 위에서 구한 년도를 DATE 함수의 첫 번째 인수로 넘깁니다. 그리고 다른 셀에도 드래그 해서 적용해 줍니다. 이상으로 2000년도 태생의 주민번호를 포함해서 생년월일을 뽑는 방법에 대해 알아 보았습니다.
=DATE(IF(MID(C3,1,1)="0", "20","19") & MID(C3,1,2),MID(C3,3,2),MID(C3,5,2))
※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※ ▶ 엑셀 Excel 함수 주민번호 태어난 요일 추출하기 ▶ 엑셀 VBA 주민번호, 이메일 문자열 잘라 내는 방법 ▶ 엑셀 주민번호로 나이 구하기 ▶ 엑셀 Excel 주민번호나 카드번호 뒷자리 별표처리 하는 방법 ▶ 엑셀 Excel 사용자 주민 번호에서 생일 데이터 추출하는 방법 |