반응형

동적 배열 6

법정동을 선택하여 PNU 완성하기(1) - Index + Aggregate

1. 문제 ① 읍면동명과 지번을 A2셀과 B2셀에 입력하면 ② 읍면동명을 포함한 법정동명을 검색한 후③ 유효성 검사 목록에 넣고④ 법정동명을 선택하면 해당 법정동 코드가 구해지고,⑤ 지번을 이용해 특지구분과 본번과 부번을 각각 4자리로 만들어⑥ 이들을 모두 결합해서 19자리 PNU 코드를 완성하려고 합니다. 법정동코드 시트는 법정동코드, 법정동명, 폐지여부 3개 열로 구성되어 있습니다. 2. 해법  가. A2셀에 입력된 읍면동명을 포함하는 법정동명 구하기포함이니까 Find 함수와 IsNumber가 필요하고,포함하는 법정동명을 여러 개 순서대로 구해줘야 하니 Small 또는 Aggregate 함수가 필요하고,순번에 맞는 법정동명을 구해야 하니 Index 함수,그리고, 에러 발생 시 공백으로 만들기 위해 I..

Excel 2024.08.20

선택값을 기준으로 필터하여 표시하기(2)

크게 배열 수식을 이용하는 방법과 동적 배열 함수인 Filter 함수를 이용하는 방법으로 나눠 살펴보겠습니다. 나. 배열 수식을 이용하는 방법배열 수식을 이용하는 것은 조건에 맞는 값을 찾은 후 index 함수를 이용해 순번에 따른 값을 차례로 표시하면 되는데, 차례대로 표시할 때 Small 함수를 이용할 수도 있고, Aggregate 함수를 이용할 수도 있습니다. 배열이 레거시 배열과 동적 배열로 구분되므로 먼저 동적 배열을 지원하는 Microsoft 365에서 해보고, 레거시 배열인 2019에서 해보겠습니다. (1) Microsoft 365의 경우 필터 시트는 아래와 같이 업체명이 업체4여야 한다는 조건과 결과 표시 영역이 있고, 데이터 시트에는 업체별 판매물품 등 데이터가 들어있으므로 여기서 업체명..

Excel 2024.07.30

목표 달성 소요일수 구하기 (2) - SubTotal 함수

3. 해법 2 - SubTotal 함수 이용 1편은 여기를 참고 바랍니다. 가. SubTotal 함수SubTotal 함수의 구문은SUBTOTAL(function_num,ref1,[ref2],...)로서 function_num에 따라 합계, 평균, 숫자의 개수 등 다양한 값을 구할 수 있습니다. Function_num(숨겨진 행 포함) Function_num(숨겨진 행 무시) 함수 1101AVERAGE2102COUNT3103COUNTA4104MAX5105MIN6106PRODUCT7107STDEV8108STDEVP9109SUM10110VAR11111VARP  아래와 같은 숫자의 합을 구할 때 Sum을 사용할 수도 있고, Subtotal(9,을 사용할 수도 있습니다.값이 같은지 비교하기 위해 그룹 1과 그..

Excel 2024.07.12

떨어진 값을 곱한 후 합계 구하기

1. 문제 D열의 값과 O열의 월에 해당하는 값, 다시 말해 2024/01은 E열, 2024/02는 F열의 값을 곱한 다음 그 합을 구해서 P열에 입력하는 것입니다. P5열에 예시로 든 수식은 =(D5*E5)+(D6*E6)+(D7*E7)+(D8*E8)+(D9*E9)로 전형적인 SumProduct 함수의 사용 예입니다. 2. SumProduct 함수 SumProduct 함수의 구문은 =SUMPRODUCT(array1, [array2], [array3],...)으로 곱할 값들의 범위 또는 배열을 1개 이상 입력하는 것입니다. 위와 같은 경우 array1은 D5:D9가 되고, array2는 E5:E9가 됩니다. P4셀에 =SUMPRODUCT(D5:D9,E5:E9)라고 입력하면 =(D5*E5)+(D6*E6)+(..

Excel 2024.02.08

여러 가지 조건을 만족하는 값을 찾을 때(3) - 동적 배열을 이용한 속도 개선

동적 배열을 이용해서 사용자 정의 함수 코드를 수정했더니 훨씬 속도가 빨라졌습니다. 1. 사용자 정의 함수 구문 가. 기존 코드 Option Explicit Option Base 1 Function multi_vlookup(lookup_value, lookup_array, return_array As Range) Dim i As Double '배열은 그대로 두고, 범위일 경우 배열로 변환 Dim Range_to_Array As Variant Debug.Print (vbCrLf & "범위 배열 변환1 : " & Now()) Range_to_Array = lookup_array For i = 1 To UBound(Range_to_Array) If i >= 2 And Len(Range_to_Array(i, 1..

EXCEL - VBA 2023.07.27

@ 연산자 - 동적 배열을 단일 값으로 변환

예전에 작성했던 엑셀 파일을 여니 @표시가 생겨서 살펴보니 @는 Implicit Intersection(암묵적 교차점) 연산자로서 과거 버전과의 호환성을 위해 Microsoft 365에 새로 도입된 기능이라고 합니다. 1. Microsoft 365의 배열 처리의 특수성 c2셀에 =b2:b13*2라고 입력하고 이전 버전의 경우는 Ctrl + Shift +Enter키를 눌렀는데, 엔터 키만 눌러도 C2셀부터 C13셀까지 B2셀부터 B13셀까지 값에 2를 곱한 값이 채워지고, 파란색 선으로 테두리가 쳐집니다. 다시 말해 배열인 경우 자동으로 배열의 크기만큼 계산이 이뤄집니다. 2. 이전 버전과의 호환성 확보 이전 버전의 경우는 Ctrl + Shift +Enter키를 누르지 않고 엔터 키만 누르면 배열이라도 셀..

Excel 2023.03.30
반응형