| 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.
|