Excel VBA Match Function

Funkcia porovnania VBA hľadá polohu alebo číslo riadku vyhľadávacej hodnoty v poli tabuľky, tj v hlavnej Excel tabuľke. Napríklad VLOOKUP, HLOOKUP, MATCH, INDEX atď. Jedná sa o vyhľadávacie funkcie, ktoré sú dôležitejšie ako ostatné. Bohužiaľ nemáme vo VBA k dispozícii rovnaké funkcie na uľahčenie práce. Tieto funkcie však môžeme použiť ako funkcie pracovných hárkov v skripte VBA, aby sme uľahčili náš život.

Dnes sa chystáme naučiť funkciu MATCH, ktorá môže byť použitá ako funkcia pracovného hárka pod VBA.

VBA Match má rovnaké použitie ako vzorec Match v Exceli. Táto funkcia v MS Excel VBA nájde zhodu v poli s odkazom na hodnotu vyhľadávania a vytlačí svoju pozíciu. Táto funkcia sa stáva užitočnou, keď potrebujete vyhodnotiť údaje na základe určitých hodnôt. Napríklad VBA MATCH je užitočný, ak máte údaje o mzdách zamestnancov a potrebujete zistiť číselnú pozíciu zamestnanca vo svojich údajoch, ktorý má mzdu nižšiu / väčšiu ako / sa rovná určitej hodnote. Je to skutočne užitočné pri analýze údajov a tiež jeden riadok kódu môže veci automatizovať.

Syntax funkcie Match v Excel VBA

VBA Match má nasledujúcu syntax:

Kde,

  • Arg1 - Lookup_value - hodnota, ktorú potrebujete vyhľadať v danom poli.
  • Arg2 - Lookup_array - pole riadkov a stĺpcov, ktoré obsahujú možnú hodnotu Lookup_value.
  • Arg3 - Match_type - Typ zhody, ktorý má hodnotu -1, 0 alebo 1.

Ak match_type = -1 znamená, že funkcia MATCH zistí najmenšiu hodnotu, ktorá je väčšia alebo sa rovná hodnote lookup_value. Aby sa to stalo, musí byť lookup_array zoradený zostupne.

Ak match_type = 0 znamená, že funkcia MATCH zistí hodnotu, ktorá je presne rovnaká ako hodnota lookup_value.

Ak match_type = +1 znamená to, že funkcia MATCH zistí najväčšiu hodnotu, ktorá je menšia alebo sa rovná hodnote lookup_value. Aby sa to stalo, musí byť lookup_array zoradený vzostupne. Predvolená hodnota pre typ zhody je +1.

Ako používať funkciu Excel VBA Match?

Naučíme sa, ako používať funkciu VBA Match Excel s niekoľkými príkladmi.

Túto šablónu VBA Match Excel si môžete stiahnuť tu - VBA Match Excel Template

Funkcia porovnania VBA - príklad č. 1

Predpokladajme, že máme nasledujúce údaje:

Potrebujeme zistiť, kto z tohto zoznamu má plat 30 000 EUR a pozíciu v Exceli.

Aj keď v tejto množine údajov to dokážeme nakonfigurovať manuálne, zamyslite sa, prosím, na širšom obrázku.

Ak chcete použiť funkciu MATCH vo VBA, postupujte podľa nasledujúcich krokov.

Krok 1: Definujte čiastkový postup zadaním názvu do makra.

kód:

 Čiastkový exmatch1 () Koniec Č 

Krok 2: Teraz chceme, aby bol náš výstup uložený v bunke E2. Preto začnite písať kód ako rozsah („E2“)

Toto definuje rozsah výstupu pre náš výsledok.

kód:

 Rozsah sub exmatch1 () ("E2"). Hodnota = End Sub 

Krok 3: Pomocou WorksheetFunction môžete používať funkcie VBA.

kód:

 Sub exmatch1 () Range ("E2"). Hodnota = WorksheetFunction End Sub 

Krok 4: WorksheetFunction má množstvo funkcií, ku ktorým je možné pristupovať a používať ich v rámci VBA. Po položke „WorksheetFunction“ vložte bodku (.) A potom budete mať prístup k funkciám. Z rozbaľovacieho zoznamu vyberte funkciu MATCH.

kód:

 Rozsah sub exmatch1 () ("E2"). Hodnota = WorksheetFunction.Match End Sub 

Krok 5: Teraz dajte argumenty funkcii MATCH. Ako Lookup_value. Naša Lookup_value je uložená v bunke D2, ako je to znázornené na nasledujúcom obrázku. Prístup k funkcii MATCH získate pomocou funkcie Range.

kód:

 Rozsah sub exmatch1 () ("E2"). Hodnota = WorksheetFunction.Match (Range ("D2"). Hodnota, End Sub 

Krok 6: Druhým argumentom je Lookup_array. Toto je rozsah tabuliek, v ktorom chcete zistiť polohu Lookup_value. V našom prípade je to (B1: B11). Poskytnite toto pole pomocou funkcie Range.

kód:

 Rozsah sub exmatch1 () ("E2"). Hodnota = pracovný listFunkcia.Match (rozsah ("D2"). Hodnota, rozsah ("B1: B11"), koncová sub 

Krok 7: Posledným argumentom pre vypracovanie tohto kódu je Match_type. Chceli sme mať presnú zhodu pre Lookup_value v danom rozsahu> Preto ako argument zhody dajte nulovú hodnotu (0).

kód:

 Rozsah sub exmatch1 () ("E2"). Hodnota = pracovný listFunkcia.Match (rozsah ("D2"). Hodnota, rozsah ("B1: B11"), 0) End Sub 

Krok 8: Spustite tento kód stlačením klávesy F5 alebo Run a pozrite si výstup.

V bunke E2 môžete vidieť číselnú hodnotu (6), ktorá ukazuje polohu hodnoty z bunky D2 v rozsahu B1: B11.

Príklad č. 2 - Funkcia porovnávania VBA so slučkami

Je ľahké, keď hľadáte iba jednu hodnotu v celom rozsahu. Čo ak však potrebujete skontrolovať polohu mnohých buniek? Bolo by tvrdé, keby osoba, ktorá sa pridáva, požiadala ho, aby pre každú bunku napísal samostatné kódy.

V takýchto prípadoch možno funkciu MATCH použiť so slučkou (najmä v našom prípade pre slučku). Ak chcete získať predstavu o tom, ako používame funkciu MATCH so slučkou, pozrite si nasledujúce kroky.

Krok 1: Definujte podprogram zadaním názvu pre makro.

kód:

 Príklad 2 () Koniec sub 

Krok 2: Definujte celé číslo, ktoré dokáže udržať hodnotu pre viacero buniek v slučke.

kód:

 Čiastkový príklad 2 () Dim i As Integer End Sub 

Krok 3: Použite pre slučku na integer na použitie rôznych vyhľadávacích hodnôt, ktorých polohu je možné uložiť do stĺpca E.

kód:

 Čiastkový príklad 2 () Dim i ako celé číslo pre i = 2 až 6 koncových čiastkových čísel 

Krok 4: Teraz použite rovnakú metódu, akú sme použili v príklade 1, namiesto Range použijeme funkciu buniek a použijeme dvojrozmerné pole (riadky a stĺpce) na rozdiel od prvého príkladu.

kód:

 Čiastkový príklad2 () Dim i ako celé číslo pre i = 2 až 6 buniek (i, 5). Hodnota = WorksheetFunction.Match (bunky (i, 4). Hodnota, rozsah ("B2: B11"), 0) Ďalej i Koniec náhradník 

Tu bunky (i, 5). Hodnota = ukladá hodnotu výsledných pozícií v každom riadku od 2 do 6 (riadok i) v stĺpci E (stĺpec číslo 5). V rámci funkcie Zhoda kontrolujú bunky (i, 4). Hodnoty pre každú hodnotu Lookup_value nachádzajúcu sa v riadkoch 2 až 6 v 4. stĺpci. Táto vyhľadávacia hodnota sa potom vyhľadávala v poli B2: B11 v excelovom hárku, kde sú prítomné údaje a relatívne polohy sa môžu ukladať v každom riadku stĺpca 5 (stĺpec E).

Krok 5: Spustite tento kód súčasným stlačením klávesu F5 alebo Run a pozrite si výsledok. Skoro vytiahne kúzlo v jednom kóde s jedným riadkom.

V tomto článku sme sa naučili, ako môžeme použiť funkciu MATCH v rámci VBA ako špeciálny prípad WorksheetFunction.

Čo je potrebné pamätať

  • Lookup_value môže byť číslo / text / logická hodnota alebo to môže byť odkaz na bunku na číslo, text alebo logickú hodnotu.
  • V predvolenom nastavení možno Match_type považovať za 1, ak sa vynechá / neuvádza.
  • Podobne ako funkcia Excel MATCH, VBA MATCH tiež uvádza relatívnu polohu Lookup_value pod Lookup_array a nie samotnú hodnotu.
  • Ak nie je nájdená zhoda, relatívna excelentná bunka bude vyplnená # N / A.
  • Ak sa funkcia MATCH používa na textových hodnotách, nedokáže rozlíšiť medzi malými a veľkými písmenami. Napríklad Lalit a Llit sú rovnaké. Rovnako aj LALIT a podľahnite.
  • Zástupné znaky môžete použiť, ak zistíte presnú zhodu (tj typ zhody je nula). Hviezdička s hviezdičkou (*) sa dá použiť na vyhľadanie série znakov. Zatiaľ čo otáznik (?) Možno použiť na nájdenie jedného znaku.

Odporúčané články

Toto je sprievodca funkciou VBA Match. Tu diskutujeme VBA Match a ako používať Excel VBA Match Function spolu s praktickými príkladmi a stiahnuteľnou šablónou Excel. Môžete si tiež prečítať naše ďalšie navrhované články -

  1. Kompletný sprievodca chybou VBA
  2. Ako používať formát čísla VBA?
  3. Funkcia VBA VLOOKUP s príkladmi
  4. Vytvorenie funkcie VBA v Exceli
  5. Funkcia Excel Excel (príklady)

Kategórie: