Corrispondenza indice VBA - Come utilizzare la funzione di corrispondenza dell'indice in VBA (esempi)

Corrispondenza dell'indice in VBA

La funzione INDICE E CONFRONTA nella combinazione VBA è l'alternativa alla funzione CERCA.VERT in Excel. In VBA, non possiamo permetterci il lusso di utilizzare direttamente la funzione INDICE E CONFRONTA perché queste due funzioni non fanno parte delle funzioni integrate di VBA. Tuttavia, possiamo ancora usarli come parte della classe di funzioni del foglio di lavoro.

Come utilizzare Index Match in VBA? (Passo dopo passo)

Ad esempio, guarda i dati seguenti.

Nei dati precedenti, il valore di ricerca è il nome del dipartimento e, in base al nome del dipartimento, dobbiamo estrarre l'importo dello stipendio.

Ma il problema qui è che la colonna dei risultati è presente nella prima e la colonna del valore di ricerca è successivamente la colonna dei risultati. In questo caso, CERCA.VERT non può recuperare l'importo dello stipendio perché CERCA.VERT funziona solo da destra a sinistra, non da sinistra a destra.

In questi casi, dobbiamo utilizzare la formula di combinazione della funzione INDICE E CONFRONTA VBA. Eseguiamo il compito di trovare l'importo dello stipendio di ciascun dipartimento nel codice VBA.

Passaggio 1: inizia la routine del sole.

Passaggio 2: dichiarare la variabile Integer VBA.

Codice:

Sub INDEX_MATCH_Example1 () Dim k As Integer End Sub

Passaggio 3: ora apri For Next Loop in VBA.

Codice:

Sub INDEX_MATCH_Example1 () Dim k As Integer For k = 2 To 5 Next k End Sub

Passaggio 4: all'interno del ciclo VBA, eseguire la formula. Nella quinta colonna, dobbiamo applicare la formula, quindi il codice è CELLS (k, 5) .Value =

Codice:

Sub INDEX_MATCH_Example1 () Dim k As Integer For k = da 2 a 5 celle (k, 5) .Value = Next k End Sub

Passaggio 5: in quella cella, dobbiamo applicare la formula INDICE E CONFRONTA VBA. Come ho detto, dobbiamo usare queste funzioni come funzione del foglio di lavoro nella classe VBA, quindi apri la classe della funzione del foglio di lavoro.

Codice:

Sub INDEX_MATCH_Example1 () Dim k As Integer Per k = da 2 a 5 celle (k, 5) .Value = WorksheetFunction. Avanti k End Sub

Passaggio 6: dopo aver inserito la classe della funzione del foglio di lavoro, possiamo vedere tutte le funzioni del foglio di lavoro disponibili, quindi selezionare la funzione INDICE.

Codice:

Sub INDEX_MATCH_Example1 () Dim k As Integer For k = 2 To 5 Cells (k, 5) .Value = WorksheetFunction.Index (Next k End Sub

Passaggio 7: durante l'utilizzo della funzione del foglio di lavoro in VBA, è necessario essere assolutamente sicuri degli argomenti della formula. Il primo argomento è array, ovvero, da quale colonna abbiamo bisogno del risultato. In questo caso, abbiamo bisogno del risultato da A2 ad A5.

Codice:

Sub INDEX_MATCH_Example1 () Dim k As Integer For k = 2-5 Cells (k, 5) .Value = WorksheetFunction.Index (Range ("A2: A5"), Next k End Sub

Passaggio 8: il prossimo è da quale numero di riga abbiamo bisogno del risultato. Come abbiamo visto nell'esempio precedente, non possiamo fornire manualmente il numero di riga ogni volta. Quindi usa la funzione CONFRONTA.

Per utilizzare nuovamente la funzione MATCH, è necessario aprire la classe della funzione foglio di lavoro.

Codice:

Sub INDEX_MATCH_Example1 () Dim k As Integer For k = 2-5 Cells (k, 5) .Value = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Next k End Sub

Passaggio 9: il primo argomento della funzione CONFRONTA è il valore CERCA; qui, il nostro valore di ricerca sono i nomi dei dipartimenti; è lì nelle celle (2, 4).

Poiché ogni volta che il numero di riga deve cambiare, possiamo fornire la variabile "k" al posto del numero di riga manuale 2. Celle (k, 4).

Codice:

Sub INDEX_MATCH_Example1 () Dim k As Integer For k = 2-5 Cells (k, 5) .Value = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Cells (k, 5) .Value, Next k End Sub

Passaggio 10: Successivamente, dobbiamo menzionare l'intervallo di valori del reparto, ovvero Intervallo ("B2: B5").

Codice:

Sub INDEX_MATCH_Example1 () Dim k As Integer For k = 2-5 Cells (k, 5) .Value = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Cells (k, 5) .Value, Range ("B2: B5"),

Avanti k

End Sub

Passaggio 11: Successivamente, metti l'argomento come 0 perché abbiamo bisogno di una corrispondenza esatta e chiudi le parentesi.

Codice:

Sub INDEX_MATCH_Example1 () Dim k As Integer For k = 2-5 Cells (k, 5) .Value = WorksheetFunction.Index (Range ("A2: A5"), WorksheetFunction.Match (Cells (k, 4) .Value, Range ("B2: B5"), 0))

Avanti k

End Sub

Ok, abbiamo finito con la parte di codifica. Eseguiamo il codice per avere il risultato nella colonna 5.

Quindi, abbiamo ottenuto il risultato.

Possiamo usare questa formula come alternativa alla funzione CERCA.VERT.

Articoli interessanti...