|
Hola, hacer esto con formulas de Excel, seria un poco engorroso, bastante engorroso, toma en cuenta que pides que la formula evalue el valor de la celda y tome una desicion, lo cual no es problema si es una, dos o tres, pero si son mas, se complica bastante, creo que te funcionara mucho mejor una funcion personalizada, esta funcion hace lo que quieres, o lo mas aproximado a ello...
Option Explicit
Public Function UltimoValor(ByVal Rango As Range, Optional Criterio As String) As Variant
Dim UltimaFila As Long
Dim PrimerFila As Long
Dim co1 As Long
PrimerFila = Rango.Cells(1, 1).Row
If Rango.Cells(Rango.Rows.Count, 1).Value = "" Then
UltimaFila = Rango.Cells(Rango.Rows.Count, 1).End(xlUp).Row
Else
UltimaFila = Rango.Cells(Rango.Rows.Count, 1).Row
End If
If UltimaFila >= PrimerFila Then
If Criterio = "" Then
UltimoValor = Rango.Cells(UltimaFila, 1).Value
Else
For co1 = UltimaFila To PrimerFila Step -1
If Rango.Cells(co1, 1).Value Like Criterio Then
UltimoValor = Rango.Cells(co1, 1).Value
Exit For
End If
Next co1
If IsEmpty(UltimoValor) Then
UltimoValor = "Sin datos"
End If
End If
Else
UltimoValor = "Sin datos"
End If
End Function
Como sabes, esta funcion la tienes que copiar en un modulo de codigo, si no sabes como hacerlo puedes leer el siguiente articulo de mi página...
http://www.vbalym.netfirms.com/excel/exfun1.html
también puedes solicitar el ejemplo que hice a mi correo, la funcion se usa como cualquier otra de Excel, por ejemplo...
=UltimoValor(A1:A53,"AA*")
aqui te devolvera el ultimo valor del rango A1:A53 que "empiece" con AA, fijate en el asterisco, si no lo pones, SOLO te devolvera la celda que UNICAMENTE tenga AA, si no encuentra una celda con el criterio de devolvera el texto "Sin datos", aunque tu le pases un rango como A1:H100, siempre te tomara solo la primer columna del rango, espero te sirva, saludos...
Mauricio
mbs@inbox.net
P.D. Si esto resuelve tu pregunta, te agradecere si la finalizas, sino, vuelve a preguntar, gracias...
|