Inicio > Microsoft Excel > valedor > Último dato

Último dato

Experto:
Usuario:
Fecha: 04/12/2008
Valoración: (5,00 sobre 5) Categoría: Microsoft Excel
04/12/2008
skauter, usuario preguntando en Microsoft Excel
Usuario
Hola Mauricio.
He visto una de tus respuestas y creo que podría serme de utilidad, pero con algún retoque.
¿Cómo podría hacer para adaptar esa fórmula =DESREF(A1,CONTARA(A:A)-1,0) siempre y cuando el dato introducido comienze por "AA" y si empieza por otro dato que prevalezca el último dato introducido cuyo comienzo hubiera sido "AA"?
Un saludo y gracias anticipadas.
04/12/2008
skauter, experto respondiendo en Microsoft Excel
Experto
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...
04/12/2008
skauter, usuario preguntando en Microsoft Excel
Usuario
Gracias Mauricio.
Ahora mismo te solicito ese ejemplo.
Enlaces patrocinados