VBA Application.Match - Podrobný sprievodca s príkladmi

Aplikácia Excel VBA. Zhoda

Jednou z najlepších vecí na VBA je, že má svoju vlastnú funkciu a tiež nám umožní prístup ku všetkým funkciám pracovného hárka v triede „Funkcia pracovného hárka“. Určite ste už použili funkciu MATCH ako funkciu listu, ale nejde o funkciu VBA, takže musíme pristupovať pod triedou funkcií listu. V tomto článku si ukážeme, ako používať funkciu MATCH vo VBA metódou Application.

Rýchle zhrnutie funkcie MATCH

MATCH je vyhľadávacia funkcia, ktorá vyhľadáva pozíciu vyhľadávacej hodnoty v uvedenom vyhľadávacom poli. Napríklad si pozrite nasledujúci obrázok s údajmi.

Vo vyššie uvedených údajoch máme mesiace od A2 do A6, a ak chceme vedieť, na ktorom mieste sa vyskytuje mesiac „Mar“, môžeme použiť funkciu MATCH.

Nižšie je uvedená syntax funkcie MATCH.

ZÁPAS (Vyhľadávacia hodnota, Vyhľadávacie pole, (Typ zhody))
  • Vyhľadávacia hodnota: Pre ktorú hodnotu hľadáme pozíciu vo vyhľadávacom poli.
  • Vyhľadávacie pole: V ktorom poli hľadáme pozíciu vyhľadávacej hodnoty.
  • (Typ zhody): Na tento účel môžeme uviesť tri argumenty.
  1. 1 = menej ako
  2. 0 = presná zhoda
  3. -1 = väčšie ako

Väčšinu času používame iba „0 Presná zhoda“.

Ako používať funkciu Application.Match vo VBA?

Príklad č

Pozrite sa na nižšie uvedené údaje v programe Excel.

Z vyššie uvedených údajov musíme zistiť pozíciu mesiaca „Mar“ v rozmedzí buniek od A2 do A6. Pretože potrebujeme výsledky v bunkách D2, začnite kód ako Range („D2“).

Aby sme dosiahli hodnotu v bunke D2, musíme použiť funkciu tabuľky MATCH, aby sme k nej najskôr dostali prístup k objektu APPLICATION a potom k objektu WORKSHEET FUNCTION.

Zadaním bodky zobrazíte zoznam funkcií pracovného hárka.

V zozname vyberte možnosť „Zhoda“.

Jedným z problémov vo VBA pri používaní funkcií pracovných hárkov je, že nevidíme presnú syntax, ako to vidíme pri funkciách pracovných hárkov. To je jeden z dôvodov, prečo sme si vysvetlili syntax iba na začiatku.

Prvým argumentom je teda vyhľadávacia hodnota, tj pre ktorú hodnotu hľadáme miesto. V tomto prípade hľadáme miesto pre „Mar“, ktoré je v bunke C2, takže zadajte odkaz na bunku.

Ďalším argumentom je vyhľadávacie pole, tj. V akom rozsahu hľadáme pozíciu vyhľadávacej hodnoty pre tieto zásobovacie bunky od A2 po A6.

Posledný argument bude presná zhoda, takže zadajte 0.

Kód:

Sub Match_Example1 () Range ("D2"). Value = Application.WorksheetFunction.Match (Range ("C2"). Value, Range ("A2: A6"), 0) End Sub

Dobre, vzorec sme skončili.

Spustite kód pomocou klávesu F5 a uvidíte, čo dostaneme.

Takže máme výsledok ako 3, pretože hodnota „Mar“ je na mieste 3. pozície v rozmedzí A2 až A6.

Táto funkcia MATCH môže poskytnúť pozíciu vyhľadávanej hodnoty. Funkcia MATCH sa však vo veľkej miere používa s funkciou VLOOKUP na dodanie indexového čísla stĺpca na základe hlavičky stĺpca.

Príklad č

Teraz uvidíme, ako použiť MATCH ako podpornú funkciu pre funkciu VLOOKUP.

Pozrite sa na nižšie uvedené údaje.

V tabuľke vyššie sa zaoberáme predajom v mesiaci „Február“ v roku 2018, takže musíme použiť funkciu VLOOKUP. VLOOKUP je tiež funkcia pracovného hárka, takže k tomu pristupujte tak, ako sme získali prístup k funkcii MATCH.

Vyhľadávacou hodnotou bude bunka G2, takže zadajte adresu bunky.

Kód:

Sub Match_Example2 () Range ("H2"). Value = Application.WorksheetFunction.VLookup (Range ("G2"). Value, End Sub

Pole tabuľky bude od A2 do D6.

Kód:

Sub Match_Example2 () Range ("H2"). Value = Application.WorksheetFunction.VLookup (Range ("G2"). Value, Range ("A2: D6"), End Sub

Teraz musíme uviesť, z ktorého stĺpca poľa tabuľky hľadáme výsledok, takže bude z tretieho stĺpca. Namiesto zadania čísla stĺpca ako 3, použijeme funkciu MATCH.

Kód:

Sub Match_Example2 () Range ("H2"). Value = Application.WorksheetFunction.VLookup (Range ("G2"). Value, Range ("A2: D6"), Application.WorksheetFunction.Match (Range ("H1"). Hodnota, rozsah („A1: D1“), 0), 0) Koncový pod

Funkcia MATCH teda poskytuje číslo stĺpca z rozsahu A1 až D1 pre mesiac „Feb“. Spustíme kód a uvidíme, ako automaticky získa čísla stĺpcov.

A máme to, máme výsledok zo stĺpca číslo 2 vďaka automatickému dodaniu čísla stĺpca z funkcie MATCH.

Na čo treba pamätať

  • Funkcia MATCH vyhľadáva pozíciu vyhľadávacej hodnoty vo vybranej tabuľke poľa.
  • Funkcia MATCH sa používa hlavne s funkciou VLOOKUP na automatické zadanie indexového čísla stĺpca pomocou hlavičky stĺpca.
  • Funkcia MATCH je k dispozícii ako funkcia listu vo VBA.

Zaujímavé články...