VBA Application.Match - průvodce krok za krokem s příklady

Aplikace Excel VBA. Shoda

Jednou z nejlepších věcí na VBA je, že má svou vlastní funkci a také nám umožní přístup ke všem funkcím listu ve třídě „Funkce listu“. Funkci MATCH jste již museli použít jako funkci listu, ale nejde o funkci VBA, takže musíme přistupovat pod třídou funkcí listu. V tomto článku vám ukážeme, jak používat funkci MATCH ve VBA pomocí metody aplikace.

Rychlé shrnutí funkce MATCH

MATCH je vyhledávací funkce, která hledá pozici vyhledávací hodnoty ve zmíněném vyhledávacím poli. Podívejte se například na níže uvedený obrázek dat.

Ve výše uvedených datech máme měsíce od A2 do A6, a pokud chceme vědět, na kterém místě se měsíc „Mar“ vyskytuje, můžeme použít funkci MATCH.

Níže je uvedena syntaxe funkce MATCH.

MATCH (vyhledávací hodnota, vyhledávací pole, (typ shody))
  • Vyhledávací hodnota: Pro jakou hodnotu hledáme pozici ve vyhledávacím poli.
  • Pole vyhledávání: V jakém poli hledáme pozici hodnoty vyhledávání.
  • (Typ shody): K tomu můžeme poskytnout tři argumenty.
  1. 1 = méně než
  2. 0 = Přesná shoda
  3. -1 = Větší než

Většinu času používáme pouze „0 Přesná shoda“.

Jak používat funkci Application.Match ve VBA?

Příklad č. 1

Podívejte se na níže uvedená data v aplikaci Excel.

Z výše uvedených údajů musíme najít pozici měsíce „Mar“ v rozsahu buněk od A2 do A6. Protože potřebujeme výsledky v buňkách D2, začněte kód jako Range („D2“).

Abychom v buňce D2 dosáhli hodnoty, musíme použít funkci listu MATCH, abychom k tomu měli nejprve přístup, musíme získat přístup k objektu APPLICATION a poté k objektu WORKSHEET FUNCTION.

Zadejte tečku a zobrazí se seznam funkcí listu.

Ze seznamu vyberte možnost „Porovnat“.

Jedním z problémů ve VBA při používání funkcí listu je, že nevidíme přesnou syntaxi, jak vidíme u funkce listu. To je jeden z důvodů, proč jsme syntaxi vysvětlili pouze na začátku.

Prvním argumentem je tedy vyhledávací hodnota, tj. Pro jakou hodnotu hledáme místo. V tomto případě hledáme místo pro „Mar“, které je v buňce C2, takže zadejte odkaz na buňku.

Dalším argumentem je vyhledávací pole, tj. V jakém rozsahu hledáme pozici vyhledávací hodnoty pro tyto zásobovací buňky od A2 do A6.

Posledním argumentem bude přesná shoda, takže zadejte 0.

Kód:

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

Dobře, jsme hotoví se vzorcem.

Spusťte kód pomocí klávesy F5 a podívejte se, co získáme.

Takže máme výsledek jako 3, protože hodnota „Mar“ je na místě 3 třetího postavení v rozsahu A2 až A6.

Tato funkce MATCH může poskytnout pozici vyhledávací hodnoty. Funkce MATCH se však do značné míry používá s funkcí VLOOKUP k dodání indexového čísla sloupce na základě záhlaví sloupce.

Příklad č. 2

Nyní uvidíme, jak použít MATCH jako podpůrnou funkci pro funkci VLOOKUP.

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

Ve výše uvedené tabulce se díváme na tržby měsíce „února“ v roce 2018, takže musíme použít funkci VLOOKUP. VLOOKUP je také funkce listu, takže k tomu přistupujte tak, jak jsme přistupovali k funkci MATCH.

Vyhledávací hodnotou bude buňka G2, takže zadejte adresu buňky.

Kód:

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

Table Array will be from A2 to D6.

Code:

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

Now we need to provide from which column of the table array we are looking for the result, so this will be from the 3rd column. Instead of supplying the column number as 3, let’s use the MATCH function.

Code:

Sub Match_Example2() Range("H2").Value = Application.WorksheetFunction.VLookup(Range("G2").Value, Range("A2:D6"), Application.WorksheetFunction.Match(Range("H1").Value, Range("A1:D1"), 0), 0) End Sub

Funkce MATCH tedy poskytuje číslo sloupce z rozsahu A1 až D1 pro měsíc „únor“. Spustíme kód a uvidíme, jak automaticky získá čísla sloupců.

Tady máš, máme výsledek ze sloupce číslo 2 díky automatickému zadání čísla sloupce z funkce MATCH.

Věci k zapamatování

  • Funkce MATCH hledá pozici vyhledávací hodnoty ve vybrané tabulce polí.
  • Funkce MATCH se používá hlavně s funkcí VLOOKUP k automatickému zadávání indexového čísla sloupce pomocí záhlaví sloupce.
  • Funkce MATCH je k dispozici jako funkce listu ve VBA.

Zajímavé články...