Talaan ng nilalaman
Kapag mayroon kaming malaking halaga ng data, kung minsan ay mahirap kunin ang anumang partikular na data mula sa dataset. Kasama ng INDEX at MATCH na function ng Excel ay maaaring makuha ang anumang uri ng data kahit na sa isang malaking dataset. Ang pagpapatupad ng VBA ay ang pinakamabisa, pinakamabilis, at pinakaligtas na paraan upang magpatakbo ng anumang operasyon sa Excel. Sa artikulong ito, ipapakita namin sa iyo ang 3 iba't ibang paraan kung paano isagawa ang INDEX MATCH batay sa maraming pamantayan sa Excel gamit ang VBA macro .
I-download Workbook
Maaari mong i-download ang libreng practice Excel workbook mula dito.
VBA INDEX MATCH Batay sa Maramihang Pamantayan.xlsm
3 Mga Paraan na may VBA INDEX MATCH Batay sa Maramihang Pamantayan sa Excel
Sa mga sumusunod na seksyon, ipapakita namin sa iyo kung paano isagawa ang INDEX MATCH batay sa maraming pamantayan para sa isang hanay , para sa isang partikular na seleksyon at para sa isang talahanayan sa Excel na may VBA .
Sa itaas mayroon kaming dataset na susundan ng artikulong ito. Mayroon kaming Pangalan ng Mag-aaral , Student ID, at Mga Marka ng Pagsusulit ng bawat mag-aaral sa dataset. Kukunin namin ang isang partikular na resulta na naninirahan sa isang column batay sa mga kundisyon mula sa iba pang dalawang column.
Mga Pamantayan – 1: I-embed ang VBA na may INDEX MATCH para sa Maramihang (Dalawang) Dimensional Lookup sa Excel
Isaalang-alang ang sumusunod na larawan. Nag-imbak kami ng pangalan ng isang partikular na estudyante na " Edge" sa CellG4 ; at ang column na hahanapin natin sa Resulta sa, Mga Marka ng Pagsusulit , ay naka-store sa Cell G5 . Maghahanap kami sa column na Mga Marka ng Pagsusulit at iimbak ang Mga Marka na nakuha ni " Edge" sa Cell G6 .
Ang mga hakbang sa paghahanap ay nagreresulta sa isang two-dimensional array na may INDEX at MATCH sa Excel na may VBA ay ibinigay sa ibaba.
Mga Hakbang:
- Sa simula, pindutin ang Alt + F11 sa iyong keyboard o pumunta sa ang tab Developer -> Visual Basic para buksan ang Visual Basic Editor .
- Susunod, sa pop-up code window, mula sa menu bar, i-click ang Ipasok -> Module .
- Pagkatapos, kopyahin ang sumusunod na code at i-paste ito sa code window.
7670
Handa nang tumakbo ang iyong code.
- Ngayon, pindutin ang F5 sa iyong keyboard o mula sa menu bar piliin ang Run -> Patakbuhin ang Sub/UserForm . Maaari mo ring i-click lang ang icon ng maliit na Run sa sub-menu bar upang patakbuhin ang macro.
Pagkatapos ng code execution, tingnan ang gif sa ibaba para makita ang resulta.
Bilang resulta, ang Mga Marka na nakuha ng “ Edge” sa ang pagsusulit, 67 , ay kinukuha sa Cell G7 .
VBA Code Explanation
4165
Pagtukoy sa variable ng Worksheet.
7112
I-imbak ang pangalan ng worksheet. Ang pangalan ng aming sheet ay "Two Dimension", dapat mong ibigayang pangalan ayon sa iyong spreadsheet.
2697
Pinipili ng piraso ng code ang hanay na C5:D14 bilang hanay ng paghahanap. Pagkatapos ay hanapin ang tugma na nakaimbak sa cell G4 sa range B5:B14 at hanapin ang tugma na naka-store sa cell G5 sa range C4:D4 at ipasa ang resulta sa cell G6 .
Magbasa Nang Higit Pa: Paano Gamitin ang INDEX MATCH na may Maramihang Pamantayan para sa Hanay ng Petsa
Mga Pamantayan – 2: Ilapat ang Macro upang Maghanap ng MATCH Value sa pamamagitan ng INDEX na may User-Defined Function (UDF)
Maaari kang mag-extract ng mga katugmang value mula sa isang dataset na may function na tinukoy ng gumagamit (UDF) . Mula sa sumusunod na larawan, ang gagawin natin ay, ipapasa natin ang Student ID at Mga Marka ng Pagsusulit ng isang partikular na mag-aaral at itatapon sa atin ng function ang Pangalan ng partikular na mag-aaral na iyon.
Tingnan natin kung paano makamit iyon para sa Pangalan ng Mag-aaral na “Finn” na may VBA .
Mga Hakbang:
- Tulad ng ipinakita dati, buksan ang Visual Basic Editor mula sa tab na Developer at Maglagay ng ng Module sa window ng code.
- Pagkatapos, sa window ng code, kopyahin ang sumusunod na code at i-paste ito.
6963
- Huwag patakbuhin ang code na ito, i-save ito.
- Ngayon, bumalik sa worksheet ng interes. Pumili ng anumang cell na gusto mong iimbak ang resulta. Sa aming kaso, ito ay Cell F5 .
- Sa cell na iyon, isulat ang UDF mokakagawa lang sa code ( MatchByIndex ) at ipasa ang Student ID at Exam Marks ng partikular na mag-aaral sa loob ng mga panaklong ng function.
Bilang sinusubukan naming kunin ang pangalang " Finn" mula sa kanyang ID (105) at Marks (84) , kaya para sa aming kaso ang formula ay nagiging,
=MatchByIndex(105,84)
- Pagkatapos, pindutin ang Enter .
Tingnan ang sumusunod na larawan.
Sa Cell F5 , matagumpay naming nakuha ang pangalang “ Finn” sa pamamagitan lamang ng pagpasa ng kanyang ID at Marks sa loob ng function na ginawa namin sa VBA code.
VBA Code Explanation
4553
Paggawa ng bagong function at pagpasa ng mga variable sa loob nito. Maaari mong tukuyin ang anumang pangalan sa function.
2879
Ang aming row ay nagsisimula sa row number 4. Dapat mong ibigay ang row number kung saan nagsisimula ang iyong dataset.
1634
Pagtukoy sa mga variable.
2655
Una, tukuyin ang worksheet na gagamitin. Ang pangalan ng aming sheet ay "UDF", dapat mong ibigay ang pangalan ayon sa iyong spreadsheet. Pagkatapos ay simulan ang paghahanap sa hanay na C:D mula sa unang row na tinukoy namin hanggang sa huling row.
2485
Simulan ang pag-ulit mula sa unang row hanggang sa huling row. Kung ang unang value na ipapasa natin sa loob ng function ay nasa loob ng column na C at kung ang pangalawang value na ipapasa natin sa loob ng function ay nasa loob ng column na D , babalik ito angtugma mula sa column na B . Kung hindi, lumabas sa function, tapusin ang lahat ng mga pahayag, at pumunta sa susunod na linya.
1121
Kung hindi natupad ang nakaraang kundisyon habang isinasagawa, ibabalik ang mensaheng "Hindi Nahanap ang Data" at ang aalis ang code sa function.
Magbasa Nang Higit Pa: INDEX-MATCH na may Maramihang Pamantayan para sa Bahagyang Teksto sa Excel (2 Paraan)
Pamantayan – 3: Ipatupad ang VBA para Magbalik ng MATCH Value mula sa isang Talahanayan na may Maramihang Data sa Excel
Sa seksyong ito, matututuhan natin kung paano magbalik ng katugmang halaga ng mga index mula sa isang talahanayan sa MsgBox sa VBA Excel.
Tingnan natin kung paano kunin ang Mga Marka mula sa talahanayang ipinapakita sa aming dataset ( T able Name: TableMatch ) ng isang partikular na mag-aaral sa pamamagitan ng pagbibigay ng Pangalan at ang ID sa loob ng code. Para sa aming kaso, ang Pangalan at ang ID ay magiging Finn at 105 ayon sa pagkakabanggit.
Mga Hakbang :
- Una, buksan ang Visual Basic Editor mula sa tab na Developer at Ipasok ang isang Module sa window ng code.
- Pagkatapos, kopyahin ang sumusunod na code at i-paste ito sa window ng code.
3232
Ang iyong code ay handa na ngayong tumakbo.
- Mamaya, Patakbuhin ang code na ito at tingnan ang sumusunod na larawan upang makita kung ano ang nangyari bilang resulta.
Tulad ng nakikita mo mula sa larawan sa itaas, mayroong isang Microsoft Excel pop-up message box na nagpapakita sa iyo ng Mark: 84 ng ID: 105 at Pangalan: Finn na ibinigay namin sa loob ng code.
Paliwanag ng VBA Code
1781
Pagtukoy sa mga variable.
9262
Pagtatakda ng pangalan ng sheet at pangalan ng talahanayan sa loob ng mga variable.
6299
Pag-iimbak ang mga halaga ng paghahanap at mga hanay ng paghahanap na hahanapin.
5215
Ang piraso ng code na ito ay nag-scan mula sa simula hanggang sa dulo ng subscript at kung nakita nito ang tugma ng tinukoy na ID at ang Pangalan sa mga hanay ng paghahanap pagkatapos iimbak ang resulta at isara ang lahat ng mga pahayag. Gayundin, lumabas sa pag-ulit at pumunta sa susunod na bahagi ng code.
4815
Ibinabalik ang resulta sa MsgBox.
Magbasa Nang Higit Pa: Paghahanap at Pagbabalik Maramihang Mga Halaga na Pinagsama-sama sa Isang Cell sa Excel
Konklusyon
Upang tapusin, ipinakita sa iyo ng artikulong ito ang 3 iba't ibang paraan kung paano isagawa ang INDEX MATCH based sa maraming pamantayan sa Excel na may VBA macro . Umaasa ako na ang artikulong ito ay naging lubhang kapaki-pakinabang sa iyo. Huwag mag-atubiling magtanong ng anumang mga katanungan tungkol sa paksa.