Excel VBA -sovitustehtävä

VBA-vastaavuusfunktio etsii hakuarvon sijainnin tai rivin numerotaulukon taulukosta eli päätaulukosta. Esimerkiksi VLOOKUP, HLOOKUP, MATCH, INDEX jne. Nämä ovat hakutoiminnot, jotka ovat tärkeämpiä kuin muut. Valitettavasti VBA: lla ei ole samoja toimintoja, jotka helpottavat asioita. Voimme kuitenkin käyttää näitä toimintoja taulukkofunktioina VBA-komentosarjan alla helpottaaksemme elämäämme.

Tänään olemme oppimassa MATCH-toimintoa, jota voidaan käyttää taulukkolaskentatoimintona VBA: ssa.

VBA-ottelulla on sama käyttö kuin Excel-ottelukaavalla. Tämä toiminto MS Excel VBA -sovelluksessa löytää vastaavuuden taulukon sisällä hakuarvon suhteen ja tulostaa sijaintinsa. Tämä toiminto on hyödyllinen, kun joudut arvioimaan tietoja tiettyjen arvojen perusteella. Esimerkiksi VBA MATCH on hyödyllinen, jos sinulla on työntekijöiden palkatiedot ja sinun on selvitettävä tietosi työntekijän numeerinen sijainti, jonka palkka on alhaisempi / suurempi / vastaa tiettyä arvoa. Se on todella hyödyllinen tietojen analysoinnissa, ja myös yksi koodirivi voi automatisoida asiat puolestasi.

Sovitintoiminnon syntaksi Excel VBA: ssa

VBA-ottelussa on seuraava syntaksi:

Missä,

  • Arg1 - hakuarvo - arvo, jota tarvitset tietystä taulukosta.
  • Arg2 - Lookup_array - rivirivi ja sarake, joka sisältää mahdollisen hakuarvon.
  • Arg3 - Ottelutyyppi - Ottelutyyppi, jolla on arvo -1, 0 tai 1.

Jos match_type = -1 tarkoittaa, että MATCH-funktio löytää pienimmän arvon, joka on suurempi tai yhtä suuri kuin hakuarvo. Jotta tämä tapahtuisi, hakukenttä on lajiteltava alenevassa järjestyksessä.

Jos match_type = 0 tarkoittaa, että MATCH-funktio löytää arvon, joka on täsmälleen sama kuin hakuarvo.

Jos match_type = +1, se tarkoittaa, että MATCH-funktio löytää suurimman arvon, joka on pienempi tai yhtä suuri kuin hakuarvo. Jotta näin tapahtuisi, hakukenttä on lajiteltava nousevassa järjestyksessä. Otustyypin oletusarvo on +1.

Kuinka käyttää Excel VBA Match -toimintoa?

Opimme käyttämään VBA Match Excel -toimintoa muutamalla esimerkillä.

Voit ladata tämän VBA Match Excel -mallin täältä - VBA Match Excel Template

VBA-ottelutoiminto - esimerkki # 1

Oletetaan, että meillä on alla olevan kuvan mukaisia ​​tietoja:

Meidän on löydettävä siitä, keneltä tällä luettelolla on palkkaa 30 000 euroa yhdessä tehtävänsä kanssa Excelissä.

Vaikka tässä tietojoukossa voimme määrittää sen manuaalisesti, ajattele laajempaa kuvaa, entä jos sinulla on miljoonia rivejä ja sarakkeita?

Noudata alla olevia vaiheita käyttääksesi MATCH-toimintoa VBA: ssa.

Vaihe 1: Määritä alamenettely antamalla nimi makroon.

Koodi:

 Sub exmatch1 () Loppu Sub 

Vaihe 2: Nyt haluamme, että lähtömme tallennetaan soluun E2. Siksi aloita koodin kirjoittaminen alueena (“E2”)

Tämä määrittelee tulosalueemme lähtöalueen.

Koodi:

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

Vaihe 3: Käytä WorksheetFunction-sovellusta voidaksesi käyttää VBA-toimintoja.

Koodi:

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

Vaihe 4: WorksheetFunction sisältää useita toimintoja, joita voidaan käyttää ja käyttää VBA: n alla. Lisää ”WorksheetFunction” -kohdan jälkeen piste (.) Ja pääset sitten toimintoihin. Valitse avattavasta luettelosta MATCH-toiminto.

Koodi:

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

Vaihe 5: Anna nyt argumentit MATCH-funktiolle. Kuten hakuarvo. Hakupalvelumme on tallennettu soluun D2 alla olevan kuvakaappauksen osoittamalla tavalla. Voit käyttää sitä MATCH-toiminnon kautta Range-toiminnolla.

Koodi:

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

Vaihe 6: Toinen argumentti on Lookup_array. Tämä on taulukkoalue, jonka sisällä haluat selvittää hakuarvon sijainnin. Meidän tapauksessamme se on (B1: B11). Anna tämä taulukko Range-toiminnolla.

Koodi:

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

Vaihe 7: Viimeinen argumentti tämän koodin käyttämiselle on Match_type. Halusimme saada tarkan haun hakuarvolle tietyllä alueella> Siksi annetaan nolla (0) vastaavana argumenttina.

Koodi:

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

Vaihe 8: Suorita tämä koodi napsauttamalla F5 tai Suorita-painiketta ja katso lähtö.

Voit nähdä solussa E2, että on numeerinen arvo (6), joka näyttää arvon sijainnin solusta D2 läpi alueen B1: B11.

Esimerkki 2 - VBA-ottelutoiminto silmukoilla

Se on helppoa, kun sinulla on vain yksi arvo etsiä koko alueelta. Entä jos sinun on tarkistettava useiden solujen sijainti? Olisi hankalaa henkilölle, joka lisää, pyytää häntä kirjoittamaan erilliset koodit jokaiselle solulle.

Tällaisissa tapauksissa MATCH-toimintoa voidaan käyttää silmukan kanssa (erityisesti tässä tapauksessa silmukalle). Seuraavien vaiheiden avulla saat käsityksen siitä, kuinka käytämme MATCH-toimintoa silmukan kanssa.

Vaihe 1: Määritä osaprosessori antamalla nimi makroon.

Koodi:

 Alaesimerkki2 () Loppu alaosaan 

Vaihe 2: Määritä kokonaisluku, joka voi pitää silmukan useiden solujen arvoa.

Koodi:

 Alaesimerkki2 () himmennetään kokonaislukuna Loppu alaosa 

Vaihe 3: Käytä kokonaisluvun silmukkaa, käyttää erilaisia ​​hakuarvoja, joiden sijainti voidaan tallentaa sarakkeeseen E.

Koodi:

 Alaesimerkki2 () himmentää i kokonaislukuna i = 2 - 6 loppuun alaosa 

Vaihe 4: Käytä nyt samaa menetelmää, jota käytimme esimerkissä 1, vain alueen sijasta, käytämme Solut-toimintoa ja kaksidimensionaalista taulukkoa (rivit ja sarakkeet) toisin kuin ensimmäisessä esimerkissä.

Koodi:

 Alaesimerkki2 () himmentää i kokonaislukuna i = 2 - 6 solulle (i, 5) .Arvo = WorksheetFunction.Match (solut (i, 4) .arvo, alue ("B2: B11"), 0) seuraava i Loppu Sub 

Tässä solut (i, 5) .Value = tallentaa kussakin rivissä saatujen paikkojen arvot 2 - 6 (rivi i) sarakkeeseen E (sarakkeen numero 5). Vastaa-toiminnon kohdassa Solut (i, 4). Arvot tarkistaa jokaiselle 4. sarakkeen rivillä 2–6 olevalle hakuarvolle. Tämä hakuarvo etsittiin sitten Excel-taulukon taulukosta B2: B11, jossa tietoja on läsnä ja suhteelliset sijainnit voidaan tallentaa sarakkeen 5 jokaiseen riviin (sarake E).

Vaihe 5: Suorita tämä koodi napsauttamalla F5- tai Suorita-painiketta samanaikaisesti ja katso tulos. Se melkein vetää taikuutta koodinpätkällä yhdellä rivillä.

Tässä artikkelissa opimme kuinka VAC: n alla olevaa MATCH-toimintoa voidaan käyttää WorksheetFunction-erikoistapauksena.

Muistettavat asiat

  • Hakuarvo voi olla numero / teksti / looginen arvo tai se voi olla soluviittaus numeroon, tekstiin tai loogiseen arvoon.
  • Oletuksena Match_type-tyyppiä voidaan pitää yhtenä, jos sitä ei ole mainittu tai sitä ei mainita.
  • Kuten samanlainen kuin Excel MATCH -toiminto, VBA MATCH antaa myös hakuarvon suhteellisen sijainnin kohdassa Hakutaulukko, ei itse arvoa.
  • Jos vastaavuutta ei löydy, suhteellinen excel-solu täytetään numerolla # N / A.
  • Jos MATCH-toimintoa käytetään teksti-arvoissa, se ei pysty erottamaan pieniä ja suuria kirjaimia. Esimerkiksi, Lalit ja pilkat ovat samoja. Joten tee LALIT ja lalit.
  • Jokerimerkkejä voidaan käyttää, jos etsit tarkkaa vastaavuutta (ts. Vastaavuustyyppi on nolla). Jokerimerkki tähdellä (*) voidaan käyttää merkkisarjan selvittämiseen. Vaikka kysymysmerkkiä (?) Voidaan käyttää yksittäisen merkin selvittämiseen.

Suositellut artikkelit

Tämä on opas VBA-ottelutoimintoon. Tässä keskustellaan VBA-ottelusta ja siitä, miten Excel VBA -sovellustoimintoa käytetään, sekä käytännön esimerkkejä ja ladattavaa Excel-mallia. Voit myös käydä läpi muiden ehdottamiemme artikkeleidemme -

  1. Täydellinen opas VBA-virheestä
  2. Kuinka käyttää VBA-numeromuotoa?
  3. VBA VLOOKUP -toiminto esimerkeillä
  4. VBA-toiminnon luominen Excelissä
  5. Excel-ottelutoiminto (esimerkit)

Luokka: