Excel VBA Match Function

VBA Match Function išče pozicijo ali številko vrstice vrednosti iskanja v matrični tabeli, torej v glavni tabeli excel. Na primer, VLOOKUP, HLOOKUP, MATCH, INDEX itd. To so funkcije iskanja, ki so pomembnejše od drugih. Na žalost v VBA nimamo enakih funkcij za olajšanje stvari. Vendar lahko te funkcije uporabimo kot funkcije delovnega lista v skriptu VBA, da si olajšamo življenje.

Danes se bomo naučili funkcijo MATCH, ki jo lahko uporabljamo kot funkcijo delovnega lista v okviru VBA.

VBA Match ima enako uporabo kot formula Match v Excelu. Ta funkcija v MS Excel VBA najde ujemanje v matriki glede na vrednost iskanja in natisne njen položaj. Ta funkcija postane uporabna, ko morate oceniti podatke na podlagi določenih vrednosti. Na primer, VBA MATCH je koristen, če imate podatke o plačah zaposlenih in morate v svojih podatkih ugotoviti številčni položaj zaposlenega, ki ima plačo nižjo / večjo od / enako določeni vrednosti. Pri analizi podatkov je zelo koristno in tudi ena vrstica kode vam lahko avtomatizira stvari.

Sintaksa funkcije ujemanja v Excelu VBA

VBA Match ima naslednjo skladnjo:

Kje,

  • Arg1 - Lookup_value - vrednost, ki jo potrebujete za iskanje v določenem nizu.
  • Arg2 - Lookup_array - matrika vrstic in stolpcev, ki vsebujejo možno Lookup_value.
  • Arg3 - Match_type - Vrsta ujemanja, ki prevzame vrednost -1, 0 ali 1.

Če match_type = -1 pomeni, da bo funkcija MATCH ugotovila najmanjšo vrednost, ki je večja ali enaka iskalni vrednosti. Da se to zgodi, mora biti lookup_array razvrščen po padajočem vrstnem redu.

Če match_type = 0 pomeni, da bo funkcija MATCH ugotovila vrednost, ki je popolnoma enaka vrednosti lookup_value.

Če match_type = +1 pomeni, da bo funkcija MATCH ugotovila največjo vrednost, ki je manjša ali enaka vrednosti lookup_value. Da se to zgodi, mora biti lookup_array razvrščen po naraščajočem vrstnem redu. Privzeta vrednost za vrsto ujemanja je +1.

Kako uporabljati Excel VBA Match funkcijo?

Spoznali bomo uporabo funkcije VBA Match Excel z nekaj primeri.

Predlogo VBA Match Excel lahko prenesete tukaj - Predlogo VBA Match Excel

Funkcija VBA Match - Primer 1

Recimo, da imamo podatke, kot so prikazani spodaj:

Ugotoviti moramo, kdo s tega seznama ima plačo 30.000 €, skupaj s položajem v Excelu.

Čeprav lahko v tem naboru podatkov to nastavimo ročno, razmislite o širši sliki, kaj pa, če imate na milijone vrstic in stolpcev?

Za uporabo funkcije MATCH v VBA sledite spodnjim korakom.

1. korak: Določite podproces tako, da makru dodate ime.

Koda:

 Sub exmatch1 () Konec Sub 

2. korak: Zdaj želimo, da se naš izhod shrani v celico E2. Zato začnite pisati kodo kot obseg ("E2")

To določa izhodno območje za naš rezultat.

Koda:

 Sub exmatch1 () Obseg ("E2") Vrednost = Končajte Sub 

Korak 3: Uporabite WorksheetFunction, da lahko uporabljate funkcije VBA.

Koda:

 Sub exmatch1 () Obseg ("E2") Vrednost = WorksheetFunction End Sub 

4. korak: WorksheetFunction ima različne funkcije, do katerih lahko dostopate in uporabljate pod VBA. Po "WorksheetFunction" vstavite piko (.) In nato boste lahko dostopali do funkcij. Na spustnem seznamu izberite funkcijo MATCH.

Koda:

 Sub exmatch1 () Obseg ("E2") Vrednost = WorksheetFunction.Match End Sub 

5. korak: Zdaj podajte argumente funkciji MATCH. Kot Lookup_value. Naša vrednost Lookup_value je shranjena v celici D2, kot je prikazano na spodnjem posnetku zaslona. Do nje lahko dostopate prek funkcije MATCH s funkcijo Range.

Koda:

 Sub exmatch1 () Obseg ("E2"). Vrednost = WorksheetFunction.Match (Obseg ("D2"). Vrednost, konec Pod 

6. korak: Drugi argument je Lookup_array. To je obseg tabel, znotraj katerega želite izvedeti položaj Lookup_value. V našem primeru je (B1: B11). Vnesite ta niz s funkcijo Range.

Koda:

 Sub exmatch1 () Obseg ("E2"). Vrednost = WorksheetFunction.Match (obseg ("D2"). Vrednost, obseg ("B1: B11"), konec pod 

7. korak: Zadnji argument za to kodo je Match_type. Želeli smo imeti natančno ujemanje za Lookup_value v danem območju> Zato kot argument za ujemanje navedite Zero (0).

Koda:

 Sub exmatch1 () Obseg ("E2") Vrednost = WorksheetFunction.Match (obseg ("D2"). Vrednost, obseg ("B1: B11"), 0) Končni pod 

8. korak: Zaženite to kodo s pritiskom na tipko F5 ali Run in poglejte izhod.

V celici E2 lahko vidite številčno vrednost (6), ki prikazuje položaj vrednosti iz celice D2 v območju B1: B11.

Primer # 2 - Funkcija ujemanja VBA z zankami

Če želite iskati samo eno vrednost v celotnem obsegu, je enostavno. Toda, kaj, če morate preveriti položaj številnih celic? Oseba, ki jo dodaja, bi bila groba, da bi jo prosila, naj napiše ločene kode za vsako celico.

V takih primerih se lahko funkcija MATCH uporablja z zanko (še posebej Za zanko v našem primeru). Oglejte si naslednje korake, da dobite predstavo o tem, kako uporabljamo funkcijo MATCH z zanko.

1. korak: Določite podproces z dodelitvijo imena makrou.

Koda:

 Sub Primer2 () Konec Sub 

2. korak: Določite celo število, ki lahko vsebuje vrednost za več celic v zanki.

Koda:

 Sub Primer2 () Dim i Kot celoten konec Pod 

3. korak: Za zanko v celotnem številu uporabite različne vrednosti iskanja, katerih položaj je mogoče shraniti v stolpec E.

Koda:

 Pod Primer2 () Dim i kot celo število za i = 2 do 6 konec pod 

4. korak: Zdaj uporabite isti postopek, kot smo ga uporabili v primeru 1, le namesto Range bomo uporabili funkcijo Celice in bomo uporabili dvodimenzionalni niz (Vrstice in stolpci) v nasprotju s prvim primerom.

Koda:

 Podprimer2 () Dim i kot celo število za i = 2 do 6 celic (i, 5) .Value = WorkheetFunction.Match (Celice (i, 4) .Value, obseg ("B2: B11"), 0) Naslednji i konec Pod 

Tu so celice (i, 5) .Value = shrani vrednost dobljenih pozicij v vsaki vrstici od 2 do 6 (vrstica i) v stolpcu E (stolpec številka 5). V funkciji Ujemanje celice (i, 4) .Values ​​preveri za vsako vrednost Lookup_value, ki je prisotna v vrsticah 2 do 6 v 4. stolpcu. Ta iskalna vrednost je nato iskala v Array B2: B11 v Excelovem listu, kjer so podatki in relativni položaji so lahko shranjeni v vsaki vrstici stolpca 5 (stolpec E).

5. korak: Zaženite to kodo s pritiskom na tipko F5 ali gumb Run in si oglejte rezultat. Skoraj skoraj bo izvlekel čarovnijo v kosu kode z eno vrstico.

V tem članku smo izvedeli, kako lahko uporabimo funkcijo MATCH pod VBA kot poseben primer WorksheetFunction.

Stvari, ki jih je treba zapomniti

  • Lookup_value je lahko številka / besedilo / logična vrednost ali lahko sklic na celico na številko, besedilo ali logično vrednost.
  • Match_type se lahko privzeto šteje za 1, če izpustimo / ne omenjamo.
  • Tako kot funkcija Excel MATCH, tudi VBA MATCH poda relativni položaj Lookup_value pod Lookup_array in ne same vrednosti.
  • Če ujemanja ni mogoče najti, bo relativna celica Excela napolnjena z # N / A.
  • Če je funkcija MATCH uporabljena za besedilne vrednosti, ne more razlikovati med malimi in velikimi črkami. Na primer, Lalit in lalit sta enaka. Torej naredite LALIT in lalit.
  • Nadomestni znaki se lahko uporabljajo, če ugotovite natančno ujemanje (tj. Vrsta ujemanja je nič). Zvezdica znakov z nadomestnimi znaki (*) lahko uporabite, če želite izvedeti vrsto znakov. Medtem ko lahko vprašalnik (?) Uporabite za iskanje posameznega znaka.

Priporočeni članki

To je priročnik za VBA Match Function. Tukaj razpravljamo o VBA Match in kako uporabljati Excel VBA Match Function, skupaj s praktičnimi primeri in naloženo predlogo excela. Ogledate si lahko tudi druge naše predlagane članke -

  1. Popoln vodnik za napako VBA
  2. Kako uporabljati format številke VBA?
  3. VBA VLOOKUP Funkcija s primeri
  4. Ustvarjanje funkcije VBA v Excelu
  5. Funkcija ujemanja v Excelu (primeri)

Kategorija: