VBA INDEX MATCH Na temelju više kriterija u Excelu (3 metode)

  • Podijeli Ovo
Hugh West

Kada imamo veliku količinu podataka, ponekad je teško izdvojiti bilo kakve specifične podatke iz skupa podataka. Zajedno s Excelovim funkcijama INDEX i MATCH može dohvatiti bilo koju vrstu podataka čak i u ogromnom skupu podataka. Implementacija VBA je najučinkovitija, najbrža i najsigurnija metoda za pokretanje bilo koje operacije u Excelu. U ovom ćemo vam članku pokazati 3 različite metode kako izvršiti INDEKSNO PODARANJE na temelju više kriterija u Excelu s VBA makronaredbom .

Preuzmi Radna knjiga

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

VBA INDEX MATCH Based on Multiple Criteria.xlsm

3 metode s VBA INDEX MATCH na temelju više kriterija u Excelu

U sljedećim odjeljcima, pokazat ćemo vam kako izvesti INDEX MATCH na temelju više kriterija za raspon , za određeni odabir i za tablicu u Excelu s VBA .

Gore imamo skup podataka koji će pratiti ovaj članak. Imamo Ime studenta , ID studenta, i Ocjene ispita svakog studenta u skupu podataka. Izdvojit ćemo određeni rezultat koji se nalazi u jednom stupcu na temelju uvjeta iz druga dva stupca.

Kriterij – 1: Ugradite VBA s INDEX MATCH za višestruko (dvo) dimenzionalno pretraživanje u Excelu

Razmotrite sljedeću sliku. Pohranili smo ime određenog učenika " Edge" u ćelijuG42; a stupac u kojem ćemo pretraživati ​​ Rezultat , Ocjene ispita , pohranjen je u ćeliji G5 . Tražit ćemo u stupcu Ocjene ispita i pohraniti Ocjene koje je “ Edge” dobio u ćeliji G6 .

Koraci traženja rezultiraju dvodimenzionalnim nizom s INDEX i MATCH u Excelu s VBA su dolje.

Koraci:

  • Na početku pritisnite Alt + F11 na tipkovnici ili idite na kartica Razvojni programer -> Visual Basic za otvaranje Visual Basic Editor .

  • Dalje, u skočnom prozoru koda, iz traka izbornika, kliknite Umetni -> Modul .

  • Zatim, kopirajte sljedeći kod i zalijepite ga u kôd prozor.
2125

Vaš kod je sada spreman za izvođenje.

  • Sada pritisnite F5 na svom tipkovnice ili na traci izbornika odaberite Pokreni -> Pokrenite Sub/UserForm . Također možete jednostavno kliknuti na malu ikonu Pokreni u traci podizbornika da biste pokrenuli makro.

Nakon izvršenja koda, pogledajte gif ispod kako biste vidjeli rezultat.

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

Objašnjenje koda VBA

3839

Definiranje varijable radnog lista.

6484

Pohranite naziv radnog lista. Naziv našeg lista je "Dvije dimenzije", trebali biste ga datinaziv prema vašoj proračunskoj tablici.

3870

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 datumski raspon

Kriterij – 2: Primijenite makronaredbu za pronalaženje PODudarne vrijednosti prema INDEKSU s korisnički definiranom funkcijom (UDF)

Možete izdvojiti podudarne vrijednosti iz skupa podataka pomoću korisnički definirana funkcija (UDF) . Na sljedećoj slici, ono što ćemo učiniti jest, proslijediti ID studenta i Ocjene ispita određenog studenta, a funkcija će nam dati Ime tog određenog učenika.

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

Koraci:

  • Kao što je prikazano prije, otvorite Visual Basic Editor s kartice Developer i Umetnite Modul u prozor koda.
  • Zatim, u prozoru koda, kopirajte sljedeći kod i zalijepite ga.
7842

  • Nemojte pokretati ovaj kod, spremite ga.
  • Sada se vratite na radni list koji vas zanima. Odaberite bilo koju ćeliju u koju želite pohraniti rezultat. U našem slučaju, to je ćelija F5 .
  • u tu ćeliju napišite UDF kojiupravo kreirali u kodu ( MatchByIndex ) i proslijedite ID studenta i ocjene ispita određenog studenta unutar zagrada funkcije.

Kao pokušavamo izdvojiti ime “ Finn” iz njegove ID (105) i oznake (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 dohvatili ime “ Finn” jednostavnim prosljeđivanjem njegovog ID i Marks unutar funkcije koju smo stvorili u VBA kodu.

Objašnjenje VBA koda

5794

Stvaranje nove funkcije i prosljeđivanje varijabli unutar nje. Funkciji možete definirati bilo koji naziv.

3556

Naš redak počinje od retka broj 4. Morate navesti broj retka od kojeg počinje vaš skup podataka.

7144

Definiranje varijabli.

2819

Prvo, definirajte radni list s kojim ćete raditi. Naziv našeg lista je "UDF", trebali biste unijeti naziv prema vašoj proračunskoj tablici. Zatim počnite pretraživati ​​u rasponu C:D od prvog retka koji smo definirali do zadnjeg retka.

4777

Počnite ponavljati od prvog retka do zadnjeg retka. Ako prva vrijednost koju ćemo proslijediti unutar funkcije padne unutar stupca C i ako druga vrijednost koju ćemo proslijediti unutar funkcije padne unutar stupca D , tada će se vratiti theodgovara iz stupca B . U suprotnom, izađite iz funkcije, završite sve naredbe i prijeđite na sljedeći redak.

6722

Ako se prethodni uvjet ne ispuni tijekom izvođenja, vratit će se poruka “Podaci nisu pronađeni” i kod će napustiti funkciju.

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

Kriterij – 3: Implementirajte VBA za vraćanje podudarne vrijednosti iz tablice s više podataka u Excelu

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

Da vidimo kako izdvojiti Oznake iz tablice prikazane u našem skup podataka ( T table Name: TableMatch ) određenog učenika pružanjem Ime i ID unutar koda. Za naš slučaj, Ime i ID bit će Finn odnosno 105 .

Koraci :

  • Prvo otvorite Visual Basic Editor s kartice Developer i Umetnite Modul u prozor koda.
  • Zatim, kopirajte sljedeći kod i zalijepite ga u prozor koda.
5276

Vaš kod sada je spreman za pokretanje.

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

Kao što možete vidjeti na gornjoj slici, postoji Microsoft Excel pop-gornji okvir s porukom koji prikazuje Oznake: 84 od ID: 105 i Ime: Finn koje smo naveli unutar koda.

Objašnjenje VBA koda

1351

Definiranje varijabli.

4363

Postavljanje naziva lista i naziva tablice unutar varijabli.

5068

Pohranjivanje vrijednosti pretraživanja i stupce pretraživanja za pretraživanje.

1203

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

9742

Izbacuje rezultat u MsgBox.

Pročitajte više: Traženje i vraćanje Višestruke vrijednosti spojene u jednu ćeliju u programu Excel

Zaključak

Da zaključimo, ovaj vam je članak pokazao 3 različite metode kako izvršiti INDEKSNO USPARANJE na više kriterija u Excelu s VBA makronaredbom . Nadam se da vam je ovaj članak bio od velike koristi. Slobodno postavite sva pitanja u vezi s temom.

Hugh West vrlo je iskusan Excel trener i analitičar s više od 10 godina iskustva u industriji. Diplomirao je računovodstvo i financije te magistrirao poslovno upravljanje. Hugh ima strast za podučavanjem i razvio je jedinstveni pristup podučavanju koji je lako pratiti i razumjeti. Njegovo stručno poznavanje programa Excel pomoglo je tisućama studenata i profesionalaca diljem svijeta da poboljšaju svoje vještine i postignu uspjeh u karijeri. Putem svog bloga, Hugh dijeli svoje znanje sa svijetom, nudeći besplatne vodiče za Excel i online obuku kako bi pomogao pojedincima i tvrtkama da dostignu svoj puni potencijal.