Devolver dato de primera casilla no vacía en un rango

Quisiera una función que me devuelva en la casilla A3 el dato de la primera celda no vacía del rango A10:A1000. Y ya de paso otra para la casilla A4 con el dato de la última celda no vacía del mismo rango.

Quiero hacer lo mismo con las columnas B, C, D, etc..

Excel 2007

Gracias

1 respuesta

Respuesta
1

Te envío diversas opciones.

Para hallar la ultima celda desde Excel coloca en una celda diferente al rango A10:A1000 las siguientes formulas:

1. Si la columna tiene solo números

Opcion 1: =SI(CONTAR(A10:A1000)>0;COINCIDIR(9E+307;A:A))

Opción 2: =ELEGIR(1+(CONTAR(A10:A1000)>0);;COINCIDIR(9E+307;A:A))

2. Si la columna tiene texto

Opción 1: =SI(CONTAR.SI(A10:A1000;"*")>0;COINCIDIR(REPETIR("z";255);A:A))

Opción 2: =ELEGIR(1+(CONTAR.SI(A10:A1000;"*")>0);;COINCIDIR(REPETIR("z";255);A:A))

3. Si la columna tiene números y texto:

Opción 1:=MAX(SI(CONTAR(A10:A1000)>0;COINCIDIR(9E+307;A:A));SI(CONTAR.SI(A10:A1000;"*")>0;COINCIDIR(REPETIR("z";255);A:A)))

Opción 2: =MAX(ELEGIR(1+(CONTAR(A10:A1000)>0);;COINCIDIR(9E+307;A:A));ELEGIR(1+(CONTAR.SI(A10:A1000;"*")>0);;COINCIDIR(REPETIR("z";255);A:A)))

Para hallar la primera celda desde Excel coloca en una celda diferente al rango A10:A1000 las siguientes formulas:

1. Si la columna tiene solo números

Opción 1: = Creo que es mejor por código.

2. Si la columna tiene texto

Opción 1: =SI(CONTAR(A10:A1000)>0;COINCIDIR("*";A:A;0))

Ten presente que para las columnas B, C, D, etc, solo debes cambiar los rangos A10:A1000 en las formulas.

Ahora bien si deseas una función desde Visual, los códigos serian:

Function UltimaFila(Columna As String) As Variant
UltimaFila = Range(Columna & "1048576").End(xlUp).Row
End Function
Function PrimeraFila(Columna As String) As Variant
PrimeraFila = 1
For i = 10 To 1000
If Trim(Range(Columna & i)) <> "" Then
pfila = i
Exit For
End If
Next
PrimeraFila = pfila
End Function
'Para llamar las funciones
Sub EncontrarUltimas()
'Puedes cambiar la "A" por cualquier columna
Primera = PrimeraFila("A")
Ultima = UltimaFila("A")
End Sub

Espero te sirva

Un abrazo

Juan Carlos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas