Përputhja e INDEKSIT VBA bazuar në kritere të shumta në Excel (3 metoda)

  • Shperndaje Kete
Hugh West

Kur kemi një sasi të madhe të dhënash, ndonjëherë është e vështirë të nxjerrim ndonjë të dhënë specifike nga grupi i të dhënave. Së bashku me funksionet INDEX dhe MATCH të Excel-it mund të rikuperojnë çdo lloj të dhënash edhe në një grup të madh të dhënash. Zbatimi i VBA është metoda më efektive, më e shpejtë dhe më e sigurt për të ekzekutuar çdo operacion në Excel. Në këtë artikull, ne do t'ju tregojmë 3 metoda të ndryshme se si të kryeni INDEX MATCH bazuar në kritere të shumta në Excel me makron VBA .

Shkarko Libri i punës

Mund ta shkarkoni librin e punës praktike falas të Excel nga këtu.

Përputhja e INDEX-it VBA Bazuar në Kriteret e Shumëfishta.xlsm

3 metoda me VBA INDEX MATCH bazuar në kritere të shumëfishta në Excel

Në seksionet vijuese, ne do t'ju tregojmë se si të kryeni INDEX MATCH bazuar në kritere të shumta për një varg , për një përzgjedhje specifike dhe për një tabelë në Excel me VBA .

Më sipër ne kemi të dhënat që do të ndjekë ky artikull. Ne kemi Emri i studentit , ID-ja e studentit, dhe Njoftimet e provimit të secilit student në grupin e të dhënave. Ne do të nxjerrim një rezultat të caktuar që qëndron në një kolonë bazuar në kushtet nga dy kolonat e tjera.

Kriteret – 1: Vendosni VBA me INDEX MATCH për kërkime të shumëfishta (dy) dimensionale në Excel

Kini parasysh imazhin e mëposhtëm. Ne kemi ruajtur emrin e një studenti specifik " Edge" QelizaG4 ; dhe kolona në të cilën do të kërkojmë Rezultati , Vendet e provimit , ruhet në Qeliza G5 . Ne do të kërkojmë në kolonën Shënimet e provimit dhe do të ruajmë Shënimet që ka marrë " Edge" Qeliza G6 .

Hapat për të kërkuar rezultojnë në një grup dy-dimensionale me INDEX dhe MATCH në Excel me VBA janë dhënë më poshtë.

Hapat:

  • Në fillim, shtypni Alt + F11 në tastierën tuaj ose shkoni te skeda Zhvilluesi -> Visual Basic për të hapur Visual Basic Editor .

  • Më pas, në dritaren e kodit pop-up, nga shiritin e menysë, kliko Fut -> Moduli .

  • Më pas, kopjoni kodin e mëposhtëm dhe ngjisni në kod dritare.
5480

Kodi juaj tani është gati për ekzekutim.

  • Tani, shtypni F5 në tuaj tastierë ose nga shiriti i menysë zgjidhni Run -> Ekzekuto Sub/UserForm . Mund të klikoni gjithashtu në ikonën e vogël Run në shiritin e nënmenysë për të ekzekutuar makro.

Pas ekzekutimit të kodit, shikoni gif-in më poshtë për të parë rezultatin.

Si rezultat, Shenjat që " Edge" mori në provimi, 67 , është marrë në Qeliza G7 .

Shpjegimi i kodit VBA

7226

Përcaktimi i ndryshores së fletës së punës.

8339

Ruaj emrin e fletës së punës. Emri i fletës sonë është "Two Dimension", duhet të jepniemri sipas fletës suaj.

1598

Kjo pjesë e kodit zgjedh diapazonin C5:D14 si diapazonin e kërkimit. Më pas kërkoni për përputhjen që është ruajtur në qelizën G4 në intervalin B5:B14 dhe kërkoni për ndeshjen që është ruajtur në qelizën G5 në intervalin C4:D4 dhe kaloni rezultatin në qelizën G6 .

Lexo më shumë: Si të përdorni INDEX MATCH me kritere të shumta për intervalin e datave

Kriteret – 2: Aplikoni makro për të gjetur vlerën MATCH sipas INDEX me funksionin e përcaktuar nga përdoruesi (UDF)

Ju mund të nxirrni vlerat e përputhura nga një grup të dhënash me një funksioni i përcaktuar nga përdoruesi (UDF) . Nga imazhi i mëposhtëm, ajo që do të bëjmë është, ne do të kalojmë Njoftimin e studentit dhe Pistat e provimit të një studenti të caktuar dhe funksioni do të na hedhë Emrin të atij studenti specifik.

Le të shohim se si ta arrijmë këtë për Emri i studentit "Finn" me VBA .

Hapat:

  • Siç tregohet më parë, hapni Visual Basic Editor nga skeda Zhvilluesi dhe Fut një Modul në dritaren e kodit.
  • Më pas, në dritaren e kodit, kopjo kodin e mëposhtëm dhe ngjit atë.
5596

  • Mos e ekzekutoni këtë kod, ruajeni atë.
  • Tani, kthehuni te fleta e punës me interes. Zgjidhni çdo qelizë që dëshironi të ruani rezultatin. Në rastin tonë, është Qeliza F5 .
  • Në atë qelizë, shkruani UDF jusapo keni krijuar në kodin ( MatchByIndex ) dhe kaloni ID-në e studentit dhe notat e provimit të studentit specifik brenda kllapave të funksionit.

Si ne po përpiqemi të nxjerrim emrin " Finn" nga ID (105) dhe Shenjat e tij (84) , kështu që për rastin tonë formula bëhet,

=MatchByIndex(105,84)

  • Më pas, shtypni Enter .

Shikoni imazhin e mëposhtëm.

Qeliza F5 , ne kemi marrë me sukses emrin " Finn" thjesht duke kaluar ID dhe Shënimet brenda funksionit që krijuam në kodin VBA .

Shpjegimi i kodit VBA

6956

Krijimi i një funksioni të ri dhe kalimi i variablave brenda tij. Ju mund të përcaktoni çdo emër për funksionin.

8439

Rreshti ynë fillon nga rreshti numër 4. Ju duhet të jepni numrin e rreshtit nga i cili fillon grupi juaj i të dhënave.

7518

Përcaktimi i variablave.

2950

Së pari, përcaktoni fletën e punës me të cilën do të punoni. Emri i fletës sonë është "UDF", ju duhet të jepni emrin sipas tabelës suaj. Më pas filloni kërkimin në intervalin C:D nga rreshti i parë që përcaktuam deri në rreshtin e fundit.

4677

Filloni përsëritjen nga rreshti i parë në rreshtin e fundit. Nëse vlera e parë që do të kalojmë brenda funksionit bie brenda kolonës C dhe nëse vlera e dytë që do të kalojmë brenda funksionit bie brenda kolonës D , atëherë ajo do të kthehet tëpërputhje nga kolona B . Përndryshe, dilni nga funksioni, përfundoni të gjitha deklaratat dhe shkoni në rreshtin tjetër.

1336

Nëse kushti i mëparshëm nuk plotësohet gjatë ekzekutimit, atëherë do të kthehet mesazhi "Të dhënat nuk u gjetën" dhe kodi do të largohet nga funksioni.

Lexo më shumë: INDEX-MATCH me kritere të shumta për tekst të pjesshëm në Excel (2 mënyra)

Kriteret – 3: Zbatoni VBA për të kthyer vlerën MATCH nga një tabelë me të dhëna të shumëfishta në Excel

Në këtë seksion, ne do të mësojmë se si të kthejmë një vlerë të përputhur nga indekset nga një tabelë në MsgBox VBA Excel.

Le të shohim se si të nxjerrim Shenjat nga tabela e paraqitur në tonë grupi i të dhënave ( T Emri i mundshëm: TableMatch ) i një studenti të caktuar duke dhënë Emri dhe ID brenda kodit. Për rastin tonë, Emri dhe ID do të jenë përkatësisht finlandez dhe 105 .

Hapat. :

  • Së pari, hapni Visual Basic Editor nga skeda Zhvilluesi dhe Fut një Modul në dritaren e kodit.
  • Më pas, kopjoni kodin e mëposhtëm dhe ngjisni në dritaren e kodit.
7480

Kodi juaj tani është gati për të ekzekutuar.

  • Më vonë, ekzekutoni këtë kod dhe shikoni imazhin e mëposhtëm për të parë se çfarë ndodhi si rezultat.

Siç mund ta shihni nga imazhi i mësipërm, ekziston një Microsoft Excel pop-lart kutia e mesazhit që ju tregon Shenjat: 84 e ID: 105 dhe Emri: Finn që kemi dhënë brenda kodit.

Shpjegimi i kodit VBA

5881

Përcaktimi i variablave.

7512

Vendosja e emrit të fletës dhe emrit të tabelës brenda variablave.

5839

Ruajtja vlerat e kërkimit dhe kolonat e kërkimit për të kërkuar.

4831

Kjo pjesë e kodit skanon nga fillimi deri në fund të nënshkrimit dhe nëse gjen përputhjen e ID-së së përcaktuar dhe Emrit në kolonat e kërkimit, atëherë ruani rezultatin dhe mbyllni të gjitha deklaratat. Gjithashtu, dilni nga përsëritja dhe shko te pjesa tjetër e kodit.

5254

Hedh rezultatin në MsgBox.

Lexo më shumë: Kërkimi dhe kthimi Shumë vlera të bashkuara në një qelizë në Excel

Përfundim

Për të përfunduar, ky artikull ju tregoi 3 metoda të ndryshme se si të kryeni INDEX MATCH bazuar në në disa kritere në Excel me makro VBA . Shpresoj se ky artikull ka qenë shumë i dobishëm për ju. Mos ngurroni të bëni çdo pyetje në lidhje me temën.

Hugh West është një trajner dhe analist me përvojë të lartë në Excel me mbi 10 vjet përvojë në industri. Ai ka një diplomë Bachelor në Kontabilitet dhe Financë dhe një Master në Administrim Biznesi. Hugh ka një pasion për mësimdhënien dhe ka zhvilluar një qasje unike të mësimdhënies që është e lehtë për t'u ndjekur dhe kuptuar. Njohuritë e tij eksperte të Excel-it kanë ndihmuar mijëra studentë dhe profesionistë në mbarë botën të përmirësojnë aftësitë e tyre dhe të shkëlqejnë në karrierën e tyre. Nëpërmjet blogut të tij, Hugh ndan njohuritë e tij me botën, duke ofruar mësime falas në Excel dhe trajnime në internet për të ndihmuar individët dhe bizneset të arrijnë potencialin e tyre të plotë.