Obtener el primer y último valor de un rango

Obtener el primer y último valor de un rango

Digamos que tengo un rango, A1:A27, y ese rango tiene una combinación de valores vacíos y no vacíos. Me gustaría tener dos funciones: una para obtener el primer valor no vacío del rango y otra para obtener el último valor no vacío. valor vacío en el rango así.

=First(A1:A27)
=Last(A1:A27)

Los rangos serán solo matrices unidimensionales.

Voy a tener que hacer muchas instancias de esto en mi hoja, por lo que los scripts de la aplicación no se podrán utilizar debido a ineficiencias.

¿Cómo escribirías estas funciones?

Respuesta1

Podríamos usar esto para encontrar el primer valor que no esté vacío en el rango:

=INDEX(A1:A27, MATCH(TRUE, A1:A27<>"", 0))

Y podríamos usar esto para encontrar el último valor no vacío del rango:

=INDEX(A1:A27, MAX(IF(A1:A27<>"", ROW(A1:A27))))

Respuesta2

Función TOCOLO

Si solo está buscando los valores, TOCOL eliminará los espacios en blanco y podrá usar INDEX para tomar el primer valor, y para el último valor haga lo mismo pero ordene por fila descendente:

# Obtener el primer valor 
=ÍNDICE(TOCOL(A1:A27,1),1)

# Obtener el último valor 
=ÍNDICE(TOCOL(ORDENAR(A1:A27,FILA(A1:A27),0),1),1)

Función XMATCH

Elfunción XMATCHtiene una ventaja sobre MATCH para esta aplicación porque admite búsquedas del primero al último y del último al primero.

# Sintaxis 
=XMATCH(clave_búsqueda, rango_búsqueda, [modo_coincidencia], [modo_búsqueda])

Ejemplos de XMATCH

La sintaxis del primer valor es similar a MATCH exceptoexact_match=0es el valor predeterminado, por lo que se puede omitir.

# Primer valor 
=ÍNDICE(A1:A27, XMATCH(VERDADERO, A1:A27<>""))      
=FILA(ÍNDICE(A1:A27, XMATCH(VERDADERO, A1:A27<>""))) //Devuelve fila #

XMATCH admite la búsqueda del último al primero especificandosearch_mode=-1

# Último valor 
=ÍNDICE(A1:A27, XMATCH(VERDADERO, A1:A27<>"",,-1))
=FILA(ÍNDICE(A1:A27, XMATCH(VERDADERO, A1:A27<>"",,-1))) //Devuelve fila #

información relacionada