fbpx

Usualmente a una hoja de cálculo estamos agregando filas hacia abajo a manera de una base de datos, y usualmente también, esta base de datos comienza en una hoja que por default tiene muchas filas vacías. Algo muy común que querríamos poder hacer, es ir directamente al último valor que se haya insertado en una columna, y eso lo podemos deducir a partir del último valor que no esté vacío. Eso es justo lo que haremos hoy, usando fórmulas de manejo de arreglos y posiciones, explicando todo paso a paso.

Identificando valores vacíos

Bueno, lo primero que haremos será identificar cuáles valores de nuestra columna son vacíos y cuáles no. Esto lo podemos hacer fácilmente comparando con el operador de <> que significa «diferente de» y un par de dobles comillas para indicar un valor vacío.

=A1:A<>""

Esto resulta en valores de TRUE y FALSE (VERDADERO y FALSO) dependiendo de si un valor es diferente de vacío o no.

Toma nota que para toda esta explicación y la fórmula final vamos a encapsular mucho de nuestro procedimiento en ArrayFormula(), para poder tomar la columna completa como un arreglo de datos, y no tener que copiar la fórmula en toda la hoja.

=ArrayFormula(A1:A<>"")

También vamos a ir construyendo la fórmula hacia la derecha en cada paso en columnas de ayuda, para verlo todo muy claramente.

Obtener el número de fila

Ya tenemos identificadas las celdas no vacías, ahora necesitamos una manera de identificar en qué posición está cada una de estas. Para eso usaremos la fórmula ROW, que nos devuelve el número de fila de una celda específica.

=ArrayFormula(ROW(A1:A))

Combinando las columnas parciales

Muy bien, ahora lo que tenemos que hacer es combinar estas dos fórmulas para quedarnos solamente con los valores que nos interesan de cada columna, es decir, los marcados con TRUE de los que no son vacíos, y el número de columna. Para esto simplemente haremos una multiplicación de los valores de cada arreglo con el operador *, que internamente  toma TRUE como 1 y FALSE como 0, aprovechando que ArrayFormula nos regresa la columna combinada:

=ArrayFormula((A1:A<>"")*ROW(A1:A))

Obtener el valor máximo de las filas no vacías

Ahora, de este resultado, lo que necesitamos es el valor máximo, porque será el número de fila hacia abajo que no será cero. Para esto, usemos la fórmula MAX, que justamente nos devuelve el valor máximo de un conjunto de datos numérico.

=ArrayFormula(MAX((A1:A<>"")*ROW(A1:A)))

Obtener la última fila con datos (no vacía)

¡Ya casi terminamos! Este número es el valor mágico que nos permitirá posicionarnos en la fila correcta. Para esto, vamos a usar la fórmula INDEX, que precisamente nos devuelve el contenido de una celda, si le proporcionamos un rango y el índice en ese rango, que en nuestro caso será el número de fila que acabamos de obtener. Entonces, la fórmula completa se verá así:

=INDEX(A1:A, ArrayFormula(MAX((A1:A<>"")*ROW(A1:A))))

Puedes ajustar el rango para tu caso particular, solo toma en cuenta que como este método se basa en calcular el valor máximo, aunque existan celdas vacías intermedias, siempre se devolverá la última con datos:

Obtener la última celda con datos en una fila

Como bonus, te comparto la fórmula para hacer esto mismo, pero en vez de tomar en cuenta una columna, lo haremos con una fila hacia la derecha. Solamente tenemos que cambiar nuestro rango para que tome toda la fila (A1:1) y usar la fórmula COLUMN en vez de ROW:

=INDEX(A1:1, ArrayFormula(MAX((A1:1<>"")*COLUMN(A1:1))))

¡Y listo! Ahora ya sabes cómo obtener la última celda con datos en hojas de cálculo de Google Sheets.

¡Espero que te haya sido útil esta guía! No olvides seguirnos en YouTube para más tips, trucos y guías de productividad.