VBA Application.Match - Guida passo passo con esempi

Applicazione Excel VBA.Match

Una delle cose migliori di VBA è che ha la sua funzione e ci permetterà anche di accedere a tutte le funzioni del foglio di lavoro nella classe "Funzione foglio di lavoro". È necessario aver già utilizzato la funzione MATCH come funzione del foglio di lavoro, ma non è una funzione VBA, quindi è necessario accedere alla classe della funzione del foglio di lavoro. In questo articolo, ti mostreremo come utilizzare la funzione MATCH in VBA utilizzando il metodo Application.

Riepilogo rapido della funzione MATCH

MATCH è una funzione di ricerca che cerca la posizione del valore di ricerca nella matrice di ricerca menzionata. Ad esempio, guarda l'immagine sottostante dei dati.

Nei dati di cui sopra, abbiamo mesi da A2 ad A6 e se vogliamo sapere in quale punto si verifica il mese "Mar", allora possiamo usare la funzione CONFRONTA.

Di seguito è riportata la sintassi della funzione CONFRONTA.

MATCH (valore di ricerca, matrice di ricerca, (tipo di corrispondenza))
  • Valore di ricerca: per quale valore stiamo cercando la posizione nella matrice di ricerca.
  • Lookup Array: in quale array stiamo cercando la posizione del valore di ricerca.
  • (Tipo di corrispondenza): per questo, possiamo fornire tre argomenti.
  1. 1 = minore di
  2. 0 = corrispondenza esatta
  3. -1 = maggiore di

La maggior parte delle volte usiamo solo "0 Corrispondenza esatta".

Come utilizzare la funzione Application.Match in VBA?

Esempio 1

Guarda i dati sottostanti in Excel.

Dai dati precedenti, dobbiamo trovare la posizione del mese "Mar" nell'intervallo di celle da A2 a A6. Dal momento che abbiamo bisogno di risultati nelle celle D2 immediatamente, avviare il codice come intervallo ("D2"). Valore =.

Per ottenere il valore nella cella D2, dobbiamo utilizzare la funzione MATCH del foglio di lavoro, quindi per accedervi prima, dobbiamo accedere all'oggetto APPLICAZIONE e quindi all'oggetto FUNZIONE FOGLIO DI LAVORO.

Immettere punto per visualizzare un elenco di funzioni del foglio di lavoro.

Scegli "Corrispondenza" dall'elenco.

Uno dei problemi in VBA durante l'utilizzo delle funzioni del foglio di lavoro è che non vediamo la sintassi esatta come vediamo con la funzione del foglio di lavoro. Questo è uno dei motivi per cui abbiamo spiegato la sintassi solo all'inizio.

Quindi, il primo argomento è il valore di ricerca, cioè per quale valore stiamo cercando di trovare la posizione. In questo caso, stiamo cercando di trovare il posto per "Mar" che si trova nella cella C2, quindi fornire il riferimento di cella.

L'argomento successivo è l' array di ricerca, ovvero in quale intervallo stiamo cercando la posizione di un valore di ricerca , per queste celle di fornitura da A2 ad A6.

L'ultimo argomento sarà una corrispondenza esatta, quindi fornisci 0.

Codice:

Sub Match_Example1 () Range ("D2"). Value = Application.WorksheetFunction.Match (Range ("C2"). Value, Range ("A2: A6"), 0) End Sub

Ok, abbiamo finito con la formula.

Esegui il codice tramite il tasto F5 e guarda cosa otteniamo.

Così abbiamo ottenuto il risultato come 3 perché il valore “Mar” è nel posto del 3 ° posizione nella gamma A2 A6.

Questa funzione MATCH può fornire la posizione del valore di ricerca. Tuttavia, la funzione CONFRONTA è ampiamente utilizzata con la funzione CERCA.VERT per fornire il numero di indice della colonna in base all'intestazione della colonna.

Esempio n. 2

Vedremo ora come utilizzare MATCH come funzione di supporto per la funzione CERCA.VERT.

Guarda i dati sottostanti.

Nella tabella sopra, stiamo esaminando le vendite del mese di febbraio del 2018, quindi è necessario utilizzare la funzione CERCA.VERT. CERCA.VERT è anche una funzione del foglio di lavoro, quindi accedi a questo come abbiamo avuto accesso alla funzione CONFRONTA.

Il valore di ricerca sarà la cella G2, quindi fornire l'indirizzo della cella.

Codice:

Sub Match_Example2() Range("H2").Value = Application.WorksheetFunction.VLookup(Range("G2").Value, End Sub

Table Array will be from A2 to D6.

Code:

Sub Match_Example2() Range("H2").Value = Application.WorksheetFunction.VLookup(Range("G2").Value,Range("A2:D6"), End Sub

Now we need to provide from which column of the table array we are looking for the result, so this will be from the 3rd column. Instead of supplying the column number as 3, let’s use the MATCH function.

Code:

Sub Match_Example2() Range("H2").Value = Application.WorksheetFunction.VLookup(Range("G2").Value, Range("A2:D6"), Application.WorksheetFunction.Match(Range("H1").Value, Range("A1:D1"), 0), 0) End Sub

Quindi la funzione CONFRONTA fornisce il numero di colonna dall'intervallo A1 a D1 per il mese "Febbraio". Eseguiamo il codice e vediamo come ottiene automaticamente i numeri di colonna.

Ecco fatto, abbiamo un risultato dalla colonna numero 2 grazie alla fornitura automatica del numero di colonna dalla funzione CONFRONTA.

Cose da ricordare

  • La funzione MATCH cerca la posizione del valore di ricerca nella tabella di array selezionata.
  • La funzione CONFRONTA viene utilizzata principalmente con la funzione CERCA.VERT per fornire automaticamente il numero di indice della colonna utilizzando l'intestazione della colonna.
  • La funzione CONFRONTA è disponibile come funzione del foglio di lavoro in VBA.

Articoli interessanti...