Excel VBA mérkőzés funkció

A VBA Match Function megkeresi a keresési érték pozícióját vagy sorszámát a táblázatban, azaz a fő excel táblában. Például: VLOOKUP, HLOOKUP, MATCH, INDEX stb. Ezek a keresési funkciók, amelyek sokkal fontosabbak, mint mások. Sajnos sajnos nincs ugyanaz a funkció a VBA-ban, amely megkönnyíti a dolgokat. Ezeket a funkciókat azonban munkalap-funkciókként használhatjuk a VBA szkript alatt, hogy megkönnyítsük az életünket.

Ma megtanuljuk a MATCH függvényt, amelyet munkalapként lehet használni a VBA alatt.

A VBA-mérkőzés ugyanazt a felhasználást használja, mint az Excel-ben található Match formula. Az MS Excel VBA ez a funkció egy tömbön belül talál egyezést a keresési értékre hivatkozva, és kinyomtatja annak helyzetét. Ez a funkció akkor lesz hasznos, ha az adatokat bizonyos értékek alapján kell kiértékelnie. Például a VBA MATCH akkor hasznos, ha rendelkeznek a munkavállalók fizetési adataival, és ki kell derítenie az adataiban alkalmazott alkalmazott numerikus pozícióját, akinek a fizetése egy adott értéknél alacsonyabb / annál nagyobb / azzal megegyező. Nagyon hasznos az adatok elemzésében, és egy kódsor is automatizálja a dolgokat az Ön számára.

Az egyezési függvény szintaxisa az Excel VBA-ban

A VBA Match szintaxisa a következő:

Hol,

  • Arg1 - Lookup_value - az az érték, amelyre meg kell keresnie egy adott tömbben.
  • Arg2 - Lookup_array - sorok és oszlopok tömbje, amely tartalmazza a lehetséges Lookup_value értéket.
  • Arg3 - Match_type - A mérkőzés típusa, amelynek értéke -1, 0 vagy 1.

Ha a match_type = -1 azt jelenti, hogy a MATCH függvény megtalálja a legkisebb értéket, amely nagyobb vagy egyenlő a lookup_value értékkel. Ahhoz, hogy ez megtörténjen, a lookup_array-t csökkenő sorrendbe kell rendezni.

Ha a match_type = 0 azt jelenti, hogy a MATCH függvény pontosan megegyezik az lookup_value értékével.

Ha match_type = +1, akkor azt jelenti, hogy a MATCH függvény megkapja a legnagyobb értéket, amely kisebb vagy egyenlő a lookup_value értékkel. Ahhoz, hogy ez megtörténjen, a lookup_array-t növekvő sorrendbe kell rendezni. Az egyezési típus alapértelmezett értéke +1.

Hogyan kell használni az Excel VBA Match funkciót?

Néhány példával megtanuljuk a VBA Match Excel funkció használatát.

Itt letöltheti ezt a VBA Match Excel sablont - VBA Match Excel sablon

VBA mérkőzés funkció - 1. példa

Tegyük fel, hogy rendelkezünk az alább látható adatokkal:

Meg kell találnunk, akik ebből a listából 30 000 eurót fizetnek, az Excel pozíciójával együtt.

Bár ebben az adatkészletben manuálisan konfigurálhatjuk ezt, kérjük, gondoljon egy szélesebb képet, mi van, ha millió vagy sor és oszlop van?

Kövesse az alábbi lépéseket a MATCH funkció használatához a VBA-ban.

1. lépés: Adjon meg egy alfolyamatot úgy, hogy nevet ad a makrónak.

Kód:

 Sub exmatch1 () Vége Sub 

2. lépés: Most azt akarjuk, hogy a kimenetet az E2 cellában tároljuk. Ezért kezdje el írni a kódot Range („E2”) formátumban

Ez határozza meg eredményünk kimeneti tartományát.

Kód:

 Sub exmatch1 () Range ("E2") Érték = Sub vége 

3. lépés: Használja a WorksheetFunction funkciót a VBA funkciók használatához.

Kód:

 Sub exmatch1 () Range ("E2") Érték = WorksheetFunction End Sub 

4. lépés: A WorksheetFunction számos olyan funkcióval rendelkezik, amelyekhez hozzáférhet és felhasználható a VBA alatt. A „WorksheetFunction” után tegyen egy pontot (.), És akkor hozzáférhet a funkciókhoz. Válassza a MATCH funkciót a legördülő listából.

Kód:

 Sub exmatch1 () Range ("E2") Érték = WorksheetFunction.Match End Sub 

5. lépés: Most adja meg az argumentumokat a MATCH függvényhez. Mint a Keresési_érték. A Lookup_value értékünket a D2 cellában tároljuk, az alábbi képernyőképen látható módon. Hozzáférhet a MATCH funkcióhoz a Range funkcióval.

Kód:

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

6. lépés: A második argumentum a Lookup_array. Ez az a táblázattartomány, amelyen belül meg szeretné tudni a Keresési_hely értékét. A mi esetünkben ez (B1: B11). Adja meg ezt a tömböt a Range funkcióval.

Kód:

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

7. lépés: Ennek a kódnak az utolsó érve a Match_type. Szeretnénk, ha a Lookup_value pontos egyezés lenne az adott tartományban> Ezért adjuk meg a Zero (0) értéket megfelelő argumentumként.

Kód:

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

8. lépés: Futtassa ezt a kódot az F5 vagy a Futtatás gomb megnyomásával, és nézze meg a kimenetet.

Az E2 cellában látható egy numerikus érték (6), amely megmutatja az érték helyzetét a D2 cellától a B1: B11 tartományig.

2. példa - VBA mérkőzés funkció hurkokkal

Könnyű, ha csak egy értéket kell keresnie a teljes tartományban. De mi van, ha ellenőriznie kell a cellák helyzetét? Kemény lenne az a személy, aki hozzáteszi, hogy megkérje őt, hogy írjon különálló kódokat az egyes cellákhoz.

Ilyen esetekben a MATCH funkció használható a hurokkal (különösen a mi esetünkben a hurokra). A következő lépésekkel képet kaphat arról, hogyan használjuk a MATCH függvényt a hurokkal.

1. lépés: Adjon meg egy alfolyamatot úgy, hogy nevet ad a makrónak.

Kód:

 2. alpélda () Vége albekezdés 

2. lépés: Adjon meg egy egész számot, amely képes a hurok több cellájának értékére.

Kód:

 2. alpélda () Dim i egész számként Vége Sub 

3. lépés: Az egész szám ciklusához használja a különféle keresési értékeket, amelyek pozíciója tárolható az E oszlopban.

Kód:

 2. alpélda () Dim i egész számként, ha i = 2–6 

4. lépés: Most ugyanazt a módszert használjuk, mint amelyet az 1. példában használtunk, csak a Range helyett a Cells függvényt fogjuk használni, és az első példával szemben kétdimenziós tömböt (Sorok és oszlopok) fogunk használni.

Kód:

 2. alpélda () Dim i egész számként i = 2-től 6-ig (i, 5). Érték = WorksheetFunction.Match (cella (i, 4). Érték, tartomány ("B2: B11"), 0) Következő i Vége Alatti 

Itt az (i, 5) cellák. Érték = az egyes sorokban a kapott pozíciók értékét 2-től 6-ig (i sor) tárolja az E oszlopban (5. oszlop). Az Egyeztetés funkció alatt a Cells (i, 4). Értékek ellenőrzése minden, a 4. oszlopban található 2–6. Sorban lévő Lookup_érték értékhez. Ezt a keresési értéket azután az Excel lap B2: B11 tömbjében keresse meg, ahol adatok vannak, és a relatív pozíciók tárolhatók az 5. oszlop minden sorában (E oszlop).

5. lépés: Futtassa ezt a kódot az F5 vagy a Futtatás gomb egyidejű megnyomásával, és nézze meg az eredményt. Majdnem egy vonallal kibomlik a varázslat egy kóddarabban.

Ebben a cikkben megtanultuk, hogyan használhatjuk a MATCH függvényt a VBA alatt, mint a WorksheetFunction speciális esetét.

Dolgok, amikre emlékezni kell

  • A keresési_érték lehet szám / szöveg / logikai érték, vagy lehet cellára történő hivatkozás egy számra, szövegre vagy logikai értékre.
  • Alapértelmezés szerint a Match_type 1-nek tekinthető, ha kihagyják / nem említik.
  • Az Excel MATCH függvényhez hasonlóan a VBA MATCH a Lookup_array alatt egy Lookup_value relatív pozícióját is megadja, nem pedig magát az értéket.
  • Ha nem található egyezés, a relatív excel cellát # N / A jelöljük.
  • Ha a MATCH funkciót használja a Szöveg értékeknél, akkor nem képes megkülönböztetni a kis- és nagybetűket. Például a Lalit és a Lalit ugyanaz. Tehát ne a LALIT és a lalit.
  • A helyettesítő karakterek akkor használhatók, ha a pontos egyezést megtudja (azaz az egyezési típus nulla). A helyettesítő karakter csillag (*) karaktersorozatok megismerésére használható. Míg egy kérdőjel (?) Használható egy karakter megismerésére.

Ajánlott cikkek

Ez egy útmutató a VBA mérkőzés funkcióhoz. Itt tárgyaljuk a VBA Match és az Excel VBA Match Function használatának gyakorlati példáit és letölthető Excel sablonját. Megnézheti más javasolt cikkeinket -

  1. Teljes útmutató a hibás VBA-hoz
  2. Hogyan kell használni a VBA számformátumot?
  3. VBA VLOOKUP függvény példákkal
  4. VBA függvény létrehozása Excelben
  5. Excel illesztési funkció (példák)

Kategória: