18
2010-Jun
ArcMap 테이블의 복잡한 필드 계산(field calculator)시 방법작성자: 김한국 IP ADRESS: *.95.177.135 조회 수: 41479
주소관련 데이터의 테이블을 열어보니 아래와 같습니다.
법정동 코드와 산여부, 본번, 부번 등이 있는 정보입니다.
전 지번 19자리가 필요한 데 지번 19자리 정보가 없어 생성을 하려다 보니 제법 복잡합니다.
PNY 필드를 생성하고 field calculator를 실행합니다.
Advanced체크
Pre-Logic VBA Script Code에 아래와 같은 코드를 입력합니다.
s1=""
if [산여부] = "" then
s1 = trim([법정동코드])
s1 = s1 & "1"
s1 = s1 & format(trim(str([지번본번])),"0###")
s1 = s1 & format(trim(str([지번부번])),"0###")
else
s1 = trim([법정동코드])
s1 = s1 & "2"
s1 = s1 & format(trim(str([지번본번])),"0###")
s1 = s1 & format(trim(str([지번부번])),"0###")
endif
===================================================================================================
코드를 간단하게 설명을 드리면..
s1="" 's1이라는 변수를 정의
if [산여부] = "" then '산여부 필드에 아무것도 없으면 일반번지 임
s1 = trim([법정동코드])
s1 = s1 & "1" '일반번지이므로 법정동코드 뒤에 1을 붙이고
s1 = s1 & format(trim(str([지번본번])),"0###") ' 숫자로 된 본번. 예를 들어 12와 같은 경우 0012로 변경
s1 = s1 & format(trim(str([지번부번])),"0###") ' 숫자로 된 본번. 예를 들어 12와 같은 경우 0012로 변경
else
s1 = trim([법정동코드])
s1 = s1 & "2" '산번지이므로 법정동코드 뒤에 2을 붙이고
s1 = s1 & format(trim(str([지번본번])),"0###") ' 숫자로 된 본번. 예를 들어 12와 같은 경우 0012로 변경
s1 = s1 & format(trim(str([지번부번])),"0###") ' 숫자로 된 본번. 예를 들어 12와 같은 경우 0012로 변경
endif
VBA 함수와 문법을 그대로 사용가능하니 복잡한 계산도 가능합니다.
결과는 아래와 같습니다.
좋네요 ^_^ 필드 만들고 DBF열어서 엑셀 작업만 주구장창 했었습니다. ㅋㅋ