VBA Application.Match - lépésről lépésre útmutató példákkal

Excel VBA alkalmazás. Megfelel

Az egyik legjobb dolog a VBA-ban, hogy saját funkcióval rendelkezik, és lehetővé teszi számunkra, hogy hozzáférjünk a „Worksheet Function” osztály összes munkalapfüggvényéhez. Biztosan már használta a MATCH függvényt munkalapfüggvényként, de ez nem VBA függvény, ezért a munkalap függvényosztály alatt kell elérnünk. Ebben a cikkben megmutatjuk, hogyan kell használni a MATCH függvényt a VBA-ban az Application módszer segítségével.

A MATCH funkció gyors összefoglalása

A MATCH egy keresési funkció, amely a keresési érték pozícióját keresi az említett keresési tömbben. Nézze meg például az adatok alábbi képét.

A fenti adatokban A2-től A6-ig vannak hónapjaink, és ha tudni akarjuk, hogy melyik helyen következik be a „Mar” hónap, akkor használhatjuk a MATCH függvényt.

Az alábbiakban látható a MATCH függvény szintaxisa.

MATCH (Keresési érték, Keresési tömb, (Egyezés típusa))
  • Keresési érték: Melyik értékre keressük a keresési tömb helyzetét .
  • Keresési tömb: melyik tömbben keressük a keresési érték helyzetét .
  • (Egyezés típusa): Ehhez három érvet adhatunk meg.
  1. 1 = Kevesebb mint
  2. 0 = Pontos egyezés
  3. -1 = Nagyobb

Legtöbbször csak a „0 Pontos egyezést” használjuk.

Hogyan kell használni az Application.Match funkciót a VBA-ban?

1. példa

Nézze meg az alábbi adatokat az excelben.

A fenti adatok alapján meg kell találnunk a „Mar” hónap helyzetét az A2 és A6 közötti cellatartományban. Mivel a D2 cellákban azonnal eredményekre van szükségünk, azonnal indítsuk el a kódot Range („D2”) néven.

Ahhoz, hogy értéket érjünk el a D2 cellában, MATCH munkalapfüggvényt kell használnunk, ezért ehhez először hozzáférnünk kell az APPLICATION objektumhoz, majd a WORKSHEET FUNCTION objektumhoz.

Írja be a pontot a munkalapfüggvények listájának megtekintéséhez.

Válassza a „Match” lehetőséget a listából.

A VBA egyik problémája a munkalapfüggvények használata során az, hogy nem látjuk a pontos szintaxist, mint a munkalapfüggvény esetében. Ez az egyik oka annak, hogy a szintaxist csak az elején magyaráztuk.

Tehát az első érv a keresési érték, vagyis melyik értékre keressük a helyet. Ebben az esetben arra törekszünk, hogy megtaláljuk a „Mar” helyét, amely a C2 cellában található, ezért adja meg a cella referenciát.

A következő érv a lookup tömb, vagyis melyik tartományban keressük a keresési érték helyzetét, ennek az A2 és A6 közötti cellának.

Az utolsó argumentum pontos egyezés lesz, tehát adja meg a 0 értéket.

Kód:

Sub Match_Példa1 () Tartomány ("D2"). Érték = Application.WorksheetFunction.Match (Tartomány ("C2"). Érték, Tartomány ("A2: A6"), 0) Vége Sub

Ok, elkészültünk a képlettel.

Futtassa a kódot az F5 kulcson keresztül, és nézze meg, mit kapunk.

So we have got the result as 3 because the value “Mar” is in the place of 3rd position in the range A2 to A6.

This MATCH function can provide the position of the lookup value. However, MATCH function largely used with the VLOOKUP function to supply the column index number based on the column header.

Example #2

Now we will see how to use MATCH as a supporting function for the VLOOKUP function.

Look at the below data.

In the above table, we are looking at the year 2018 “Feb” month sales, so we need to use the VLOOKUP function. VLOOKUP is also a worksheet function, so access this like how we have accessed the MATCH function.

Lookup Value will be G2 cell, so supply cell address.

Code:

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

Tehát a MATCH függvény megadja az oszlop számát az A1 és D1 tartományok között a „február” hónapra. Futtassuk a kódot, és nézzük meg, hogyan kapja meg automatikusan az oszlopok számát.

Itt van a 2. oszlop eredménye a MATCH függvény automatikus oszlopszolgáltatásának köszönhetően.

Dolgok, amikre emlékezni kell

  • A MATCH függvény megkeresi a keresési érték pozícióját a kiválasztott tömbtáblában.
  • A MATCH funkciót főleg a VLOOKUP funkcióval együtt használják, hogy az oszlopindex számát az oszlopfejléc segítségével automatikusan megadják.
  • A MATCH függvény munkalap funkcióként érhető el a VBA-ban.

érdekes cikkek...