반응형

iF 65

VBA - vworld 사이트에서 토지 특성 조회(5) : 코드 설명(2)

(15) 토지특성속성 조회 URL 생성        ' 토지 특성 조회 URL 만들기(기준연도 초기값 올해)         base_url = "http://api.vworld.kr/ned/data/getLandCharacteristics"         params = "?pnu=" & pnu & "&format=xml" & "&key=CEB52025-E065-364C-9DBA-44880E3B02B8" '        params = params & "&numOfRows=3"         params = params & "&stdrYear=" & Year(Date)              ' search_url을 base_url과 params의 결합으로 함         search_url = bas..

EXCEL - VBA 2025.03.14

범위를 지정하는 방법(2) - Selection

이번에는 Selection을 이용해 매크로를 수정해 보겠습니다. Application.InputBox를 이용한 방법은아래 글을 참고 바랍니다.범위를 지정하는 방법(1) - Application.InputBox 1. 코드범위를 입력받지 않고 선택된 범위를 이용하므로코드도 간결해집니다.Sub 하이픈지우기2() Dim c As Range If IsEmpty(Selection) Then End Else For Each c In Selection c = WorksheetFunction.Substitute(c, "-", "") Next End IfEnd Sub 에러를 처리하는 구문이 없고(On Error Resume Next),범..

EXCEL - VBA 2025.02.21

지정된 색이 포함된 행을 위로 올리기

1. 문제차량이 여러 대 있는데, 도착하는 순서대로 B열에 파란색을 칠하면'미도착'을 '도착'으로 바꾼 다음 맨 처음인 경우는 해당 행을 2행으로 이동하고그다음부터는 파란색 다음(아래) 행으로 이동하는 것을 반복한다고 가정해 보겠습니다.   2. 해결 방안색이 변하면 할 때 생각나는 것이 Worksheet_SelectionChange 이벤트입니다.그리고, 파란색이 여러 개일 경우 맨 아래로 배치되어야 하므로 For Each 문을 반복해서 파란색인지 체크하는 구문이 필요합니다. 가. 개발 도구개발 도구를 클릭한 후 Visual Basic을 누르고,  완료여부체크.xlsx 파일의 Sheet1을 클릭합니다. 그리고, 오른쪽 '일반'이라고 쓰여 있는 곳을 누르면 Worksheet가 있는데 선택하면 '선언'이라고..

EXCEL - VBA 2025.02.19

2중 드롭다운 메뉴(데이터 유효성 검사)

1. 문제아래와 같이 결제수단을 선택할 경우 카드면 카드 번호 목록이 뜨고,계좌이체면 계좌목록이 뜨도록 하려고 합니다. 예제는 번호는 생략하고 카드사와 은행명만 표시하도록 하겠습니다.   2. 해법 1 - if함수 이용 가. A열에 결제수단 표시A열의 셀 하나를 선택한 다음 오른쪽의 콤보 상자 버튼을 눌렀을 때 카드와 계좌이체가 아래로 펼치지도록(드롭다운) 하려 하려면① A2셀부터 원하는 범위를 선택한 다음, 여기서는 A2셀에서 A10셀까지로 하겠습니다.② 데이터 > 데이터 유효성 검사의 윗부분을 누르고③  제한 대상을 목록으로 변경하고,④ 원본으로 지금 데이터는 E2셀과 E3셀에만 있지만 넉넉하게 E2셀에서  E10셀 정도를 지정하면 됩니다. 이제 A2셀의 오른쪽 콤보 상자 버튼을 누르면 카드와 계좌이..

Excel 2024.10.16

같은 글자가 중복되는 경우 마지막 글자의 위치 찾기(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셀을 입력하면 순서..

Excel 2024.09.19

연령별 채권잔액 구하기(3) - Reduce 함수

1. 문제1편에서는 월별 매출액, 수금액 시트에서 월별 채권잔액을 구하고, 2편에서는 월별 잔액을 집계표 형식으로 구했는데, 2편과 같은 값을 Reduce함수를 이용해 구해보겠습니다. 2. Reduce 함수와 Scan 함수Reduce함수는 최종 결괏값만을 돌려주는데 비해서, Scan 함수는 계산 단계별 값을 반환해 주는 것이 다른 점이고 구문은 같습니다. 가. Reduce 함수Reduce 함수의 구문은=REDUCE([initial_value], array, lambda(accumulator, value, body))로서 종전에는 구문이 lambda까지만 표시됐었는데 lambda의 인수까지 표시하는 것으로 바뀌었습니다.그런데 더 헷갈리네요. 아래는 Reduce 함수의 예제로서 Reduce함수의 초기값이 비..

Excel 2024.09.10

연령별 채권잔액 구하기(2) - SumIf + Offset

1. 문제아래와 같이 이월액과 월별 매출액, 수금액, 미수금이 있을 때 아래와 같이 월별(연령별) 채권잔액을 구하려고 합니다. 2. 해법가. 논리7월의 채권잔액은 7월까지의 매출액(이월액 포함)에서 미수금의 합계를 차감한 다음 6월까지의 채권잔액을 차감하면 되는데, 6월까지의 채권잔액은 6월까지의 매출액(이월액 포함)에서 미수금의 합계를 차감한 금액으로 7월의 채권잔액을 구할 때나 6월까지의 채권잔액을 구할 때나 미수금의 합계는 같습니다. 나. 수식 만들기 (1) 7월 채권잔액 구하기 ㉮ 7월까지 매출액 계 구하기 '거래처수불현황'시트에서 7월까지의 매출액(이월액 포함) 합계를 구하는데, '매출액'이라는 글자는 4행에 있고, 금액은 그 아래 있습니다. 따라서, 7월까지의 매출액 합계는 SumIf 함수를 ..

Excel 2024.09.09

연령별 채권잔액 구하기(1) - SumIf

1. 문제아래와 같이 이월액과 월별 매출액, 수금액, 미수금이 있을 때 월별 채권 잔액을 7행과 8행에서 구해보겠습니다. 2. 해법가. 논리문제를 풀려면 어떤 식으로 값을 구해야 하는지 논리가 먼저 정립이 돼야 합니다. (1) 1월의 채권잔액 구하기 1월의 채권잔액은 1월까지 발생한 채권액(이월액 포함)을 모두 회수했다면(초과한 경우 포함) 0이고, 아니면 채권액 - 수금액의 합계가 됩니다. (2) 2월 이후의 채권잔액 구하기 1월은 간단하게 위와 같이 구할 수 있는데, 2월은 2월까지의 채권잔액에서 1월의 채권잔액을 차감해야 합니다. 왜냐하면 2월까지의 채권액에서 수금액 계를 빼면 2월까지의 채권잔액이 나오고, 이것은 1월의 채권잔액을 포함한 금액이기 때문입니다. 이런 식으로 3월 이후는 3월까지의 채..

Excel 2024.09.06

법정동을 선택하여 PNU 완성하기(3) - Filter + Sort

이번에는 최신 함수인 Filter와 Sort 함수를 이용해 읍면동을 입력한 후 입력한 읍면동을 포함하는 법정동을 추출한 후 유효성 검사를 이용해 법정동을 선택한 후 그것에 맞는 법정동코드를 추출하고, 지번에서 특지 구분과 본번 부번을 추출한 후 결합해서 최종적인 PNU를 만드는 것을 해보겠습니다. Index와 Aggregate함수를 이용하는 것은 아래 글을 참고 바랍니다.https://lsw3210.tistory.com/567https://lsw3210.tistory.com/568 Microsoft 도움말 사이트를 살펴보면 Filter와 Sort 함수 모두 Excel 2021 이상에서 사용 가능한 것으로 되어 있습니다.https://support.microsoft.com/ko-kr/office/filte..

Excel 2024.08.22

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