Miglioramento della funzione CERCA.VERT

Contenuti

Come imballare correttamente un paracadute?

Beneficio. Edizione 2, rivista.

Supponiamo di avere la seguente tabella degli ordini:

Miglioramento della funzione CERCA.VERT

Dobbiamo sapere, ad esempio, qual è stato l'importo del terzo ordine di Ivanov o quando Petrov ha eseguito il suo secondo accordo. La funzione VLOOKUP integrata può cercare solo la prima occorrenza del cognome nella tabella e non ci aiuterà. Domande come "Chi era il gestore dell'ordine numero 10256?" rimarrà anche senza risposta, tk. il VLOOKUP integrato non è in grado di restituire valori dalle colonne a sinistra di quella di ricerca.

Entrambi questi problemi vengono risolti in un colpo solo: scriviamo la nostra funzione che cercherà non solo la prima, ma, nel caso generale, l'ennesima occorrenza. Inoltre, sarà in grado di cercare e produrre risultati in qualsiasi colonna. Chiamiamolo, diciamo, VLOOKUP2. 

Aprire Visual Basic Editor premendo ALT+F11 o selezionando dal menu Servizio – Macro – Editor di Visual Basic (Strumenti — Macro — Editor di Visual Basic), inserire un nuovo modulo (menu Inserisci – Modulo) e copia lì il testo di questa funzione:

Funzione VLOOKUP2(Table As Variant, SearchColumnNum As Long, SearchValue As Variant, _ N As Long, ResultColumnNum As Long) Dim i As Long, iCount As Long Seleziona Case TypeName (Table) Case "Range" 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 Case "Variant()" For i = 1 A UBound(Table) If Table(i, SearchColumnNum) = SearchValue Then iCount = iCount + 1 Se iCount = N Then VLOOKUP2 = Table(i, ResultColumnNum) Esci per fine se successivo i End Seleziona fine funzione  

Chiudere l'editor di Visual Basic e tornare a Excel.

Adesso attraverso Inserisci – Funzione (Inserisci — Funzione) nella categoria Definito dall'utente (Definito dall'utente) puoi trovare la nostra funzione VLOOKUP2 e usarla. La sintassi della funzione è la seguente:

=VLOOKUP2(tabella; numero_di_colonna_dove_cerchiamo; valore_ricerca; N; numero_di_colonna_da_a_ottenere_valore)

Ora le limitazioni della funzione standard non sono un ostacolo per noi:

Miglioramento della funzione CERCA.VERT

PS Un ringraziamento speciale a The_Prist per aver migliorato la funzione in modo che possa cercare nei libri chiusi.

  • Trovare e sostituire i dati da una tabella all'altra utilizzando la funzione CERCA.VERT
  • "VLOOKUP sinistro" utilizzando le funzioni INDEX e MATCH

 

Lascia un Commento