Vba: 인덱스 일치를 사용하는 방법


다음 기본 구문을 사용하여 VBA에서 INDEX MATCH를 수행할 수 있습니다.

 SubIndexMatch ()

    Dim i As Integer
    
    ' Perform index match
    For i = 2 To 11
    Cells(i, 5).Value = WorksheetFunction.Index(Range(" A2:A11 "), _
    WorksheetFunction.Match(Cells(i, 4).Value, Range(" B2:B11 "), 0))
    Next i
End Sub

이 특정 예에서는 B2:B11 범위에 있는 워크시트의 네 번째 열의 셀 2부터 11까지의 값을 검색한 다음 워크시트의 다섯 번째 열에 있는 A2:A11 범위의 해당 값을 반환합니다.

다음 예에서는 실제로 이 구문을 사용하는 방법을 보여줍니다.

예: VBA를 사용하여 INDEX MATCH 수행

농구 선수에 대한 정보가 포함된 다음과 같은 데이터 세트가 Excel에 있다고 가정합니다.

D열의 각 플레이어에 대해 A열에서 팀 이름을 찾은 다음 E열에 팀 이름을 적는다고 가정해 보겠습니다.

이를 위해 다음 매크로를 생성할 수 있습니다:

 SubIndexMatch ()

    Dim i As Integer
    
    ' Perform index match
    For i = 2 To 11
    Cells(i, 5).Value = WorksheetFunction.Index(Range(" A2:A11 "), _
    WorksheetFunction.Match(Cells(i, 4).Value, Range(" B2:B11 "), 0))
    Next i
End Sub

이 매크로를 실행하면 다음과 같은 출력이 나타납니다.

이 매크로는 각 플레이어의 이름을 검색한 다음 E열에 해당 팀의 이름을 반환할 수 있었습니다.

For 루프 내에서 Cells(i,5).value 구문은 팀 이름이 스프레드시트의 다섯 번째 열, 즉 E 열에 반환되도록 지정합니다.

이 구문을 Cells(i,6).value 로 변경하면 팀 이름이 스프레드시트의 여섯 번째 열에 반환됩니다.

 SubIndexMatch ()

    Dim i As Integer
    
    ' Perform index match
    For i = 2 To 11
    Cells(i, 6).Value = WorksheetFunction.Index(Range(" A2:A11 "), _
    WorksheetFunction.Match(Cells(i, 4).Value, Range(" B2:B11 "), 0))
    Next i
End Sub

이 매크로를 실행하면 다음과 같은 출력이 나타납니다.

이제 팀 이름이 스프레드시트의 여섯 번째 열(F열)에 반환됩니다.

추가 리소스

다음 자습서에서는 VBA에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

VBA:문자열에 다른 문자열이 포함되어 있는지 확인하는 방법
VBA:범위 내 행 수를 계산하는 방법
VBA: COUNTIF 및 COUNTIFS 함수 작성 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다