Podudaranje VBA INDEKSA zasnovano na više kriterijuma u Excelu (3 metode)

  • Podijeli Ovo
Hugh West

Kada imamo veliku količinu podataka, ponekad je teško izdvojiti bilo koji određeni podatak iz skupa podataka. Zajedno s Excelovim funkcijama INDEX i MATCH mogu dohvatiti bilo koju vrstu podataka čak i u velikom skupu podataka. Implementacija VBA je najefikasniji, najbrži i najsigurniji metod za pokretanje bilo koje operacije u Excelu. U ovom članku ćemo vam pokazati 3 različite metode o tome kako izvesti INDEX MATCH na osnovu više kriterija u Excelu s VBA makro .

Preuzmi Radna sveska

Ovdje možete preuzeti besplatnu Excel radnu svesku za vježbanje.

Podudaranje VBA INDEKSA na osnovu više kriterija.xlsm

3 metode sa VBA INDEX MATCH na osnovu više kriterija u Excelu

U sljedećim odjeljcima ćemo vam pokazati kako da izvedete INDEX MATCH na osnovu više kriterija za raspon , za određeni odabir i za tabelu u Excelu sa VBA .

Iznad imamo skup podataka koji će pratiti ovaj članak. Imamo Ime studenta , ID studenta, i Ocjene ispita svakog studenta u skupu podataka. Izvući ćemo određeni rezultat koji se nalazi u jednoj koloni na osnovu uslova iz druge dvije kolone.

Kriterijumi – 1: Ugradi VBA sa INDEX MATCH za višestruko (dvodimenzionalno traženje) u Excelu

Razmotrite sljedeću sliku. Pohranili smo određeno ime učenika “ Edge” u ćelijuG4 ; a kolona u kojoj ćemo pretraživati ​​ Rezultat , Ocjene ispita , pohranjena je u ćeliju G5 . Pretražit ćemo u koloni Ocjene ispita i pohraniti Ocjene koje je “ Edge” dobio u ćeliju G6 .

Koraci za traženje rezultiraju dvodimenzionalnim nizom sa INDEX i MATCH u Excelu sa VBA su dati u nastavku.

Koraci:

  • Na početku pritisnite Alt + F11 na tastaturi ili idite na kartica Programer -> Visual Basic da otvorite Visual Basic Editor .

  • Sljedeće, u iskačućem prozoru koda, iz traka menija, kliknite na Umetni -> Modul .

  • Zatim, kopirajte sljedeći kod i zalijepite ga u kod prozor.
8592

Vaš kod je sada spreman za pokretanje.

  • Sada pritisnite F5 na svom tastaturu ili na traci menija izaberite Pokreni -> Pokrenite Sub/UserForm . Također možete jednostavno kliknuti na malu ikonu Pokreni u traci podmenija da pokrenete makro.

Nakon izvršenja koda, pogledajte gif ispod da vidite rezultat.

Kao rezultat, Oznake koje je “ Edge” dobio u ispit, 67 , se preuzima u ćeliji G7 .

Objašnjenje VBA koda

8011

Definiranje varijable radnog lista.

9191

Spremite naziv radnog lista. Naziv našeg lista je “Dvo Dimenzija”, treba da navedetenaziv prema vašoj tabeli.

4520

Ovaj dio koda odabire raspon C5:D14 kao raspon pretraživanja. Zatim potražite podudaranje koje je pohranjeno u ćeliji G4 u rasponu B5:B14 i potražite podudaranje koje je pohranjeno u ćeliji G5 u rasponu C4:D4 i proslijedite rezultat u ćeliju G6 .

Pročitajte više: Kako koristiti INDEX MATCH s više kriterija za raspon datuma

Kriterijumi – 2: Primijenite makro da biste pronašli podudarnu vrijednost prema INDEX-u s korisnički definiranom funkcijom (UDF)

Možete izdvojiti podudarne vrijednosti iz skupa podataka pomoću korisnički definirana funkcija (UDF) . Sa sljedeće slike, ono što ćemo uraditi je da ćemo proslijediti ID učenika i Ocjene ispita određenog studenta i funkcija će nam baciti Ime tog konkretnog učenika.

Da vidimo kako to postići za Ime učenika “Finn” sa VBA .

Koraci:

  • Kao što je prikazano ranije, otvorite Visual Basic Editor sa kartice Developer i Umetnite a Module u prozor koda.
  • Zatim, u prozoru koda, kopirajte sljedeći kod i zalijepite ga.
1198

  • Nemojte pokretati ovaj kod, sačuvajte ga.
  • Sada, vratite se na radni list od interesa. Odaberite bilo koju ćeliju u koju želite pohraniti rezultat. U našem slučaju, to je ćelija F5 .
  • U tu ćeliju upišite UDF kojusu upravo kreirali u kodu ( MatchByIndex ) i prošli studentski ID i ispitne ocjene određenog studenta unutar zagrada funkcije.

Kao pokušavamo izvući ime “ Finn” iz njegovog ID (105) i oznaka (84) , tako da za naš slučaj formula postaje,

=MatchByIndex(105,84)

  • Zatim pritisnite Enter .

Pogledajte sljedeću sliku.

U ćeliji F5 , uspješno smo preuzeli ime “ Finn” jednostavnim prosljeđivanjem njegovih ID i Marks unutar funkcije koju smo kreirali u kodu VBA .

Objašnjenje VBA koda

7359

Kreiranje nove funkcije i prosljeđivanje varijabli unutar nje. Možete definirati bilo koje ime funkcije.

9918

Naš red počinje od reda broj 4. Morate navesti broj reda od kojeg počinje vaš skup podataka.

9414

Definiranje varijabli.

3731

Prvo, definirajte radni list za rad. Naziv našeg lista je “UDF”, trebali biste dati naziv prema vašoj tabeli. Zatim počnite tražiti u rasponu C:D od prvog reda koji smo definirali do posljednjeg reda.

2827

Počnite ponavljati od prvog do posljednjeg reda. Ako prva vrijednost koju ćemo proslijediti unutar funkcije padne unutar C stupca i ako druga vrijednost koju ćemo proći unutar funkcije padne unutar D stupca, onda će se vratiti thepodudaranje iz kolone B . U suprotnom, izađite iz funkcije, završite sve naredbe i idite na sljedeći red.

3957

Ako se prethodni uvjet ne ispuni tokom izvršavanja, tada će biti vraćena poruka “Podaci nisu pronađeni” i kod će napustiti funkciju.

Pročitajte više: INDEX-MACH sa više kriterija za djelomični tekst u Excelu (2 načina)

Kriterijumi – 3: Implementirajte VBA da biste vratili MATCH vrijednost iz tablice s više podataka u Excelu

U ovom odjeljku ćemo naučiti kako vratiti podudarnu vrijednost prema indeksima iz tabele u MsgBox u VBA Excelu.

Hajde da vidimo kako izdvojiti Marks iz tabele prikazane u našem skup podataka ( T moguće ime: TableMatch ) određenog učenika pružanjem Name i ID unutar koda. U našem slučaju, Ime i ID će biti Finn i 105 respektivno.

Koraci :

  • Prvo, otvorite Visual Basic Editor sa kartice Developer i Insert a Module u prozoru koda.
  • Zatim, kopirajte sljedeći kod i zalijepite ga u prozor koda.
9451

Vaš kod je sada spreman za pokretanje.

  • Kasnije, Pokrenite ovaj kod i pogledajte sljedeću sliku da vidite šta se dogodilo kao rezultat.

Kao što možete vidjeti iz gornje slike, postoji Microsoft Excel pop-gore okvir s porukom koji vam pokazuje Oznake: 84 od ID: 105 i Ime: Finn koje smo dali unutar koda.

Objašnjenje VBA koda

8955

Definiranje varijabli.

9512

Postavljanje imena lista i imena tablice unutar varijabli.

6602

Skladištenje vrijednosti pretraživanja i kolone za pretraživanje za pretraživanje.

3384

Ovaj dio koda skenira od početka do kraja indeksa i ako pronađe podudaranje definiranog ID-a i imena u kolonama za pretraživanje, tada pohraniti rezultat i zatvoriti sve naredbe. Također, izađite iz iteracije i idite na sljedeći dio koda.

9104

Ubacuje rezultat u MsgBox.

Pročitajte više: Potraži i vrati Više vrijednosti spojenih u jednu ćeliju u Excelu

Zaključak

Da zaključimo, ovaj članak vam je pokazao 3 različite metode o tome kako izvesti INDEX MATCH baziran na više kriterija u Excelu sa VBA makroom . Nadam se da vam je ovaj članak bio od velike koristi. Slobodno postavite bilo kakva pitanja u vezi sa temom.

Hugh West je vrlo iskusan Excel trener i analitičar s više od 10 godina iskustva u industriji. Diplomirao je računovodstvo i finansije i magistrirao poslovnu administraciju. Hugh ima strast prema podučavanju i razvio je jedinstven pristup podučavanju koji je lako pratiti i razumjeti. Njegovo stručno znanje o Excel-u pomoglo je hiljadama studenata i profesionalaca širom svijeta da poboljšaju svoje vještine i napreduju u karijeri. Kroz svoj blog, Hugh dijeli svoje znanje sa svijetom, nudeći besplatne Excel tutorijale i online obuku kako bi pomogli pojedincima i preduzećima da ostvare svoj puni potencijal.