VBA indeksa spēle - Kā izmantot indeksu atbilstības funkciju VBA (piemēri)

Satura rādītājs

Indeksa mačs VBA

INDEX & MATCH funkcija VBA kombinācijā ir alternatīva funkcijai VLOOKUP programmā Excel. VBA mums nav greznība tieši izmantot funkciju INDEX & MATCH, jo šīs divas funkcijas nav VBA iebūvēto funkciju sastāvdaļa. Tomēr mēs joprojām varam tos izmantot kā daļu no darblapas funkciju klases.

Kā izmantot indeksu atbilstību VBA? (Soli pa solim)

Piemēram, apskatiet tālāk minētos datus.

Iepriekš minētajos datos uzmeklēšanas vērtība ir departamenta nosaukums, un, pamatojoties uz šo nodaļas nosaukumu, mums jāizņem algas summa.

Bet šeit problēma ir rezultātu kolonna, kas atrodas pirmajā, un uzmeklēšanas vērtības kolonna ir rezultātu kolonna. Šajā gadījumā VLOOKUP nevar iegūt algas summu, jo VLOOKUP darbojas tikai no labās uz kreiso pusi, nevis no kreisās uz labo.

Šādos gadījumos mums jāizmanto funkcijas VBA INDEX & MATCH kombinācijas formula. Veiksim uzdevumu atrast katras nodaļas algas apmēru VBA kodā.

1. solis: sāciet sauļoties.

2. darbība: paziņojiet mainīgo VBA Integer.

Kods:

INDEX_MATCH_Piemērs1 () Apakšdimensija k Integer End Sub

3. solis: Tagad VBA atveriet nākamo cilpu.

Kods:

Apakšindekss INDEX_MATCH_Piemērs1 () Dim k kā skaitlis k = 2 līdz 5 Nākamais k Beigas Sub

4. solis: izpildiet formulu VBA cilpas iekšpusē. In 5 th kolonnā, mums ir nepieciešams, lai piemērotu formulu, tā kods ir CELLS (k, 5) .Value =

Kods:

INDEX_MATCH_Piemērs1 () Dim k kā skaitlis k = 2 līdz 5 šūnas (k, 5). Vērtība = Nākamais k Beigas Sub

5. solis: Šajā šūnā mums jāpielieto VBA INDEX & MATCH formula. Kā es teicu, mums šīs funkcijas VBA klasē jāizmanto kā darblapas funkcija, tāpēc atveriet darblapas funkciju klasi.

Kods:

Apakšindekss INDEX_MATCH_Example1 () Dim k kā Integer k = 2 līdz 5 šūnas (k, 5). Vērtība = WorksheetFunction. Nākamais k Beigu apakšsadaļa

6. solis: Pēc darblapas funkciju klases ievadīšanas mēs varam redzēt visas pieejamās darblapas funkcijas, tāpēc atlasiet funkciju INDEX.

Kods:

Apakšindekss INDEX_MATCH_Piemērs1 () Dim k kā skaitlis k = 2 līdz 5 šūnas (k, 5). Vērtība = WorksheetFunction.Index (Nākamais k beigu apakšsadaļa

7. darbība: izmantojot VBA darblapas funkciju, jums ir jābūt pilnīgi pārliecinātiem par formulas argumentiem. Pirmais arguments ir masīvs, ti, no kuras kolonnas mums ir nepieciešams rezultāts. Šajā gadījumā mums ir nepieciešams rezultāts no A2 līdz A5.

Kods:

Apakšindekss INDEX_MATCH_Example1 () Dim k kā skaitlis k = 2 līdz 5 šūnas (k, 5). Vērtība = WorksheetFunction.Index (diapazons ("A2: A5"), nākamais k beigu apakšsadaļa

8. solis: Nākamais ir rezultāts, no kura rindas numura mums ir nepieciešams rezultāts. Kā redzējām iepriekšējā piemērā, mēs katru reizi nevaram manuāli piegādāt rindas numuru. Tāpēc izmantojiet funkciju MATCH.

Lai vēlreiz izmantotu funkciju MATCH, mums jāatver Worksheet Function klase.

Kods:

INDEX_MATCH_Example1 () Dim k kā skaitlis k = 2 līdz 5 šūnas (k, 5). Vērtība = WorksheetFunction.Index (diapazons ("A2: A5"), WorksheetFunction.Match (Nākamais k beigu apakšsadaļa)

9. solis: MATCH funkcijas pirmais arguments ir LOOKUP vērtība; šeit mūsu uzmeklēšanas vērtība ir nodaļu nosaukumi; tas ir tur šūnās (2, 4).

Tā kā katru reizi, kad rindas numuram ir jāmainās, manuālās 2. rindas vietā mēs varam piegādāt mainīgo “k”. Šūnas (k, 4).

Kods:

INDEX_MATCH_Piemērs1 () Dim k kā skaitlis k = 2 līdz 5 šūnas (k, 5). Vērtība = WorksheetFunction.Index (diapazons ("A2: A5"), WorksheetFunction.Match (šūnas (k, 5). Vērtība, nākamais) k Beigu apakšdaļa

10. solis: Tālāk mums jāpiemin nodaļas vērtību diapazons, ti, diapazons (“B2: B5”).

Kods:

INDEX_MATCH_Piemērs1 () Dim k kā skaitlis k = 2 līdz 5 šūnas (k, 5). Vērtība = WorksheetFunction.Index (diapazons ("A2: A5"), WorksheetFunction.Match (šūnas (k, 5). Vērtība, diapazons) ("B2: B5"),

Nākamais k

Beigu apakšnodaļa

11. solis: Pēc tam ievietojiet argumentu kā 0, jo mums ir nepieciešama precīza atbilstība un aizveriet iekavas.

Kods:

INDEX_MATCH_Example1 () Dim k kā skaitlis k = 2 līdz 5 šūnas (k, 5). Vērtība = WorksheetFunction.Index (diapazons ("A2: A5"), WorksheetFunction.Match (šūnas (k, 4). Vērtība, diapazons) ("B2: B5"), 0))

Nākamais k

Beigu apakšnodaļa

Labi, mēs esam pabeiguši ar kodēšanas daļu. Palaidīsim kodu, lai rezultāts būtu 5. kolonnā.

Tātad, mēs saņēmām rezultātu.

Mēs varam izmantot šo formulu kā alternatīvu funkcijai VLOOKUP.

Interesanti raksti...