Estensione di CERCA.VERT: ricerca dal fondo e non dall'inzio della lista


Una domanda di un lettore mi ha incuriosito. E' possibile fare eseguire CERCA.VERT dal fondo verso l'altro invece che dall'alto verso il basso? Bene, purtoppo non è possibile. Bisogna sviluppare un'alternativa valida al CERCA.VERT. La macro qui presentata permette appunto di scorrere la lista "dal fondo" verso l'inizio, al contrario insomma di ciò che fa il CERCA.VERT:

____________________________________________

 

Function ReverseLookup(Dove As Range, Valore As Variant, colonna As Long) As Variant
Dim CellaRicerca As Range
Dim Indice As Long
Dim CCorrente As Range
Dim Trovato As Boolean
Dim CCH As Integer
Dim CCW As Integer

Contatore = 0
Trovato = False
CCH = Dove.Columns(Dove.Columns.Count).Column - Dove.Column + 1
CCW = Dove.Rows(Dove.Rows.Count).Row - Dove.Row + 1
If colonna > CCH Then
    ReverseLookup = CVErr(xlErrNA)
Else
    Indice = Dove.Rows(Dove.Rows.Count).Row
    While Indice > Dove.Row And Not Trovato
        If Cells(Indice, Dove.Column).Value = Valore Then
             Trovato = True
        End If
    Indice = Indice - 1
    Wend
End If
If Trovato Then
      ReverseLookup = Cells(Indice + 1, Dove.Column + colonna - 1).Value
Else
      ReverseLookup = CVErr(xlErrNA)
End If
End Function

____________________________________________

 

Per poter utilizzare la funzione é necessario inserire nel foglio Excel:

 

=ReverseLookup(A5:B14;"a";2)

 

dove:

  • A5:B14 indica il range entro cui cercare

  • "a" indica cosa cercare

  • 2 indica su quale colonna dell'area di ricerca verso destra, una volta trovata l'occorrenza desiderata, è necessario spostarsi per restituire il valore richiesto (se si inserisce un valore negativo significa spostarsi a sinistra).  Questo parametro ha le stessa logice del corrispondente parametro del CERCA.VERT

Per avere il codice di questa seconda funzione dovete scaricare il file allegato.


Licenza Creative Commons

Questa opera è pubblicata sotto una Licenza Creative Commons.


Scarica il File di Esempio


iscriviti cancellati



Commenti a questa pagina:   Inviate una mail