Tugma sa VBA Index | Paano Gumamit ng Index Match Function sa VBA (Mga Halimbawa)

Tugma sa Index sa VBA

Ang pag-andar ng INDEX & MATCH sa kombinasyon ng VBA ay ang kahalili sa pagpapaandar ng VLOOKUP sa excel. Sa VBA hindi namin ginanahan ang paggamit ng INDEX & MATCH function na direkta dahil ang dalawang pagpapaandar na ito ay hindi bahagi ng mga built-in na function ng VBA. Gayunpaman, maaari pa rin naming magamit ang mga ito bilang bahagi ng klase ng pagpapaandar ng worksheet.

Paano Gumamit ng Index Match sa VBA? (Hakbang-hakbang)

Maaari mong i-download ang VBA Index Match Excel Template dito - VBA Index Match Excel Template

Halimbawa, tingnan ang data sa ibaba.

Sa data sa itaas, ang halaga ng paghahanap ay ang pangalan ng Kagawaran, at batay sa pangalan ng kagawaran na ito kailangan naming kunin ang halaga ng suweldo.

Ngunit ang problema dito ay ang haligi ng resulta ay naroroon sa una at ang haligi ng halaga ng paghahanap ay pagkatapos nito ang haligi ng resulta. Sa kasong ito, hindi maaaring makuha ng VLOOKUP ang halaga ng suweldo dahil ang VLOOKUP ay gumagana lamang mula kanan hanggang kaliwa hindi mula kaliwa hanggang kanan.

Sa mga kasong ito, kailangan naming gamitin ang kumbinasyon na pormula ng pagpapaandar ng VBA INDEX & MATCH. Gawin natin ang gawain ng paghahanap ng halaga ng suweldo ng bawat departamento sa VBA code.

Hakbang 1: Simulan ang gawain sa araw.

Hakbang 2: Ipahayag ang variable ng VBA Integer.

Code:

 Sub INDEX_MATCH_Example1 () Dim k Bilang Integer End Sub 

Hakbang 3: Ngayon buksan ang Para sa Susunod na Loop sa VBA.

Code:

 Sub INDEX_MATCH_Example1 () Dim k Bilang Integer Para sa k = 2 To 5 Susunod k End Sub 

Hakbang 4: Sa loob ng VBA loop ipatupad ang formula. Sa ika-5 haligi, kailangan naming ilapat ang formula, kaya ang code ay CELLS (k, 5). Halaga =

Code:

 Sub INDEX_MATCH_Example1 () Dim k Bilang Integer Para sa k = 2 To 5 Cells (k, 5) .Value = Susunod k End Sub 

Hakbang 5: Sa cell na iyon, kailangan naming ilapat ang pormula ng VBA INDEX & MATCH. Tulad ng sinabi ko na kailangan nating gamitin ang mga pagpapaandar na ito bilang Worksheet Function sa klase ng vba, kaya buksan ang klase ng pagpapaandar ng worksheet.

Code:

 Sub INDEX_MATCH_Example1 () Dim k Bilang Integer Para sa k = 2 To 5 Cells (k, 5) .Value = WorksheetFunction. Susunod k End Sub 

Hakbang 6: Matapos ipasok ang klase ng pag-andar ng worksheet maaari nating makita ang lahat ng magagamit na pag-andar ng worksheet kaya't piliin ang pagpapaandar ng INDEX.

Code:

 Sub INDEX_MATCH_Example1 () Dim k Bilang Integer Para sa k = 2 To 5 Cells (k, 5) .Value = WorksheetFunction.Index (Susunod k End Sub 

Hakbang 7: Habang gumagamit ng pag-andar ng worksheet sa VBA kailangan mong maging ganap na sigurado sa mga argumento ng formula. Ang unang argumento ay array ibig sabihin mula sa aling haligi na kailangan namin ang resulta, sa kasong ito, kailangan namin ang resulta mula A2 hanggang A5.

Code:

 Sub INDEX_MATCH_Example1 () Dim k Bilang Integer Para sa k = 2 To 5 Cells (k, 5) .Value = WorksheetFunction.Index (Saklaw ("A2: A5"), Susunod k End Sub 

Hakbang 8: Ang susunod ay mula sa aling numero ng hilera ang kailangan namin ng resulta. Tulad ng nakita natin sa naunang halimbawa hindi namin manu-manong maibibigay ang numero ng hilera sa bawat oras. Kaya gamitin ang pagpapaandar ng MATCH.

Upang magamit muli ang pagpapaandar ng MATCH, kailangan naming buksan ang klase ng Worksheet Function.

Code:

 Sub INDEX_MATCH_Example1 () Dim k Bilang Integer Para sa k = 2 To 5 Cells (k, 5) .Value = WorksheetFunction.Index (Saklaw ("A2: A5"), WorksheetFunction.Match (Susunod k End Sub 

Hakbang 9: Ang unang argumento ng mga pag-andar ng MATCH ay ang halaga ng LOOKUP, narito ang aming halaga ng paghahanap ay mga pangalan ng kagawaran, naroroon ito sa mga cell (2, 4).

Dahil sa bawat oras na numero ng hilera ay kailangang magbago maaari naming ibigay ang variable na "k" kapalit ng manu-manong numero ng hilera 2. Mga cell (k, 4). Halaga

Code:

 Sub INDEX_MATCH_Example1 () Dim k Bilang Integer Para sa k = 2 To 5 Cells (k, 5) .Value = WorksheetFunction.Index (Saklaw ("A2: A5"), WorksheetFunction.Match (Cells (k, 5) .Value, Susunod k Wakas Sub 

Hakbang 10: Susunod na kailangan naming banggitin ang saklaw ng halaga ng departamento hal. Saklaw ("B2: B5").

Code:

 Sub INDEX_MATCH_Example1 () Dim k Bilang Integer Para sa k = 2 To 5 Cells (k, 5) .Value = WorksheetFunction.Index (Saklaw ("A2: A5"), WorksheetFunction.Match (Cells (k, 5) .Value, Range ("B2: B5"), 

Susunod k

Wakas Sub

Hakbang 11: Susunod na ilagay ang argumento bilang 0 dahil kailangan namin ng eksaktong tugma at isara ang mga braket.

Code:

 Sub INDEX_MATCH_Example1 () Dim k Bilang Integer Para sa k = 2 To 5 Cells (k, 5) .Value = WorksheetFunction.Index (Saklaw ("A2: A5"), WorksheetFunction.Match (Cells (k, 4) .Value, Range ("B2: B5"), 0)) 

Susunod k

Wakas Sub

Ok, tapos na kami sa bahagi ng pag-coding. Patakbuhin natin ang code upang magresulta sa haligi 5.

Kaya, nakuha namin ang resulta.

Maaari naming gamitin ang formula na ito bilang isang kahalili sa pagpapaandar ng VLOOKUP.