본문 바로가기
반응형

LEFT28

필지고유번호(PNU)에 해당하는 주소 구하기 위 파일은 법정동과 지번을 결합해서 필지고유번호(PNU)를 구하는 매크로 파일인데, 여기서 구한 PNU를 이용해 역으로 법정동과 지번을 구해보겠습니다. 1. PNU의 구성PNU는 법정동에 해당하는 코드 10자리와 지번을 특지 1자리와 본번, 부번 각 4자리를 결합해서 만들어진 19자리 숫자입니다. 2. 문제 푸는 방법PNU중 앞 10자리에 해당하는 법정동을 구하고, 11번째 자릿수로 특지, 다시 말해 1이면 일반이므로 빈칸으로 만들고, 2이면 '산'이 되며 12번째부터 4자리 본번은 4자리 숫자 중 앞의 0을 없애고,16번째이후 4자리 부번도 4자리 숫자 중 앞의 0을 없애는데,부번이 0이면 본번만 남기고,부번이 0보다 크면 -으로 연결해 "본번-부번"으로 만들면 됩니다. 3. 풀이가. 법정동코드에 해당.. 2025. 4. 8.
같은 글자가 중복되는 경우 마지막 글자의 위치 찾기(2) - ByRow, Reduce 1. 문제아래와 같이 동, 리가 있는 경우 지번을 제외한 법정동을 추출해 보겠습니다.  2. 해법 1 - 성공가. Reduce 함수의 구문=REDUCE([initial_value], array, lambda(accumulator, value, body))로서[initial_value]는 옵션으로서 초기값이며, 생략하면 0이 됩니다. array는 처리할 대상이 되는 배열이고, 이 2개를 lambda함수에 전달하는데, accumulator는 누계값으로서 초기값은 Reduce함수의 첫 번째 인수인 initial_value가 되며, value는 현재 처리할 셀 또는 값으로서 current_value가 이해하기 쉽습니다. 예를 들어 Reduce 함수의 두 번째 인수인 array로 A2셀에서 A7셀을 입력하면 순서.. 2024. 9. 19.
같은 글자가 중복되는 경우 마지막 글자의 위치 찾기(1) - Left, Max, Substitute, Len 1. 문제  "서울특별시 종로구 청운동"의 경우는 '동'이란 글자가 하나만 있기 때문에 간단한데,"서울특별시 종로구 동숭동'의 경우는 '동'이란 글자가 두 번 나오므로 두 번째 '동'의 위치를 찾으려면 첫 번째 '동' 다음부터 '동'의 위치를 찾아야 합니다. 이런 식으로 '동'이 여러 번 나오는 경우 마지막 '동'의 위치를 찾아보겠습니다. 또한 '충청남도 천안시 동남구 동면 동산리'의 경우는 '동'이 세 번씩 나오지만 결국은 '리'가 중요한 요소이므로 '리'의 위치를 찾아야 합니다. 2. 해법가. 동일한 글자 중 마지막 글자의 위치 구하기(1) 한 가지 글자를 기준으로 할 경우 (가) 같은 글자수가 몇 개인지 알아내기같은 글자수가 몇 개인지 알아내려면 전체의 길이에서 특정 글자를 공백으로 만든 다음  그.. 2024. 9. 13.
법정동을 선택하여 PNU 완성하기(2) - Index + Aggregate https://lsw3210.tistory.com/567에서 읍면동명을 포함하는 법정동명을 구했는데,이번 글에서는 유효성 검사를 이용해 목록을 만드는 것부터 해보겠습니다. 나. 데이터 유효성 검사D1셀을 클릭하고 데이터 탭에서 데이터 도구 그룹의 데이터 유효성 검사 윗부분을 누릅니다. 그리고, 제한 대상으로 목록을 선택하고, C2:C30을 마우스로 끌어서 원본을  선택하고 확인 버튼을 누릅니다. 그러면 D2셀 오른쪽에 콤보 상자 버튼이 생깁니다. 콤보 상자 버튼을 누르면 C열의 법정동명이 표시되므로 원하는 동을 클릭해서 선택하면 됩니다. 맨 아래 회색 부분은 공백 때문에 그런 것입니다. 다. 법정동코드 구하기이제 선택된 법정동명에 대한 법정동코드를 구해보겠습니다. C2셀에 사용했던 수식과 비슷한데, in.. 2024. 8. 21.
주소를 법정동, 특지 구분, 본번, 부번으로 분리하기(2) 법정동을 구하는 것은 아래 글을 참고 바랍니다.https://lsw3210.tistory.com/563 5. 특지 구분 구하기특지는 법정동 다음에 '산'이 있는지 여부로 판단하면 되므로법정동 함수를 참고해서 만들면 됩니다. 코드는 아래와 같습니다.Function 특지구분(범위 As Range) '범위(주소)에서 특지구분을 추출한다. Dim 마지막공백 As Integer Dim 지번 As String 마지막공백 = InStrRev(범위, " ") If Mid(범위, 마지막공백 - 1, 1) = "산" Then 마지막공백 = InStrRev(범위, " ", 마지막공백 - 1) End If 지번 = Mid(범위, 마지막공백 + 1).. 2024. 8. 14.
주소를 법정동, 특지 구분, 본번, 부번으로 분리하기(1) 1. 수식 이용 하기아래 글에서 수식을 이용해 주소에서 법정동을 분리해내고,https://lsw3210.tistory.com/519 주소를 PNU로 만들기(1-3) : 주소를 법정동명과 지번으로 분리하기4. 주소를 법정동과 지번으로 분리하기 가. 주소의 형태  아래와 같이 시도, 시군구, 읍면동, 리로 구성된 주소가 있을 때법정동과 지번을 구분해야 하는데한 칸 공백의 개수가 3개인 경우도 있lsw3210.tistory.com 지번에서 특지구분과 본번, 부번을 분리했는데https://lsw3210.tistory.com/521 주소를 PNU로 만들기(1-5) : 필지구분과 본번,부번 변환하기산인 경우 하이픈이 있는 경우가 없어서,A8셀의 주소를 경기도 가평군 북면 화악리 산 339에서 경기도 가평군 북면 적.. 2024. 8. 13.
반응형