VBA INDEX MATCH basearre op meardere kritearia yn Excel (3 metoaden)

  • Diel Dit
Hugh West

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.

Hugh West is in tige betûfte Excel-trainer en analist mei mear as 10 jier ûnderfining yn 'e yndustry. Hy hat in bachelorstitel yn boekhâlding en finânsjes en in masterstitel yn bedriuwsadministraasje. Hugh hat in passy foar lesjaan en hat in unike lesoanpak ûntwikkele dy't maklik te folgjen en te begripen is. Syn saakkundige kennis fan Excel hat tûzenen studinten en professionals wrâldwiid holpen har feardigens te ferbetterjen en útblinke yn har karriêre. Troch syn blog dielt Hugh syn kennis mei de wrâld, en biedt fergese Excel-tutorials en online training om partikulieren en bedriuwen te helpen har folsleine potensjeel te berikken.