Ynhâldsopjefte
As wy in grutte hoemannichte gegevens hawwe, dan is it soms lestich om spesifike gegevens út 'e dataset te ekstrahearjen. Tegearre mei Excel's INDEX en MATCH funksjes kinne elke soart gegevens ophelje, sels yn in enoarme dataset. It ymplementearjen fan VBA is de meast effektive, fluchste en feilichste metoade om elke operaasje yn Excel út te fieren. Yn dit artikel sille wy jo 3 ferskillende metoaden sjen litte oer hoe't jo INDEX MATCH útfiere op basis fan meardere kritearia yn Excel mei de VBA makro .
Download Wurkboek
Jo kinne it fergese Excel-wurkboek fan hjir downloade.
VBA INDEX MATCH Based on Multiple Criteria.xlsm
3 Metoaden mei VBA INDEX MATCH basearre op meardere kritearia yn Excel
Yn 'e folgjende seksjes sille wy jo sjen litte hoe't jo INDEX MATCH útfiere kinne basearre op meardere kritearia foar in berik , foar in spesifike seleksje en foar in tabel yn Excel mei VBA .
Boppe wy hawwe de dataset dy't dit artikel sil folgje. Wy hawwe de Student Name , Student ID, en Exam Marks fan elke studint yn de dataset. Wy sille in bepaald resultaat ekstrahearje yn ien kolom basearre op betingsten fan 'e oare twa kolommen.
Kriteria - 1: Embed VBA mei INDEX MATCH foar Meardere (Twa) Dimensional Lookup yn Excel
Besjoch de folgjende ôfbylding. Wy hawwe de namme fan in spesifike studint " Râne" yn sel opsleinG4 ; en de kolom dêr't wy it Resultaat yn sille sykje, Exam Marks , wurdt opslein yn Sel G5 . Wy sille sykje yn de kolom Eksamenmarken en de Marks opslaan dy't " Edge" yn Sel G6 krige.
De stappen foar opsykjen resultearje yn in twa-diminsjonale array mei INDEX en MATCH yn Excel mei VBA wurde hjirûnder jûn.
Stappen:
- Druk yn it begjin op Alt + F11 op jo toetseboerd of gean nei de ljepper ûntwikkelder -> Visual Basic om Visual Basic Editor te iepenjen.
- Dêrnei, yn it pop-up-koade-finster, út de menubalke, klik op Ynfoegje -> Module .
- Dan, Kopiearje de folgjende koade en plakke it yn 'e koade finster.
6272
Jo koade is no klear om te rinnen.
- Druk no op F5 op jo toetseboerd of út de menubalke selektearje Utfiere -> Run Sub/UserForm . Jo kinne ek gewoan klikke op it lytse Run-ikoantsje yn 'e submenubalke om de makro út te fieren.
Nei it útfieren fan de koade, sjoch nei de gif hjirûnder om it resultaat te sjen.
As gefolch hawwe de Marks dy't " Edge" yn 'e eksamen, 67 , wurdt ophelle yn Sel G7 .
VBA Code Explanation
5815
It definiearjen fan de fariabele fan Wurkblêd.
2754
Bewarje de namme fan it wurkblêd. De namme fan ús blêd is "Twa Dimension", jo moatte leverjede namme neffens jo rekkenblêd.
1732
Dit stikje koade selektearret it berik C5:D14 as it opsykberik. Sykje dan nei de oerienkomst dy't opslein is yn sel G4 yn berik B5:B14 en sykje nei de wedstriid dy't bewarre is yn sel G5 yn berik C4:D4 en jou it resultaat troch nei sel G6 .
Lês mear: Hoe kinne jo INDEX MATCH brûke mei meardere kritearia foar datumberik
Kriteria – 2: Macro tapasse om MATCH-wearde te finen troch INDEX mei brûkers-definieare funksje (UDF)
Jo kinne oerienkommende wearden ekstrahearje út in dataset mei in brûker-definieare funksje (UDF) . Fanút de folgjende ôfbylding, wat wy sille dwaan is, sille wy de Studint ID en Eksamenmarks fan in bepaalde studint trochjaan en de funksje sil ús de Namme fan dy spesifike studint.
Lit ús sjen hoe't jo dat berikke kinne foar Studint Name "Finn" mei VBA .
Stappen:
- Lykas earder werjûn, iepenje Visual Basic Editor fan it ljepblêd ûntwikkelder en Foegje in Module yn it koadefinster.
- Dan, yn it koadefinster, Kopiearje de folgjende koade en plakke it.
3122
- Dizze koade net útfiere , bewarje it.
- No, gean werom nei it wurkblêd fan belang. Kies elke sel wêrmei jo it resultaat wolle opslaan. Yn ús gefal is it Sel F5 .
- Yn dy sel, skriuw de UDF johawwe krekt makke yn 'e koade ( MatchByIndex ) en passe de Student ID en Exam Marks fan 'e spesifike studint binnen de heakjes fan 'e funksje.
As wy besykje de namme " Finn" út syn ID (105) en Marks (84) te heljen, dus foar ús gefal wurdt de formule,
=MatchByIndex(105,84)
- Druk dan op Enter .
Sjoch nei de folgjende ôfbylding.
Yn Sel F5 hawwe wy mei súkses de namme " Finn"<2 ophelle> troch gewoan syn ID en Marks troch te jaan yn de funksje dy't wy makke hawwe yn de VBA -koade.
VBA Code Taljochting
6673
In nije funksje oanmeitsje en de fariabelen deryn trochjaan. Jo kinne elke namme definiearje foar de funksje.
6934
Us rige begjint fan rige nûmer 4. Jo moatte it rigenûmer opjaan wêrfan jo dataset begjint.
1383
De fariabelen definiearje.
9927
Definiearje earst it wurkblêd om mei te wurkjen. De namme fan ús blêd is "UDF", jo moatte de namme leverje neffens jo spreadsheet. Begjin dan te sykjen yn it berik C:D fan 'e earste rige dy't wy definieare oant de lêste rigel.
6584
Begjin iterearjen fan 'e earste rige nei de lêste rige. As de earste wearde dy't wy yn 'e funksje sille trochjaan binnen de C -kolom falt en as de twadde wearde dy't wy binnen de funksje sille trochjaan binnen de D -kolom falt, dan sil it weromkomme deoerienkomme út de kolom B . Oars, ferlitte de funksje, einigje alle útspraken en gean nei de folgjende rigel.
9132
As de foarige betingst net foldien wurdt by it útfieren, dan sil it berjocht "Gegevens net fûn" weromjûn wurde en de koade sil de funksje ferlitte.
Lês mear: INDEX-MATCH mei meardere kritearia foar dieltekst yn Excel (2 manieren)
Kriteria - 3: Implementearje VBA om MATCH-wearde werom te jaan fan in tabel mei meardere gegevens yn Excel
Yn dizze seksje sille wy leare hoe't jo in oerienkommende wearde weromjaan kinne troch de yndeksen út in tabel yn 'e MsgBox yn VBA Excel.
Litte wy sjen hoe't jo de Marks ekstrahearje út 'e tabel werjûn yn ús dataset ( T able Name: TableMatch ) fan in bepaalde studint troch de Namme en de ID binnen de koade te jaan. Foar ús gefal sille de Namme en de ID respektivelik Finn en 105 wêze.
Stappen :
- Earst iepenje Visual Basic Editor fan it ljepblêd Developer en Foegje in Module yn it koadefinster.
- Dan, Kopiearje de folgjende koade en plak it yn it koadefinster.
8679
Jo koade is no klear om te rinnen.
- Letter, Run dizze koade en sjoch nei de folgjende ôfbylding om te sjen wat der barde as gefolch.
Sa't jo kinne sjen fan 'e boppesteande ôfbylding, is d'r in Microsoft Excel pop-up berjocht doaze dy't jo de Marks: 84 fan ID: 105 en Namme: Finn sjen litte dy't wy binnen de koade levere.
VBA Code Taljochting
4517
De fariabelen definiearje.
8999
De blêdnamme en de tabelnamme yn fariabelen ynstelle.
4298
Opslaan de opsykwearden en de opsykkolommen om te sykjen.
9132
Dit stikje koade scant troch fan it begjin oant it ein fan it ûnderskrift en as it de oerienkomst fynt fan de definieare ID en de Namme yn de sykkolommen dan bewarje it resultaat en slute alle útspraken. Ferlitte ek de iteraasje en gean nei it folgjende diel fan 'e koade.
2231
Smiet it resultaat yn 'e MsgBox.
Lês mear: Sjoch en werom Meardere wearden gearfoege yn ien sel yn Excel
Konklúzje
Ta beslút liet dit artikel jo 3 ferskillende metoaden sjen oer hoe't jo INDEX MATCH basearre kinne útfiere op meardere kritearia yn Excel mei de VBA makro . Ik hoopje dat dit artikel tige foardielich foar jo west hat. Fiel jo frij om fragen te stellen oangeande it ûnderwerp.