La funzione incorporata VLOOKUP è una delle funzioni più potenti in Excel. Ma presenta uno svantaggio significativo: trova solo la prima occorrenza del valore desiderato nella tabella e solo nella colonna all'estrema destra. Ma se ti serve il 2°, il 3° e non l'ultimo?
Diciamo di avere una tabella di prestiti elaborati come questa:
Dobbiamo sapere, ad esempio, qual è stato l'importo del terzo prestito concesso a Mike o quando John ha stipulato il suo secondo accordo. Funzione incorporata VLOOKUP sa come cercare solo la prima occorrenza di un nome nella tabella e non ci aiuterà.
Scriviamo la nostra funzione, che cercherà non solo la prima, ma anche ogni successiva (ennesima) occorrenza. Chiamiamolo, ad esempio, VLOOKUP2.
Apri il menù Servizio - Macro - Editor Visual Basic , inserire il nuovo modulo (menù Insert - Module ) e copia lì il testo di questa funzione:
Function VLOOKUP2(Table As Range, _ SearchColumnNum As Integer, _ SearchValue As Variant, _ N As Integer, _ ResultColumnNum As Integer) 'moonexcel.com.ua Dim i As Integer Dim iCount As Integer For i = 1 To Table.Rows.Count If Table.Cells(i, SearchColumnNum) = SearchValue Then iCount = iCount + 1 End If If iCount = N Then VLOOKUP2 = Table.Cells(i, ResultColumnNum) Exit For End If Next i End Function
Chiudi l'editor Visual Basic e torna a Excel.
Ora in Procedure guidate delle funzioni nella categoria Definito dall'utente puoi trovare la nostra funzione VLOOKUP2 e usarla. La sintassi della funzione è la seguente:
=VLOOKUP2( tavolo ; column_number_where_we_search ; valore_cercato; numero_entrata ; numero_colonna_da_quale_prendiamo_il_valore )
Cioè per poter trovare l'importo del terzo prestito concesso a Mike, bisognerà inserire:
=VLOOKUP2(A2:A19; 1; "Mike"; 3; 4)