Exceli VBA mängufunktsioon

VBA mängufunktsioon otsib tabeli massiivis, st peamises exceli tabelis, otsingu väärtuse positsiooni või rea numbri. Näiteks VLOOKUP, HLOOKUP, MATCH, INDEX jne. Need on otsingufunktsioonid, mis on teistest olulisemad. Kahjuks pole meil VBA-s samad funktsioonid, mis lihtsustaksid asju. Kuid oma elu lihtsustamiseks saame neid funktsioone kasutada töölehe funktsioonidena VBA skripti all.

Täna õpime funktsiooni MATCH, mida saab kasutada töölehe funktsioonina VBA-s.

VBA Matchil on sama kasutusala kui Exceli vastevalemiga. See funktsioon MS Excel VBA-s leiab massiivi vaste otsinguväärtuse alusel ja prindib selle asukoha. See funktsioon on kasulik, kui peate andmeid hindama teatud väärtuste põhjal. Näiteks on VBA MATCH abiks juhul, kui teil on töötajate palgaandmed ja peate välja selgitama töötaja arvulise positsiooni, kelle palk on teatud väärtusest madalam / suurem / võrdne. See on andmete analüüsimisel väga kasulik ja ka üks koodirida võib teie jaoks asjad automatiseerida.

Vastefunktsiooni süntaks Excel VBA-s

VBA matšil on järgmine süntaks:

Kus,

  • Arg1 - Lookup_value - väärtus, mida vajate antud massiivi otsimiseks.
  • Arg2 - otsingu_massiiv - ridade ja veergude massiiv, mis sisaldab võimalikku otsingu väärtust.
  • Arg3 - vastetüüp - vaste tüüp, mille väärtus on -1, 0 või 1.

Kui match_type = -1 tähendab, et funktsioon MATCH tuvastab väikseima väärtuse, mis on otsinguväärtusest suurem või sellega võrdne. Et see juhtuks, tuleb lookup_array sortida kahanevas järjekorras.

Kui match_type = 0 tähendab, et funktsioon MATCH saab teada väärtuse, mis on täpselt sama kui otsinguväärtuse väärtus.

Kui match_type = +1, tähendab see, et funktsioon MATCH tuvastab suurima väärtuse, mis on otsinguväärtusest väiksem või sellega võrdne. Et see juhtuks, tuleb lookup_array sortida kasvavas järjekorras. Vaste tüübi vaikeväärtus on +1.

Kuidas kasutada Exceli VBA mängufunktsiooni?

Õpime kasutama VBA Match Exceli funktsiooni koos mõne näitega.

Selle VBA Match Exceli malli saate alla laadida siit - VBA Match Exceli mall

VBA mängufunktsioon - näide nr 1

Oletame, et meil on allpool toodud andmed:

Peame leidma, kellel on selles loendis palk koos ametikohaga Excelis 30 000 eurot.

Kuigi selles andmekogumis saame seda käsitsi konfigureerida, mõelge laiemale pildile, mis juhtuks, kui teil on miljoneid ridu ja veerge?

MATBA funktsiooni kasutamiseks VBA-s toimige järgmiselt.

1. samm: määratlege alamprotseduur, pannes makrole nime.

Kood:

 Sub exmatch1 () End Sub 

2. samm: nüüd tahame, et meie väljund salvestatakse lahtrisse E2. Seetõttu alustage koodi kirjutamist vahemikuna (“E2”)

See määratleb meie tulemuse väljundvahemiku.

Kood:

 Sub exmatch1 () Range ("E2"). Value = End Sub 

3. samm: kasutage WorksheetFunction'i, et saaksite kasutada VBA funktsioone.

Kood:

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

4. samm: WorksheetFunctionil on mitmesuguseid funktsioone, millele pääseb juurde ja mida saab kasutada VBA-s. Pärast „WorksheetFunction” pange punkt (.) Ja siis pääsete juurde funktsioonidele. Valige ripploendist funktsioon MATCH.

Kood:

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

5. samm: andke argumendid mängule MATCH. Nagu otsingu väärtus. Meie otsinguväärtus salvestatakse lahtrisse D2, nagu on näidatud alloleval ekraanipildil. Sellele pääsete juurde funktsiooni MATCH alt, kasutades funktsiooni Range.

Kood:

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

6. samm: teine ​​argument on Lookup_array. See on tabelvahemik, mille kaudu soovite teada saada otsinguväärtuse positsiooni. Meie puhul on see (B1: B11). Esitage see massiiv funktsiooni Range abil.

Kood:

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

7. samm: selle koodi väljatöötamise viimane argument on Match_type. Tahtsime, et otsingu väärtus oleks täpses vases antud vahemikus> Seetõttu anname sobitusargumendina nulli (0).

Kood:

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

8. samm: käivitage see kood, vajutades nuppu F5 või nuppu Käivita ja vaadake väljundit.

Lahtris E2 näete arvulist väärtust (6), mis näitab väärtuse asukohta lahtrist D2 läbi vahemiku B1: B11.

Näide nr 2 - VBA mängufunktsioon koos silmustega

See on lihtne, kui teil on kogu vahemikust otsida ainult ühte väärtust. Aga mis siis, kui peate kontrollima arvu lahtrite asukohta? Lisanduva inimese jaoks oleks karm paluda tal kirjutada iga lahtri jaoks eraldi koodid.

Sellistel juhtudel saab funktsiooni MATCH kasutada silmusega (eriti meie puhul silmuse jaoks). Vaadake järgmisi samme, et saada idee, kuidas me kasutame MATCH-funktsiooni koos silmusega.

1. samm: määratlege alamprotseduur, määrates makrole nime.

Kood:

 Alamnäide2 () lõpp alamnäide 

2. samm: määrake täisarv, mis mahutab silmuse mitme lahtri väärtust.

Kood:

 Alamnäide2 () Dim i kui täisarv End Sub 

3. samm. Kasutage täisarvu silmuse jaoks, et kasutada erinevaid otsinguväärtusi, mille positsiooni saab salvestada E veergu.

Kood:

 Alamnäide2 () Dim i täisarvuna, kui i = 2 kuni 6 Lõpp-alam 

4. samm. Kasutage nüüd sama meetodit, mida kasutasime näites 1, vahemiku asemel kasutame funktsiooni Lahtrid ja vastupidiselt esimesele näitele kahemõõtmelist massiivi (read ja veerud).

Kood:

 Alamnäide2 () Dim i täisarvuna, kui i = 2 kuni 6 lahtrit (i, 5) .Väärtus = WorksheetFunction.Match (lahtrid (i, 4) .Väärtus, vahemik ("B2: B11"), 0) Järgmine i End Alam 

Siin lahtrid (i, 5) .Value = salvestab igas reas saadud tulemuste positsioonide väärtuse vahemikus 2 kuni 6 (rida i) veerus E (veerg number 5). Funktsiooni Vastendamine all lahtrid (i, 4) .Väärtused kontrollib iga 4. veeru reas 2 kuni 6 esinevat iga otsingu väärtust. Seda otsinguväärtust otsiti seejärel Exceli lehe massiivist B2: B11, kus andmed on olemas ja suhtelisi positsioone saab säilitada 5. veeru igas reas (veerg E).

5. samm: käivitage see kood, vajutades korraga nuppu F5 või nuppu Käivita ja vaadake tulemust. See tõmbab võlu peaaegu ühe reaga kooditükist välja.

Selles artiklis saime teada, kuidas saame VBA-s funktsiooni MATCH kasutada WorksheetFunction'i erijuhuna.

Asjad, mida meeles pidada

  • Otsingu väärtus võib olla number / tekst / loogiline väärtus või see võib olla lahtri viide numbrile, tekstile või loogilisele väärtusele.
  • Vaikimisi võib Match_type'i väärtuseks lugeda 1, kui see jäetakse ära või seda ei mainita.
  • Sarnaselt funktsioonile Excel MATCH annab VBA MATCH ka otsingufunktsiooni Lookup_array suhtelise asukoha, mitte väärtuse enda.
  • Kui vastet ei leita, täidetakse suhteline exceli lahter numbriga # N / A.
  • Kui teksti väärtuste korral kasutatakse funktsiooni MATCH, ei suuda see vahet väiketähtedel ja suurtähtedel eristada. Näiteks Lalit ja Llit on samad. Nii ka LALIT ja lalit.
  • Metamärke saab kasutada, kui olete täpset vastet otsinud (st vaste tüüp on null). Tähemärkide tärniga tärn (*) saab kasutada tähemärgiseeria leidmiseks. Kuigi ühe märgi leidmiseks saab kasutada küsimärki (?).

Soovitatavad artiklid

See on VBA mängufunktsiooni juhend. Siin räägime VBA Matchist ja sellest, kuidas kasutada programmi Excel VBA Match Function koos praktiliste näidete ja allalaaditava excelimalliga. Võite vaadata ka meie teisi soovitatud artikleid -

  1. VBA Vigade täielik juhend
  2. Kuidas kasutada VBA numbrivormingut?
  3. VBA VLOOKUP funktsioon näidetega
  4. VBA funktsiooni loomine Excelis
  5. Exceli vastefunktsioon (näited)

Kategooria: