INHOUDSOPGAWE
Wanneer ons 'n groot hoeveelheid data het, is dit soms moeilik om enige spesifieke data uit die datastel te onttrek. Saam met Excel se INDEX - en MATCH -funksies kan enige soort data selfs in 'n groot datastel herwin word. Die implementering van VBA is die doeltreffendste, vinnigste en veiligste metode om enige bewerking in Excel uit te voer. In hierdie artikel sal ons jou 3 verskillende metodes wys oor hoe om INDEX MATCH uit te voer gebaseer op verskeie kriteria in Excel met die VBA makro .
Laai af Werkboek
Jy kan die gratis oefen Excel-werkboek van hier af aflaai.
VBA INDEX MATCH Gebaseer op veelvuldige kriteria.xlsm
3 Metodes met VBA INDEX MATCH gebaseer op veelvuldige kriteria in Excel
In die volgende afdelings sal ons jou wys hoe om INDEX MATCH uit te voer gebaseer op veelvuldige kriteria vir 'n reeks , vir 'n spesifieke seleksie en vir 'n tabel in Excel met VBA .
Bo ons het die datastel wat hierdie artikel sal volg. Ons het die Student Name , Student ID, en Eksamenpunte van elke student in die datastel. Ons sal 'n sekere resultaat wat in een kolom woon, onttrek op grond van toestande uit die ander twee kolomme.
Kriteria – 1: Sluit VBA in met INDEX MATCH vir veelvuldige (twee) dimensionele opsoek in Excel
Beskou die volgende prent. Ons het 'n spesifieke student se naam " Rand" in Sel gestoorG4 ; en die kolom waarin ons die Resultaat in, Eksamenpunte sal soek, word in Sel G5 gestoor. Ons sal in die Eksamenpunte -kolom soek en die Punte stoor wat “ Rand” in Sel G6 gekry het.
Die stappe om op te soek lei tot 'n tweedimensionele skikking met INDEX en MATCH in Excel met VBA word hieronder gegee.
Stappe:
- In die begin, druk Alt + F11 op jou sleutelbord of gaan na die oortjie Ontwikkelaar -> Visual Basic om Visual Basic Editor oop te maak.
- Volgende, in die opspringkode-venster, vanaf die kieslysbalk, klik Voeg in -> Module .
- Dan kopieer die volgende kode en plak dit in die kode venster.
4776
Jou kode is nou gereed om te loop.
- Druk nou F5 op jou sleutelbord of van die kieslysbalk kies Run -> Begin Sub/UserForm . Jy kan ook net op die klein Run-ikoon in die subkieslysbalk klik om die makro te laat loop.
Na die kode-uitvoering, kyk na die gif hieronder om die resultaat te sien.
Gevolglik het die punte wat " Edge" in die eksamen, 67 , word in Sel G7 opgespoor.
VBA Kode Verduideliking
4709
Definieer die veranderlike van Werkblad.
9474
Stoor die werkbladnaam. Die naam van ons blad is "Twee Dimensie", moet jy verskafdie naam volgens jou sigblad.
2182
Hierdie stuk kode kies die reeks C5:D14 as die opsoekreeks. Soek dan vir die passing wat in sel G4 in reeks B5:B14 gestoor is en soek vir die passing wat in sel G5 in reeks gestoor is C4:D4 en gee die resultaat na sel G6 .
Lees meer: Hoe om INDEX MATCH te gebruik met veelvuldige kriteria vir datumbereik
Kriteria – 2: Pas makro toe om MATCH-waarde volgens INDEX te vind met gebruikergedefinieerde funksie (UDF)
Jy kan ooreenstemmende waardes uit 'n datastel onttrek met 'n gebruikergedefinieerde funksie (UDF) . Uit die volgende prent, wat ons gaan doen is, sal ons die Student ID en Eksamenpunte van 'n sekere student slaag en die funksie sal vir ons die Naam
Kom ons kyk hoe om dit te bereik vir Student Naam “Finn” met VBA .
Stappe:
- Soos voorheen getoon, maak Visual Basic Editor oop vanaf die Ontwikkelaar -oortjie en Voeg 'n Module in die kodevenster in.
- Dan, in die kodevenster, kopieer die volgende kode en plak dit.
3459
- Moenie hierdie kode laat loop nie, stoor dit.
- Nou, gaan terug na die werkblad van belang. Kies enige sel wat jy die resultaat wil stoor. In ons geval is dit Sel F5 .
- In daardie sel, skryf die UDF wat jyhet pas in die kode ( MatchByIndex ) geskep en slaag die Student ID en Eksamenpunte van die spesifieke student binne die hakies van die funksie.
As ons probeer die naam “ Finn” uit sy ID (105) en Punte (84) onttrek, so vir ons geval word die formule,
=MatchByIndex(105,84)
- Druk dan Enter .
Kyk na die volgende prent.
In Sel F5 het ons die naam “ Finn”<2 suksesvol herwin> deur eenvoudig sy ID en Marks deur te gee binne die funksie wat ons in die VBA -kode geskep het.
VBA Kode Verduideliking
9768
Skep 'n nuwe funksie en gee die veranderlikes daarin deur. Jy kan enige naam vir die funksie definieer.
1525
Ons ry begin vanaf ry nommer 4. Jy moet die rynommer verskaf waarvandaan jou datastel begin.
1894
Definieer die veranderlikes.
5027
Definieer eers die werkblad om mee te werk. Die naam van ons blad is "UDF", jy moet die naam volgens jou sigblad verskaf. Begin dan soek in die reeks C:D vanaf die eerste ry wat ons gedefinieer het tot by die laaste ry.
8987
Begin itereer van die eerste ry na die laaste ry. As die eerste waarde wat ons binne die funksie sal deurgee binne die C kolom val en as die tweede waarde wat ons binne die funksie sal deurgee binne die D kolom val, dan sal dit terugkeer diepas uit die B -kolom. Andersins, verlaat die funksie, beëindig al die stellings en gaan na die volgende reël.
4028
As die vorige voorwaarde nie nagekom word terwyl dit uitgevoer word nie, sal die "Data Nie gevind nie"-boodskap teruggestuur word en die kode sal die funksie verlaat.
Lees meer: INDEX-MATCH met veelvuldige kriteria vir gedeeltelike teks in Excel (2 maniere)
Kriteria – 3: Implementeer VBA om MATCH-waarde van 'n tabel met veelvuldige data in Excel terug te gee
In hierdie afdeling sal ons leer hoe om 'n ooreenstemmende waarde deur die indekse van 'n tabel terug te gee in die MsgBox in VBA Excel.
Kom ons kyk hoe om die Marks te onttrek uit die tabel wat in ons datastel ( T able Name: TableMatch ) van 'n sekere student deur die Naam en die ID binne die kode te verskaf. Vir ons geval sal die Naam en die ID onderskeidelik Finn en 105 wees.
Stappe :
- Maak eers Visual Basic Editor oop vanaf die Ontwikkelaar -oortjie en Voeg in 'n Module in die kodevenster.
- Dan kopieer die volgende kode en plak dit in die kodevenster.
3601
Jou kode is nou gereed om te hardloop.
- Later, Hardloop hierdie kode en kyk na die volgende prent om te sien wat as gevolg daarvan gebeur het.
Soos jy uit die bostaande prent kan sien, is daar 'n Microsoft Excel pop-op boodskap boks wat vir jou die Punte: 84 van ID: 105 en Naam: Finn wys wat ons in die kode verskaf het.
VBA Kode Verduideliking
9945
Definieer die veranderlikes.
1557
Stel die bladnaam en die tabelnaam binne veranderlikes in.
5796
Stoor die opsoekwaardes en die opsoekkolomme om te soek.
5247
Hierdie stuk kode skandeer deur van die begin tot die einde van die subskripsie en as dit die passing van die gedefinieerde ID en die Naam in die soekkolomme vind, dan stoor die resultaat en maak al die stellings toe. Verlaat ook die iterasie en gaan na die volgende deel van die kode.
5747
Gooi die resultaat in die MsgBox.
Lees meer: Opsoek en keer terug Veelvuldige waardes saamgevoeg in een sel in Excel
Gevolgtrekking
Om af te sluit, het hierdie artikel vir jou 3 verskillende metodes gewys oor hoe om INDEX MATCH-gebaseerde uit te voer op verskeie kriteria in Excel met die VBA-makro . Ek hoop hierdie artikel was baie voordelig vir jou. Vra gerus enige vrae rakende die onderwerp.