목차
Excel VBA 에서 여러 기준 배열로 필터링 하는 방법을 찾고 있다면 제대로 찾아오셨습니다. Excel의 기존 기능을 사용하는 대신 VBA 코드를 사용하면 여러 기준에 따라 대규모 데이터 세트를 쉽게 필터링할 수 있습니다.
그럼 본론을 시작하겠습니다.
통합 문서 다운로드
Filter with Multiple Criteria.xlsm
Excel VBA를 사용하여 배열에서 여러 기준으로 필터링하는 7가지 방법
다음 데이터 세트에는 학생의 이름과 ID에 해당하는 몇 가지 마크 레코드가 있습니다. 일부 코드를 사용하여 다양한 기준에 따라 이 데이터 세트를 배열로 필터링하려고 합니다.
여기서는 Microsoft Excel 365 버전을 사용했습니다. 당신의 편의에 따라 다른 버전을 사용할 수 있습니다.
방법-1: 배열의 텍스트로 여러 기준으로 필터링
여기서 을 기반으로 다음 데이터 세트를 필터링하려고 합니다. 문자열 Emily , Daniel 및 Gabriel <10을 포함하는 여러 기준에 대한 학생 이름 열> 어레이에서.
단계-01 :
➤ 개발자 로 이동 탭 >> Visual Basic Option.
그러면 Visual Basic Editor 가 열립니다.
➤ 삽입 탭 >> 모듈 옵션으로 이동합니다.
그 후 모듈 는생성되었습니다.
Step-02 :
➤ 다음 코드를 작성합니다.
2840
여기서 필터를 적용할 B3:D3 범위의 헤더 이름과 Field:=2 는 이 필터링 프로세스를 수행할 기준이 되는 이 범위의 열 번호입니다.
마지막으로 Emily , Daniel 과 같은 여러 학생의 이름을 선언하기 위한 배열로 기준을 설정했습니다. , 및 Gabriel .
➤ F5 를 누릅니다.
그런 다음 여러 기준에 대해 데이터 세트를 필터링하여 학생의 이름과 해당 ID 및 마크 를 표시합니다. 1> 에밀리 , 다니엘 , 가브리엘 .
자세히 보기: Excel에서 여러 기준 필터링(적절한 4가지 방법)
방법-2: 다음을 사용하여 배열에서 여러 숫자 기준으로 필터링 Excel VBA
여기서 ID 101135 , 10에 대해 다음 데이터 세트를 필터링합니다. 1137 및 101138 이 숫자를 배열의 여러 기준으로 사용합니다.
단계 :
➤ 방법-1 의 단계-01 을 따릅니다.
➤ 다음 코드를 작성합니다
2263
여기서 필터를 적용할 B3:D3 범위의 헤더 이름을 선언했으며 Field:=2 는 이 범위의 열 번호입니다. 이 필터링을 수행합니다
마지막으로 101135 , 101137 과 같은 여러 학생의 ID를 선언하기 위한 기준을 배열로 설정했습니다. 및 101138 그리고 AutoFilter 는 문자열 배열에만 작동하기 때문에 문자열로 지정하기 위해 역쉼표 안에 넣었습니다.
➤ F5 를 누르십시오.
다음에 ID가 인 학생의 이름과 점수가 표시됩니다. 101135 , 101137 및 101138 .
자세히 보기: VBA를 사용하여 Excel에서 열에서 배열로 고유한 값 가져오기(3가지 기준)
방법-3: 사용을 위한 범위에서 여러 기준 설정 as Array
여기에서 101134 , 101135
단계 :
➤ 방법-1 의 단계-01 을 따릅니다.
➤ 다음 코드를 작성합니다
5703
여기 , 우리는 ID_range , k 는 Variant 이고 ID_range 는 여러 기준을 저장할 어레이이고 k 는 이 배열의 하한에서 상한까지의 증분입니다. 하한과 상한을 갖기 위해 각각 LBOUND 함수 와 UBOUND 함수 를 사용했습니다.
FOR 루프 는 문자열 이외의 값 CStr 함수 의 도움으로 배열에서 문자열로. 마지막으로 이 어레이를 Criteria1 로 활용했습니다.
➤ F5 를 누릅니다.
다음에 ID가 101134 , 101135 및 101136 인 학생의 이름과 점수를 가져옵니다. .
자세히 보기: Excel VBA
<에서 여러 기준으로 다른 열 필터링 1>유사 읽기
- Excel에서 고유한 값을 필터링하는 방법(8가지 쉬운 방법)
- Excel에서 사용자 지정 필터 수행(5 방법)
- VBA(매크로, UDF 및 사용자 양식)를 사용하여 배열의 평균 계산
- Excel 필터 바로 가기(3가지 빠른 사용) 예제 포함)
방법-4: SPLIT 및 JOIN 함수를 사용하여 여러 조건을 갖는 배열 생성
여기서는 목록에서 다음 목록을 활용합니다. 컬럼을 배열로 사용하고 데이터세트를 적절하게 필터링하기 위해 에서 SPLIT 함수 , JOIN 함수 및 TRANSPOSE 함수 도 사용합니다. VBA 코드.
단계 :
<폴 낮은 Step-01 of Method-1 .
➤ 다음 코드 작성
4656
여기에 TRANSPOSE 가 변환됩니다. 2D 배열을 1D 배열로 자동 필터 가 작동하지 않고 JOIN 이 각 값을 문자열 배열로 결합합니다. 마지막으로 SPLIT 는 각 문자열을 분해하여 입력을 제공합니다.데이터세트 필터링 기준으로 별도로 사용합니다.
➤ F5 를 누릅니다.
마지막으로 다음의 이름과 마크가 표시됩니다. ID가 101134 , 101135 및 101136 .
인 학생
자세히 보기: VBA에서 문자열을 배열로 분할하는 방법(3가지 방법)
방법-5 : VBA
가 있는 배열의 루프에서 여러 기준으로 필터링 이 섹션에서는 학생 ID 열에 따라 다음 데이터 세트를 여러 목록 열에 나열된 기준.
단계 :
< 단계- 01 of Method-1 .
➤ 다음 코드 작성
1882
여기서 k 를 Integer로 선언했습니다. , ID_range(100) as String 여기서 ID_range 는 최대 100 값을 저장할 배열입니다. 여기에서 이 어레이의 값을 결정하기 위해 k 에서 4 에서 6 까지의 행 번호로 FOR 루프 를 사용했습니다. 목록 열 및 F 는 열 이름입니다.
마지막으로 이 배열을 자동 필터 에 대한 기준1 으로 사용했습니다. .
➤ F5 를 누르십시오.
결국 ID가 <인 학생의 이름과 점수를 얻게 됩니다. 9>101134 , 101135 및 101136 .
자세히 보기: VBA를 사용하여 Excel에서 여러 조건 필터링(AND 및 OR 모두)유형)
방법-6: 여러 기준에 명명된 범위 사용
여기서 목록 열에 학생 이름을 나열하고 이름을 지정했습니다. 범위는 학생 입니다. 이 명명된 범위를 사용하여 자동 필터 기능에 대한 여러 기준을 포함하는 배열을 정의합니다.
단계 :
➤ 방법-1 의 단계-01 을 따릅니다.
➤ 다음 코드를 작성합니다.
4539
여기에 Student_range , k 를 Variant 로, TRANSPOSE 함수 를 사용하여 명명된 범위의 2D 배열을 변환했습니다. Student 를 1D 배열에 넣은 다음 Student_range 에 저장했습니다. 그러면 자동필터 방법의 기준1 으로 사용됩니다.
➤ F5 를 누르십시오.
그런 다음 데이터 세트를 여러 기준으로 필터링하여 학생 이름과 해당 ID 및 마크 <10을 표시합니다> Jefferson , Emily , Sara 학생을 위해.
관련 콘텐츠: Excel에서 배열을 전치하는 VBA(3가지 방법)
방법-7: 배열에 여러 기준이 있는 필터 테이블
여기에는 이름이 Table1 이고 Excel VBA를 사용하는 테이블 이 있습니다. 이름 Emily , Daniel , 및 Gabriel 어레이의 여러 기준으로.
단계 :
➤ 방법-1 의 단계-01 을 따릅니다.
➤ 다음 코드를 작성합니다.
5287
여기에 ListObjects(“Table1”) 는 테이블 정의에 사용됩니다. Table1 , Field:=2 이 범위의 두 번째 열을 필터링 프로세스의 기준으로 설정하고 마지막으로 배열을 정의했습니다. Criteria1 에 대한 여러 이름을 포함합니다.
➤ F5 를 누릅니다.
결국 데이터세트를 갖게 됩니다. 여러 기준에 대해 필터링되어 학생의 이름과 해당 ID 및 마크 (학생 <9)를 표시합니다>Emily , Daniel 및 Gabriel .
자세히 보기: Excel VBA: 셀 값을 기반으로 한 필터 표(6가지 쉬운 방법)
실습 섹션
실습 Practice 라는 시트에 아래와 같은 Practice 섹션을 제공했습니다. 직접 해보세요.
결론
이 글에서는 엑셀 VBA 쉽게. 유용하게 사용하시길 바랍니다. 제안이나 질문이 있는 경우 의견 섹션에서 자유롭게 공유하십시오.