Индекс на VBA - Как да използвам функцията за съвпадение на индекса във VBA (примери)

Индексен мач във VBA

Функцията INDEX & MATCH в комбинация VBA е алтернативата на функцията VLOOKUP в Excel. Във VBA нямаме лукса да използваме директно функцията INDEX & MATCH, тъй като тези две функции не са част от вградените функции на VBA. Все пак можем да ги използваме като част от клас на функция на работния лист.

Как да използвам мач на индекса във VBA? (Стъпка по стъпка)

Например погледнете данните по-долу.

В горните данни търсената стойност е името на отдела и въз основа на това име на отдела трябва да извлечем сумата на заплатата.

Но проблемът тук е, че колоната с резултати е там в първата, а колоната за справочна стойност е след това колоната с резултати. В този случай VLOOKUP не може да получи сумата на заплатата, защото VLOOKUP работи само отдясно наляво, а не отляво надясно.

В тези случаи трябва да използваме комбинираната формула на функцията VBA INDEX & MATCH. Нека изпълним задачата да намерим размера на заплатата на всеки отдел в кода на VBA.

Стъпка 1: Започнете слънчевата рутина.

Стъпка 2: Декларирайте променливата VBA Integer.

Код:

Sub INDEX_MATCH_Example1 () Dim k As Integer End Sub

Стъпка 3: Сега отворете For Next Loop във VBA.

Код:

Sub INDEX_MATCH_Example1 () Dim k As Integer For k = 2 To 5 Next k End Sub

Стъпка 4: Вътре в цикъла VBA изпълнете формулата. В 5 -та колона трябва да приложим формулата, така че кодът е CELLS (k, 5).

Код:

Sub INDEX_MATCH_Example1 () Dim k As Integer За k = 2 до 5 клетки (k, 5). Стойност = Следващ k Край Sub

Стъпка 5: В тази клетка трябва да приложим формулата VBA INDEX & MATCH. Както казах, трябва да използваме тези функции като функция на работен лист в клас VBA, така че отворете клас на функция на работния лист.

Код:

Под INDEX_MATCH_Example1 () Dim k като цяло число за k = 2 до 5 клетки (k, 5). Стойност = Функция на работния лист. Следващ k Край Под

Стъпка 6: След въвеждане на клас функция на работния лист можем да видим всички налични функции на работния лист, затова изберете функцията INDEX.

Код:

Sub INDEX_MATCH_Example1 () Dim k As Integer For k = 2 To 5 Cells (k, 5) .Value = WorksheetFunction.Index (Next k End Sub

Стъпка 7: Докато използвате функцията на работен лист във VBA, трябва да сте абсолютно сигурни в аргументите на формулата. Първият аргумент е масив, т.е. от коя колона се нуждаем от резултата. В този случай се нуждаем от резултата от A2 до A5.

Код:

Sub INDEX_MATCH_Example1 () Dim k As Integer For k = 2 To 5 Cells (k, 5) .Value = WorksheetFunction.Index (Range ("A2: A5"), Next k End Sub

Стъпка 8: Следващото е от кой ред номер се нуждаем от резултата. Както видяхме в предишния пример, не можем да подаваме ръчно номера на реда всеки път. Затова използвайте функцията MATCH.

За да използваме функцията MATCH за пореден път, трябва да отворим класа Function Worksheet.

Код:

Sub INDEX_MATCH_Example1() Dim k As Integer For k = 2 To 5 Cells(k, 5).Value = WorksheetFunction.Index(Range("A2:A5"), WorksheetFunction.Match( Next k End Sub

Step 9: MATCH functions first argument is the LOOKUP value; here, our lookup value is department names; it is there in the cells (2, 4).

Since every time the row number has to change, we can supply the variable “k” in place of manual row number 2. Cells (k, 4).Value

Code:

Sub INDEX_MATCH_Example1() Dim k As Integer For k = 2 To 5 Cells(k, 5).Value = WorksheetFunction.Index(Range("A2:A5"), WorksheetFunction.Match(Cells(k,5).Value, Next k End Sub

Step 10: Next, we need to mention the department value range i.e., Range (“B2:B5”).

Code:

Sub INDEX_MATCH_Example1 () Dim k As Integer For k = 2 To 5 Cells (k, 5) .Value = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Cells (k, 5) .Value, Range ("B2: B5"),

Следващ k

Крайна под

Стъпка 11: След това поставете аргумента като 0, защото се нуждаем от точно съвпадение и затворете скобите.

Код:

Sub INDEX_MATCH_Example1 () Dim k As Integer For k = 2 To 5 Cells (k, 5) .Value = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Cells (k, 4) .Value, Range ("B2: B5"), 0))

Следващ k

Крайна под

Добре, приключихме с частта за кодиране. Нека пуснем кода, за да получим резултата в колона 5.

И така, получихме резултата.

Можем да използваме тази формула като алтернатива на функцията VLOOKUP.

Интересни статии...