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 함수 작성 방법