반응형

분류 전체보기 552

여러 가지 조건을 만족하는 값을 찾을 때(4) - 데이터를 결합한 열 생성 후 Vlookup

사용자 정의 함수는 복잡한 수식을 간단하게 만드는 편리함은 있는데, 내장 함수에 비해 속도가 너무 느립니다. 따라서, 열을 결합한 값을 찾을 때 Vlookup함수로는 안되니까, 새로운 열에 열을 결합한 데이터를 추가한 후 Vlookup함수를 실행하는 것이 좋습니다. 다만 이렇게 하면 보기에 안좋은 열이 생기는 것이 단점입니다. 위 화면은 나라별, 연도별 인구수를 오른쪽 표에서 찾아서 C열에 표시하려고 하는 것입니다. 1. 문제점 VLookup 함수는 찾을 값은 찾을 범위의 첫번째 열에서 찾기 때문에 =VLOOKUP(A2&B2,$F$2:$F$7&$G$2:$G$7&$H$2:$H$7,3,0)라고 입력해도 첫번째 열인 F열에서 A2셀과 B2셀을 결합한 값을 찾기 때문에 #N/A 에러가 발생한 것입니다. 2. 해..

Excel 2023.07.28

여러 가지 조건을 만족하는 값을 찾을 때(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

여러 가지 조건을 만족하는 값을 찾을 때(2-2) - 사용자 정의 함수(2)

4. 사용자 정의 함수 설명 가. Option Explicit 변수에 대한 선언을 명시적으로 하라는 것입니다. 5행에 커서를 둔 상태에서 위 편집 도구 모음(보기 > 도구모음 > 편집을 눌러 추가)에서 주석 블록 설정 아이콘을 눌러 5행을 주석처리하면 해당 줄 맨 앞에 작은따옴표가 추가되고, 글자가 녹색으로 바뀝니다. 이제 기본 도구 모음에서 엑셀 아이콘을 눌러 엑셀로 돌아간 다음 C2셀에서 F2키를 눌러 편집모드로 들어간 다음 엔터 키를 누르거나, 수식 입력 줄을 클릭해서 커서를 넣은 다음 엔터 키를 눌러 수식을 실행하면 아래와 같이 '변수가 정의되지 않았습니다'란 에러 메시지가 표시됩니다. 따라서, 변수 i엘 대한 주석을 풀어서 변수 i는 선언을 해야 합니다. 나. Option Base 1 배열의 인..

EXCEL - VBA 2023.07.26

여러 가지 조건을 만족하는 값을 찾을 때(2-1) - 사용자 정의 함수(1)

XLookup함수가 뛰어나기는 하지만 Excel 2021 버전이상에서만 사용할 수 있기 때문에 사용자 정의 함수를 만들어 사용하려고 합니다. 만들면서 한 열만 지정하는 경우는 범위로 되고, 열을 &연산자로 연결하면 배열로 돼서 이를 해결하느라 고생 좀 했습니다. 사용자 정의 함수는 추가기능 파일, 확장자 xla(m) 파일에 모아 놓고 사용하는 것이 좋습니다. 그렇지만 설명이므로 모듈에 만드는 것을 기준으로 설명하겠습니다. 1. VBA 에디터 실행 및 모듈 삽입 개발도구 탭이 없다면 파일 - 옵션에서 Excel 옵션 창을 연 후 리본 사용자 지정 메뉴를 선택하고, 개발도구 왼쪽에 체크해야 합니다. 개발 도구 탭을 누른 후 Visual Basic 명령을 눌러 Visual Basic 에디터를 엽니다. 그리고,..

EXCEL - VBA 2023.07.25

여러 가지 조건을 만족하는 값을 찾을 때(1) - VLookup, Index+Match, XLookup함수

1. VLookup 함수의 한계 VLookup 함수의 구문은 VLOOKUP(찾을 값, 표 범위, 몇 번째 컬럼, [유사일치여부]) 인데, 네번째 인수는 선택적 인수이지만 생략하면 유사값을 찾아 반환하므로 정확한 값을 찾도록 0을 입력하거나 False를 선택해야 합니다. 아래와 같이 나라별, 연도별 인구수를 구하고자 할 때 나라와 연도 2가지 조건을 만족해야 하는데 VLookup함수로는 에러가 발생해서 C2셀의 수식 : =VLOOKUP(A2&B2,$F$2:$F$7&$G$2:$G$7&$H$2:$H$7,3,0) C3셀의 수식 : =VLOOKUP(A3&B3,$F$2:$H$7,3,0) 2. Index + Match 함수 Index와 Match 함수를 결합해서 구해야 하며, 365버전이 아니라면 Shift+Ctrl..

Excel 2023.07.24

본인 인증을 우회하기 위한 팁

1. 카카오 내비 세컨 폰에서 카카오 내비를 사용하려고 '카카오계정으로 시작하기'를 누르면 본인 인증을 요구하는데 메인 폰에서 하면 됩니다. 2. GS SHOP 집 사람 폰에서 구매 한 후 내 카드로 결제하려고 했더니 본인 카드가 아니라고 하면서 안되는데, 내 폰에서 GS SHOP에 접속한 후 카드 결제를 하면 문제 없이 잘 됩니다. 3. 테슬라 앱 공장 초기화를 했더니 연결된 구글 Authenticator 정보가 없어져서 구글 Authenticator 앱을 다시 설치해도 번호가 틀리다는 메시지가 나옵니다. 이 때는 테슬라 고객 센터에 전화해서 인증 없이 테슬라 사이트에 접속할 수 있도록 해달라고 요청해야 합니다. 그러나, 구글 Authenticator가 연결되면 다른 폰에 구글 Authenticator..

스마트폰 2023.07.21

텍스트로 된 수식의 값 구하기(4 - 2) - 사용자 정의 함수

텍스트로 된 수식의 값 구하기(4 - 1) - Evaluate 함수에서 VBA의 Evaluate 함수를 이용해 수식의 값을 구할 수 있다는 것을 알았는데, https://lsw3210.tistory.com/entry/%ED%85%8D%EC%8A%A4%ED%8A%B8%EB%A1%9C-%EB%90%9C-%EC%88%98%EC%8B%9D%EC%9D%98-%EA%B0%92-%EA%B5%AC%ED%95%98%EA%B8%B04-1-Evaluate-%ED%95%A8%EC%88%98 직접 실행창에서 매번 실행할 수는 없으므로 사용자 정의 함수를 만들어 사용해야 합니다. 1. VB 에디터 실행 개발도구 - Visual Basic을 눌러 VB Editor를 연 다음 엑셀 파일명을 클릭한 다음 사용자 정의 폼 삽입 옆의 콤..

EXCEL - VBA 2023.07.20

텍스트로 된 수식의 값 구하기(4 - 1) - Evaluate 함수

1. Evaluate 함수 가. 정의 엑셀 이름을 오브젝트 또는 값을 변환합니다(Converts a Microsoft Excel name to an object or a value). 이름(Name)은 수식(Formula)이 될 수도 있고, 셀 주소 또는 범위 등이 될 수도 있습니다. 나. 구문 expression.Evaluate (Name) - expression은 오브젝트를 가르키는 변수로 Application, Book1.xlsx, Sheet1 등이 될 수 있습니다. - Name은 아래와 같이 다양한 형태가 될 수 있는데, VBA 에디터를 실행한 후 직접 실행창에서 간단히 결과를 확인할 수 있습니다. 다. Name의 종류 및 사용 예 Name 사용 예 Formulas 수식으로 텍스트로 된 수식도 가..

EXCEL - VBA 2023.07.19

텍스트로 된 수식의 값 구하기(3) - Let, Switch 함수 이용

1. Let과 Switch 함수 둘 다 Microsoft 365용 Excel, Mac용 Microsoft 365용 Excel, 웹용 Excel , Excel 2021, Mac용 Excel 2021에서만 사용 가능한 최신 함수입니다. 가. Let 함수 (1) 정의 및 구문 Let함수는 이름에 값을 할당해서 계산 후 결과 값을 돌려주는 것으로 계산식을 이름에 할당하고, 다시 계산할 수 있는 유용한 함수이며, 구문은 아래와 같이 이름, 값, 계산식 또는 이름2 식을 여러 번 지정할 수 있으며, 마지막 인수는 반드시 계산식으로 끝나야 합니다. =LET(name1, name_value1, calculation_or_name2, [name_value2, calculation_or_name3...]) (2) 사용 예..

Excel 2023.07.18

텍스트로 된 수식의 값 구하기(2) - 사칙 연산자 적용

"텍스트로 된 수식의 값 구하기(1)"에서는 곱하기만을 다뤘는데, https://lsw3210.tistory.com/entry/%ED%85%8D%EC%8A%A4%ED%8A%B8%EB%A1%9C-%EB%90%9C-%EC%88%98%EC%8B%9D%EC%9D%98-%EA%B0%92-%EA%B5%AC%ED%95%98%EA%B8%B01-%EA%B3%B1%ED%95%98%EA%B8%B0%EB%A7%8C 이번에는 *뿐만 아니라 +, /, - 등 사칙 연산을 제대로 계산해서 값을 구하는 것을 구현해 보겠습니다. 1. 연산자 위치 알아내기 "텍스트로 된 수식의 값 구하기(1)"에서도 연산자인 *의 위치를 =find("*",a3) 수식을 이용해 구했으나, 사칙 연산 기호가 모두 적용돼야 하므로 위 수식을 수정해야 합니다..

Excel 2023.07.17
반응형