Sadržaj
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.