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 TemplateVBA-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 -
- Täydellinen opas VBA-virheestä
- Kuinka käyttää VBA-numeromuotoa?
- VBA VLOOKUP -toiminto esimerkeillä
- VBA-toiminnon luominen Excelissä
- Excel-ottelutoiminto (esimerkit)