Shoda indexu VBA | Jak používat funkci shody indexu ve VBA (příklady)

Shoda indexu ve VBA

Funkce INDEX & MATCH v kombinaci VBA je alternativou k funkci VLOOKUP v aplikaci Excel. Ve VBA nemáme luxus přímo používat funkci INDEX & MATCH, protože tyto dvě funkce nejsou součástí vestavěných funkcí VBA. Stále je však můžeme používat jako součást třídy funkcí listu.

Jak používat indexovou shodu ve VBA? (Krok za krokem)

Tuto šablonu Excel VBA Index Match Excel si můžete stáhnout zde - Šablona Excel VBA Index Match

Podívejte se například na níže uvedená data.

Ve výše uvedených datech je vyhledávací hodnotou název oddělení a na základě tohoto názvu oddělení musíme extrahovat částku platu.

Ale problém je zde sloupec výsledků je tam v prvním a sloupec hodnoty vyhledávání je poté sloupec výsledku. V takovém případě VLOOKUP nemůže načíst částku platu, protože VLOOKUP funguje pouze zprava doleva, nikoli zleva doprava.

V těchto případech musíme použít kombinovaný vzorec funkce VBA INDEX & MATCH. Pojďme provést úkol najít částku platu každého oddělení v kódu VBA.

Krok 1: Zahajte sluneční rutinu.

Krok 2: Deklarujte celočíselnou proměnnou VBA.

Kód:

 Sub INDEX_MATCH_Example1 () Dim k As Integer End Sub 

Krok 3: Nyní otevřete další smyčku ve VBA.

Kód:

 Sub INDEX_MATCH_Example1 () Dim k As Integer Pro k = 2 až 5 Další k End Sub 

Krok 4: Uvnitř smyčky VBA proveďte vzorec. V 5. sloupci musíme použít vzorec, takže kód je CELLS (k, 5). Hodnota =

Kód:

 Sub INDEX_MATCH_Example1 () Dim k As Integer Pro k = 2 až 5 buněk (k, 5). Hodnota = Další k End Sub 

Krok 5: V této buňce musíme použít vzorec VBA INDEX & MATCH. Jak jsem řekl, musíme tyto funkce použít jako funkci listu ve třídě vba, takže otevřete třídu funkcí listu.

Kód:

Sub INDEX_MATCH_Example1 () Dim k As Integer Pro k = 2 až 5 buněk (k, 5). Hodnota = WorksheetFunction. Další k Konec Sub

Krok 6: Po vstupu do třídy funkce listu vidíme všechny dostupné funkce listu, takže vyberte funkci INDEX.

Kód:

 Sub INDEX_MATCH_Example1 () Dim k As Integer Pro k = 2 až 5 buněk (k, 5). Hodnota = WorksheetFunction.Index (další k End Sub 

Krok 7: Při používání funkce listu ve VBA si musíte být absolutně jisti argumenty vzorce. Prvním argumentem je pole, tj. Od kterého sloupce potřebujeme výsledek, v tomto případě potřebujeme výsledek od A2 do A5.

Kód:

 Sub INDEX_MATCH_Example1 () Dim k As Integer Pro k = 2 až 5 buněk (k, 5). Value = WorksheetFunction.Index (Range ("A2: A5"), Next k End Sub 

Krok 8: Další na řadě je, od kterého čísla řádku potřebujeme výsledek. Jak jsme viděli v předchozím příkladu, nemůžeme pokaždé ručně zadat číslo řádku. Použijte tedy funkci MATCH.

Abychom mohli znovu použít funkci MATCH, musíme otevřít třídu funkcí listu.

Kód:

 Sub INDEX_MATCH_Example1 () Dim k As Integer Pro k = 2 až 5 buněk (k, 5). Hodnota = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Další k End Sub 

Krok 9: Prvním argumentem funkce MATCH je hodnota LOOKUP, zde je naší vyhledávací hodnotou názvy oddělení, je tam v buňkách (2, 4).

Protože pokaždé, když se číslo řádku musí změnit, můžeme místo ručního čísla řádku 2 zadat proměnnou „k“. Buňky (k, 4). Hodnota

Kód:

 Sub INDEX_MATCH_Example1 () Dim k As Integer Pro k = 2 až 5 buněk (k, 5). Hodnota = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Cells (k, 5) .Value, Další k End Sub 

Krok 10: Dále musíme zmínit rozsah hodnot oddělení, tj. Rozsah („B2: B5“).

Kód:

 Sub INDEX_MATCH_Example1 () Dim k As Integer Pro k = 2 až 5 buněk (k, 5). Hodnota = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Cells (k, 5) .Value, Range ("B2: B5"), 

Další k

End Sub

Krok 11: Dále dejte argument jako 0, protože potřebujeme přesnou shodu a zavřete závorky.

Kód:

 Sub INDEX_MATCH_Example1 () Dim k As Integer Pro k = 2 až 5 buněk (k, 5). Hodnota = WorksheetFunction.Index (Rozsah ("A2: A5"), WorksheetFunction.Match (Buňky (k, 4). Hodnota, Rozsah ("B2: B5"), 0)) 

Další k

End Sub

Dobře, jsme hotovi s kódovací částí. Spustíme kód, abychom měli výsledek ve sloupci 5.

Takže jsme dostali výsledek.

Tento vzorec můžeme použít jako alternativu k funkci VLOOKUP.