Vba: як використовувати зіставлення індексів


Ви можете використовувати такий базовий синтаксис для виконання INDEX MATCH у VBA:

 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

Цей конкретний приклад шукає значення в клітинках з 2 по 11 четвертого стовпця аркуша в діапазоні B2:B11 , а потім повертає відповідні значення в діапазоні A2:A11 у п’ятому стовпці аркуша.

У наступному прикладі показано, як використовувати цей синтаксис на практиці.

Приклад: Виконайте INDEX MATCH за допомогою VBA

Припустимо, що в 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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *