Excel VBA Match Function

VBA Match Function hledá polohu nebo číslo řádku hodnoty vyhledávání v poli tabulky, tj. V hlavní Excel tabulce. Například VLOOKUP, HLOOKUP, MATCH, INDEX atd. Jedná se o vyhledávací funkce, které jsou důležitější než ostatní. Bohužel nemáme ve VBA k dispozici stejné funkce, které by usnadnily práci. Tyto funkce však můžeme použít jako funkce pracovních listů ve skriptu VBA, abychom usnadnili náš život.

Dnes se chystáme naučit funkci MATCH, kterou lze použít jako funkci listu v rámci VBA.

VBA Match má stejné použití jako vzorec Match v Excelu. Tato funkce v MS Excel VBA vyhledá shodu v poli s odkazem na hodnotu vyhledávání a vytiskne její polohu. Tato funkce se stane užitečnou, pokud potřebujete vyhodnotit data na základě určitých hodnot. Například VBA MATCH je užitečná, pokud máte údaje o platech zaměstnanců a potřebujete zjistit číselnou pozici zaměstnance v datech, kteří mají plat menší než / vyšší než / se rovná určité hodnotě. Je to opravdu užitečné při analýze dat a také jeden řádek kódu může automatizovat věci za vás.

Syntaxe funkce Match v Excelu VBA

VBA Match má následující syntaxi:

Kde,

  • Arg1 - Lookup_value - Hodnota, kterou potřebujete vyhledat v daném poli.
  • Arg2 - Lookup_array - pole řádků a sloupců, které obsahují možnou hodnotu Lookup_value.
  • Arg3 - Match_type - Typ shody, který nabývá hodnoty -1, 0 nebo 1.

Pokud match_type = -1 znamená, že funkce MATCH najde nejmenší hodnotu, která je větší nebo se rovná hodnotě lookup_value. Aby k tomu došlo, musí být lookup_array seřazeno sestupně.

Pokud match_type = 0 znamená, že funkce MATCH zjistí hodnotu, která je přesně stejná jako hodnota lookup_value.

Pokud match_type = +1 znamená to, že funkce MATCH najde největší hodnotu, která je menší nebo se rovná hodnotě lookup_value. Aby k tomu došlo, musí být lookup_array seřazeno vzestupně. Výchozí hodnota pro typ shody je +1.

Jak používat Excel VBA Match Function?

Naučíme se používat funkci VBA Match Excel s několika příklady.

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

VBA Match Function - Příklad # 1

Předpokládejme, že máme níže uvedená data:

Musíme zjistit, kdo z tohoto seznamu má plat 30 000 EUR a pozici v Excelu.

I když v této datové sadě to můžeme nakonfigurovat ručně, přemýšlejte prosím na širším obrázku, co když máte miliony řádků a sloupců?

Chcete-li použít funkci MATCH ve VBA, postupujte podle následujících kroků.

Krok 1: Definujte dílčí postup zadáním názvu makru.

Kód:

 Sub exmatch1 () End Sub 

Krok 2: Nyní chceme, aby byl náš výstup uložen v buňce E2. Proto začněte psát kód jako Range („E2“)

Toto definuje výstupní rozsah pro náš výsledek.

Kód:

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

Krok 3: Pomocí WorksheetFunction můžete používat funkce VBA.

Kód:

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

Krok 4: WorksheetFunction má řadu funkcí, ke kterým lze přistupovat a používat je pod VBA. Po „WorksheetFunction“ vložte tečku (.) A poté budete mít přístup k funkcím. Z rozevíracího seznamu vyberte funkci MATCH.

Kód:

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

Krok 5: Nyní dejte argumenty funkci MATCH. Jako Lookup_value. Naše Lookup_value je uložena v buňce D2, jak je ukázáno na níže uvedeném snímku obrazovky. K této funkci se dostanete pomocí funkce MATCH pomocí funkce Range.

Kód:

 Sub exmatch1 () Range ("E2"). Value = WorksheetFunction.Match (Range ("D2"). Value, End Sub 

Krok 6: Druhým argumentem je Lookup_array. Toto je rozsah tabulek, ve kterém chcete zjistit polohu Lookup_value. V našem případě je to (B1: B11). Poskytněte toto pole pomocí funkce Range.

Kód:

 Sub exmatch1 () Range ("E2"). Value = WorksheetFunction.Match (Range ("D2"). Value, Range ("B1: B11"), End Sub 

Krok 7: Posledním argumentem pro tento kód je Match_type. Chtěli jsme mít přesnou shodu pro Lookup_value v daném rozsahu> Proto jako argument shody dejte nulu (0).

Kód:

 Sub exmatch1 () Range ("E2"). Value = WorksheetFunction.Match (Range ("D2"). Value, Range ("B1: B11"), 0) End Sub 

Krok 8: Spusťte tento kód stisknutím klávesy F5 nebo Run a podívejte se na výstup.

V buňce E2 je vidět číselná hodnota (6), která ukazuje polohu hodnoty z buňky D2 v rozsahu B1: B11.

Příklad # 2 - VBA Match Function with Loops

Je snadné, když budete hledat pouze jednu hodnotu v celém rozsahu. Ale co když potřebujete zkontrolovat polohu řady buněk? Bylo by tvrdé, kdyby osoba, která se přidává, požádala ho, aby pro každou buňku napsal samostatné kódy.

V takových případech lze funkci MATCH použít se smyčkou (zejména v našem případě pro smyčku). Následující kroky vám pomohou získat představu o tom, jak používáme funkci MATCH se smyčkou.

Krok 1: Definujte podproces zadáním názvu makru.

Kód:

 Dílčí příklad2 () Konec Díl 

Krok 2: Definujte celé číslo, které dokáže uchovat hodnotu pro více buněk ve smyčce.

Kód:

 Dílčí příklad2 () Dim i As Integer End Sub 

Krok 3: Použít pro smyčku na integeru k použití různých hodnot vyhledávání, jejichž polohu lze uložit do sloupce E.

Kód:

 Dílčí příklad2 () Dim i jako celé číslo pro i = 2 až 6 End Sub 

Krok 4: Nyní použijte stejnou metodu, jakou jsme použili v příkladu 1, namísto Range použijeme funkci Cells a použijeme dvourozměrné pole (řádky a sloupce) na rozdíl od prvního příkladu.

Kód:

 Dílčí příklad2 () Dim i jako celé číslo pro i = 2 až 6 buněk (i, 5). Hodnota = WorksheetFunction.Match (Buňky (i, 4). Hodnota, Rozsah ("B2: B11"), 0) Další i Konec Sub 

Zde buňky (i, 5) .Value = ukládá hodnotu výsledných pozic v každém řádku od 2 do 6 (řádek i) ve sloupci E (číslo sloupce 5). V rámci funkce Shoda buňky (i, 4). Hodnoty hodnot pro každou hodnotu Lookup_value přítomnou v řádcích 2 až 6 ve 4. sloupci. Tato vyhledávací hodnota pak prohledala pole Array B2: B11 v archu Excel, kde jsou data a relativní pozice mohou být uloženy v každém řádku sloupce 5 (sloupec E).

Krok 5: Spusťte tento kód současným stisknutím klávesy F5 nebo Run a podívejte se na výsledek. Téměř vytáhne kouzlo v kusu kódu s jedním řádkem.

V tomto článku jsme se dozvěděli, jak můžeme použít funkci MATCH v rámci VBA jako zvláštní případ WorksheetFunction.

Co si pamatovat

  • Lookup_value může být číslo / text / logická hodnota nebo to může být odkaz na buňku na číslo, text nebo logickou hodnotu.
  • Ve výchozím nastavení lze Match_type považovat za 1, pokud je vynecháno / není uvedeno.
  • Podobně jako funkce Excel MATCH, VBA MATCH také poskytuje relativní polohu Lookup_value pod Lookup_array a nikoli samotnou hodnotu.
  • Pokud není nalezena shoda, bude relativní excelová buňka vyplněna # N / A.
  • Pokud je funkce MATCH použita na textových hodnotách, není schopna rozlišovat mezi malými a velkými písmeny. Například Lalit a lalit jsou stejné. Stejně tak LALIT a opláchněte.
  • Zástupné znaky lze použít, pokud zjišťujete přesnou shodu (tj. Typ shody je nula). Hvězdná znaková hvězdička (*) lze použít k nalezení řady znaků. Zatímco otazník (?) Lze použít k nalezení jediného znaku.

Doporučené články

Toto je průvodce funkcí VBA Match. Zde diskutujeme VBA Match a jak používat Excel VBA Match Function spolu s praktickými příklady a stahovatelnou Excel šablonou. Můžete si také prohlédnout naše další doporučené články -

  1. Kompletní průvodce VBA při chybě
  2. Jak používat formát čísla VBA?
  3. Funkce VBA VLOOKUP s příklady
  4. Vytvoření funkce VBA v Excelu
  5. Excel Match Function (Příklady)

Kategorie: