반응형

전체 글 559

주소를 PNU로 변환하기(2) - VBA

3. 특지 구분 연결하기특지 구분 등을 구하는 사용자 정의 함수는 아래 글을 참고 바랍니다.https://lsw3210.tistory.com/564 이번에는 사용자 정의 함수가 아니라 매크로로 특지 구분을 구하겠습니다.그러나 구문은 사용자 정의 함수나 같은데,사용자 정의 함수는 특지구분이란 변수로 값을 반환해야 하는데 반해서매크로는 직접 처리하고 값을 반환할 필요가 없고, 사용자 정의 함수의 경우는 인수(아래 코드에서 '범위')를 직접 대입할 수 있는데 반해서,매크로의 경우는 인수를 대입할 수도 있지만 본 예제의 경우는 반복 구문이기 때문에 인수를 직접 입력할 수 없다는 점입니다.Function 특지구분(범위 As Range) '범위(주소)에서 특지구분을 추출한다. Dim 마지막공백 A..

EXCEL - VBA 2024.08.19

주소를 PNU로 변환하기(1) - VBA

1. 법정동 코드 가져오기 PNU 코드는 법정동 10자리 + 특지 구분 1자리 + 본번 4자리 + 부번 4자리 = 19자리로 되어 있습니다. 법정동 코드는 https://www.code.go.kr/ 사이트에서코드 검색을 누르고, 코드명에 '법정동'이라고 입력하고 검색을 하면텍스트 파일로 받을 수 있으면 이것을 엑셀 파일로 바꾸면 됩니다.자세한 것은 https://lsw3210.tistory.com/517 을 참고 바랍니다. 텍스트 파일을 연 후 Ctrl + A키를 눌러 전체를 선택한 후 복사해서 시트2에 붙여 넣고 시트명을 '법정동코드'로 바꾸면 아래와 같습니다.  2. 법정동에 대한 법정동 코드 검색하기 매크로로 만들기 위해 개발도구 - Visual Basic을 누른 후코드 창에 Sub pnu라고 입력..

EXCEL - VBA 2024.08.16

주소를 법정동, 특지 구분, 본번, 부번으로 분리하기(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)..

EXCEL - VBA 2024.08.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에서 경기도 가평군 북면 적..

EXCEL - VBA 2024.08.13

여러가지 조건을 만족하는 개수 세기(4) - 구글 스프레드시트의 ByRow 함수

1. 엑셀과 구글 스프레드시트의 비교 엑셀은 Microsoft 365에서만 ByRow 함수가 지원되는데,구글 스프레드시트는 인터넷에서만 실행되지만 ByRow와 ByCol 함수를 모두 지원합니다. 아래와 같이 =by까지 입력하면 그 아래 BYCOL과  BYROW가 표시되고, 간단한 함수에 대한 설명, 여기서는 "행 별로 범위를 그룹화합니다."라고 표시됩니다. 또한 탭키를 눌러 BYROW를 선택하면인수가 표시되는데, 배열_또는_범위가 활성화되고, 람다가 두 번째 인수로 표시됩니다.  이에 비해 Excel에서는 인수로 array가 활성화되고, 두 번째 인수가 function이라고 표시됩니다. function이라고 표시되지만 Lambda인 것은 동일합니다. 2. 구글 스프레드시트에서 ByRow 함수 적용 위 파..

여러가지 조건을 만족하는 개수 세기(3) - ByRow

5. 해법 4ByRow 함수를 이용해 행 별로 곱해서 0보다 큰 경우의 수를 세서 값을 구할 수 있습니다.ByRow 함수는 Microsoft 함수에서만 사용 가능한 함수로서구문은 =BYROW(array, lambda(row))입니다.배열을 입력한 다음 lambda의 row 인수로 전달한 다음 수식을 통해 값을 구하는 것입니다. 가. 한 가지 조건을 만족하는 경우=BYROW(B2:B33,LAMBDA(row,IF(row>0,1,0)))라고  입력하면 행 별로 셀 값이 반환됩니다.  수식의 의미는B2셀에서 B33셀까지 범위를 입력한 다음Lambda함수의 첫 번째 인수로 대입하고,수식(calculation)으로, IF(row>0,1,0)를 입력한 것입니다.따라서 행의 값이 배열로 반환됩니다.  이제 필요한 것이..

Excel 2024.08.09

여러가지 조건을 만족하는 개수 세기(2) - 배열 수식, SumProduct

3. 해법 2 배열 수식을 이용해서 여러 가지 조건을 *(and)로 연결해서 값을 구할 수 있습니다. 가. 한 가지 조건을 만족하는 경우(1) 수식 1수식은=SUM(IF(B2:B23>0,1,0))라고 할 수 있습니다.배열 수식이기 때문에 엔터 키가 아니라 Ctrl + Shift + Enter키를 눌러 입력해야 하는데, Microsoft 365 버전이기 때문에 누르지 않아도 되고, 좌우에 중괄호 표시도 없습니다. (2) 수식 2B열 전체를 지정해서=SUM(IF(B:B>0,1,0))-1라고 할 수도 있는데, 맨 뒤에 -1을 한 것은 cnt_1이 0보다 큰 것으로 값이 나오기 때문입니다. 나. 두 가지 조건을 만족하는 경우 두 가지 조건을 만족하는 경우는 *를 이용해야 하므로=SUM(IF(($B$2:$B$33..

Excel 2024.08.08

여러가지 조건을 만족하는 개수 세기(1) - CountIfs

1. 문제  아래와 같이 왼쪽에 id별로 cnt_1부터 cnt_5까지의 개수가 있는데,cnt_1부터 cnt_5까지의 최대 개수는 H2셀부터 기재되어 있습니다.다시 말해 cnt_1은 0부터 5까지 6가지 경우의 수가 있고,cnt_2는 0부터 3까지 4가지 경우의 수가 있습니다. 이때 cnt1이 1에서 5 사이인 것, 그리고, cnt1이 1에서 5 사이이고 cnt2가 1에서 3 사이인, 다시 말해 둘 다 만족하는 개수를 세려고 하며, 이것을 cnt_5까지 반복하려고 합니다.  2. 해법 1한 가지 조건만 만족할 때는 CountIf, 두 가지 조건이상을 만족할 때는 CountIfs 함수를 이용하면 사용하면 되는데, 한 가지 조건을 만족하는 개수를 셀 때도 CountIfs를 사용할 수도 있습니다. 가. cnt_..

Excel 2024.08.07

왜 범위 지정 오류?

1. 문제 G2셀의 구분에 해당하는 값을 B열에서 찾아서 해당하는 A열에서 C열의 값을 i열부터 K열에 표시하려고 하는 것입니다. 가. Sheet1에서 '같은시트에복사' 매크로 실행 위 파일을 연 후 개발 도구 - 매크로를 누르고, 매크로 이름 목록에서 '같은시트에복사' 매크로를 클릭하고, 오른쪽 위 실행 버튼을 누르면 G2셀에 선택된 값과 동일한 구분에 해당하는 데이터만 i열부터 K열에 잘 복사됩니다. 나. Sheet1에서 '다른시트에복사' 매크로 실행 이번에는 Sheet1 시트가 선택된 상태에서 개발 도구 - 매크로를 누른 다음 '다른시트에복사' 매크로를 실행하고 Sheet2를 클릭해 보면 G2셀에 해당하는 값들이 잘 표시됩니다. 다. Sheet2에서 '다른시트에복사' 매크로 실행 그런데, Sheet..

EXCEL - VBA 2024.08.06

Unique 함수를 이용한 중복된 항목 제거와 데이터 유효성 검사

1. 문제 아래와 같은 자료가 있을 때  구분에서 중복을 제거한 유일한 데이터만을 추출할 때 데이터 탭의 '중복된 항목 제거' 명령을 사용할 수도 있지만,https://lsw3210.tistory.com/556 참고 Unique 함수를 이용할 수도 있습니다. 2. Unique 함수Unique 함수는 단어 그대로 유일한 값을 찾아주는 함수로서엑셀 2021 이상에서만 사용 가능한 단점이 있습니다. 구문은 =UNIQUE(array,[by_col],[exactly_once])이며, array만 필수 요소입니다. 3. 유일값 추출가. Unique 함수의 한계E1셀에 =unique(b:b)라고 입력하면구분부터 시작하는데, 맨 아래가 0으로 표시되므로, Unque의 array를 B열의 데이터 개수, 다시 말해 데이터..

Excel 2024.08.05
반응형