In questo articolo, imparerai come utilizzare la funzione INDICE E CONFRONTA in VBA per abbinare 2 criteri in Excel utilizzando il codice VBA.

Per ottenere l’output utilizzeremo una combinazione di funzioni OFFSET e COUNTA per creare l’elenco di Name Manager.

Facci capire con un esempio:

  • Abbiamo una scheda Rapporto dello studente con nome, oggetto e marchio dello studente.

img1

  • Vogliamo scoprire i voti per il nome e il soggetto dello studente inseriti nelle celle F2 e G2

img2

  • Per calcolare i segni utilizzando il codice VBA, abbiamo utilizzato la funzione OFFSET per creare intervalli denominati per ciascuna categoria.

  • Premi CTRL + F3 per aprire la finestra Gestione nomi (gli elenchi sono già creati)

img3

  • Utilizzo della funzione Incolla nomi nella scheda Formule; otterremo tutto l’elenco degli intervalli di nomi definiti nelle celle

img4

  • Utilizzo della funzione Incolla nomi nella scheda Formule; otterremo tutto l’elenco degli intervalli di nomi definiti nelle celle

img5

  • Fare clic su Paste List

img7

Dobbiamo seguire i passaggi seguenti per avviare l’editor VB. Fare clic sulla scheda Sviluppatore. Dal gruppo Codice selezionare Visual Basic

img8

  • Fare clic su Inserisci quindi su Modulo

img9

Questo creerà un nuovo modulo.

Immettere il codice seguente in Module Sub IndexMatch ()

myName = [F2]

mySubject = [G2]

mark = Application.WorksheetFunction.Index ([StMark], _ Application.WorksheetFunction.Match (myName, ([StName]), 0) + _ Application.WorksheetFunction.Match (mySubject, [StSubject], 0) – 1)

[H2] = contrassegna End Sub

img9

  • Premere il tasto di scelta rapida ALT + F8 per aprire la finestra Macro e quindi selezionare la macro.

img10

  • In alternativa puoi premere F5 per eseguire il codice nella schermata VBA.

  • Dopo aver eseguito la macro otterremo l’output nella cella H2

img11

È così che possiamo ottenere risultati utilizzando la funzione del foglio di lavoro Index Match in VBA.