23 abril, 2021

OBTENER VALOR DE LA ÚLTIMA CELDA DE UNA COLUMNA

Hola a todos! Hoy me gustaría hablar acerca de la posibilidad de obtener de la última celda con datos de una columna. Se puede dar la circunstancia de que en nuestros trabajos diarios necesitemos tener actualizada esta información en todo momento, por ejemplo, imaginémonos que diariamente nos reportan datos de cotizaciones, porcentajes, cifras de negocio, etc y que tenemos un cuadro de mando o una simple hoja en la que queremos reflejar el último dato registrado.

Para dar con la solución adecuada os propongo tres alternativas en función de: si los datos son numéricos o texto y si en el rango de datos existen o no celdas vacías.

Os muestro las tres fórmulas que podremos utilizar y cuándo es adecuado su uso:

  1. =DESREF(B1;CONTAR(B:B);0) Cuando el rango de datos no contiene celdas vacías y la información es numérica. En caso de que la información no sea numérica, podremos cambiar la función CONTAR por CONTARA  y a continuación - 1 y funcionará correctamente así: =DESREF(B1;CONTARA(B:B)-1;0)
  2. =BUSCAR(MAX(B:B)+1;(B:B)) Cuando el rango de datos contenga celdas vacías o el rango sea continuo y la información sea numérica.
  3. =INDICE(B:B;MAX(FILA(B:B)*(B:B<>""))) Fórmula matricial, válida para todos los casos, datos numéricos, texto, con celdas vacías en el rango o información continua.

Os muestro una imagen de cómo quedaría la información con todas las fórmulas aplicadas (en este caso tenemos un rango de datos sin celdas en blanco:

VALOR ULTIMA CELDA DE UNA COLUMNA

Ahora que ya conocéis todas las características de cada fórmula y cuando aplicarla, creo que tendréis solucionada esta necesidad.

Ha sido una entrada muy corta pero creo que resume muy bien las alternativas que podemos utilizar.

Descarga el archivo de ejemplo pulsando en: OBTENER VALOR DE LA ULTIMA CELDA DE UNA COLUMNA

Comparte este post

43 comentario en “OBTENER VALOR DE LA ÚLTIMA CELDA DE UNA COLUMNA

  1. Como siempre muy interesante. El primer caso lo tenía controlado, pero los otros dos nunca se me habían planteado. Tendré que estudiarlos mas en profundidad.

    Gracias por el post

    1. Muchas gracias adoxcel! 🙂 sí, las otras dos las investigué por el tema de las celdas vacías, y de esta forma está todo el abanico de casos bien controlado. Saludos!

  2. Al utilizar la segunda fórmula en mi tabla y actualizar el segundo campo me cambia a este ultimo valor.
    ¿Como puedo hacer para que me quede el ultimo valor, sin que se altere?
    Km Anterior Km Actual Kms Totales
    6900 7500 600

    7500 8120 620

    8120

    Lo que quiero que ponga en Km Anterior el ultimo valor de Km Actual, teniendo en cuenta que hay celdas vacias.

    1. Hola Joaquin:

      Con los datos que me envías no consigo saber qué es lo que necesitas. Envía el archivo a excelsignum@yahoo.es con los datos como los tienes y como te gustaría que quedasen.

      Las fórmulas actúan sobre una columna no en varias. Es posible que necesites una macro, pero necesito ver el archivo.

      Saludos.

      1. hola como estas, tengo un problema necesito poner el ultimo valor de una columna pero están en formulas los datos de la columna y siempre me aparece en cero cual seria el problema. de antemano muchas gracias por su respuesta.

  3. Buen día muchas gracias.

    Tengo una duda, cuando lo hago en una misma hoja me trabaja bien, pero cuando llamo el ultimo dato desde otra hoja, me aparece el primer dato y no el ultimo.
    Que pasa en ese caso?

    Saludos..

  4. En primer momento Gracias por el aporte. Es de mucha ayuda. Mi pequeña duda es que hace el "+1" en la segunda formula, lo quité y me sigue funcionando, le puse un +5 por probar y sigue funcionando. que función cumple entonces,???? GRACIAS

    1. Hola Marvin:

      Prueba a hacer lo mismo pero con con un rango mucho menor:

      DIA DATOS
      LUNES 62,97375225
      MARTES 14,94793687

      Solo lunes y martes, borra todo lo anterior y elimina el +1. Verás que lo que te devuelve el el primer registro y no el último. Para eso es el +1 para corregir ese resultado que solo pasa cuando tenemos dos unos valores al inicio del rango y el resto está vacío.

      Saludos.

  5. Buenas tengo un caso a resolver, creo que la primer o la tercer formula es la indicada, pero se me complican adaptarla

    En una planilla necesito que en la celda de la columna A me tome el penultimo campo completado de una serie de 7 campos con los mismos datos, el cual representa el resultado del ultimo llamado de un contacto.(el mismo puede tener hasta, en este caso, 7 llamados), es decir que necesito que aparezca el dato de la ultima modificación registrada, como puedo adaptarlo?.

    Tengo otro tipo de datos en el mismo rango de la fila como fecha y hs de llamados que no son importantes

  6. Hola Florencia, si lo que necesitas es obtener el penúltimo dato y no el último, solo tienes que modificar la fórmula, así:

    =INDICE(6:6;MAX(COLUMNA(C6:AW6)*(C6:AW6<>""))-1)

    Saludos

  7. Buenos días
    Tengo una matriz con espacios vacíos y necesito identificar el único dato (alfabético) que se registra en un rango de una fila, pero he probado todas las formulas que indicas y solo me da como resultado ceros.

    Agradezco mucho tu colaboración.

  8. Hola Ivonne:

    Entonces lo que indica eso es que tienes celdas que no están vacías (están en blanco pero no vacías). verifica que en esa columna no tengas ceros en las celdas y aplica la fórmula limpiar en todo el rango restante de columna.

    Saludos.

  9. Buenas tardes, tengo una consulta, es posible ingresar un numero en una celda y que me busque el ultimo numero y la coloque en otra celda; me explico si ingreso un Numero de identifiación por ejemplo 1234567890, que en otra celda me indique que el ultimo numero ingresado en la celda es cero y coloque cero, si es uno coloque 1 y asi sucesivamente.

  10. Hola! Me gustaría saber como puedo mandar llamar al último dato de una columna.
    Este es el asunto:
    Cada trabajador tiene un número de empleado. A los empleados se les da un premio mensual (que puede o no ocurrir).
    El premio se registra semanalmente, y siempre en una columna específica, en donde el número de empleado aparece siempre en la misma fila, en la segunda columna.
    La intención es: usando el número de empleado, desplegar el último premio entregado a dicho empleado, siempre y cuando su valor sea mayor que cero.

    Como el número de empleado aparece recurrentemente (semana tras semana), el deseo es localizar el último valor siempre.

    El número de empleado aparece en la columna 2. El valor del premio aparece en la columna 8.
    El dato se mandará llamar desde otro Libro de Excel.

  11. Hola Daniel.

    Tendria que ver un ejemplo en excel, aunque sería aplicar la dormula del post.

    No puedo enviarte ejemplo porque me he quedado sin placa base de mi equipo (la están reparando). Enviame un ejemplo en un archivo y cuando pueda lo miro.

  12. hola, como puedo obtener el último dato de una columna condicionado a otra. Me explico, cada ciudad tiene un correlativo dentro de ella, entonces necesito obtener ese ultimo número +1 para continuar

  13. Muchísimas gracias!! Es un sustituto muy valioso al .end(xldown).row de VBA. Quisiera comprender como se explica la última...

    3. =INDICE(B:B;MAX(FILA(B:B)*(B:B"")))

    La fórmula Índice lo comprendo, pero la parte matricial de "MAX(FILA(B:B)*(B:B"")" me causa mucha curiosidad. ¿Pordrías explicarnoslo porfavor?

    La fórmula funciona perfectamente!! Muchas gracias de nuevo

    1. Lo que hace la función es evaluar la última fila de la columna B con la función Max, otorga a cada fila con datos el número de fila en el que se encuentra, si no tiene datos, la evalua aunque le otorga un 0 en su valor, pero lo tiene en cuenta en la función máximo, de forma que será capaz de obtener el 20 que la última fila.

  14. Buenas Tardes. Podríamos agregarle otro parámetro que buscara el último martes de la columna, o también que buscara en vez de días de la semana, que fuera años 2018, 2018, 2018, 2019, 2019, 2019, 2020, 2020. Muchas gracias de antemano.
    Un saludo.

    1. Hola Manuel:

      Tendrías que utilizar otra función:

      =DESREF(INDICE(A:A;COINCIDIR(2;1/(A:A="JUEVES")));0;1)

      Aquí obtienes el valor del último jueves.

      Espero que te sirva, saludos.

          1. Buenas tardes Segu:
            Muchas gracias por responderme enseguida.
            Me daba error la fórmula porque yo no le asignaba fórmula matricial. Ahora sí me busca el dato bien.
            Muchas gracias por esa labor de ayudarnos a los que no sabemos todas los vericuetos que tiene excel.

  15. Muy interesante, sin embargo si los valores de la columna son obtenidos mediante formula y las últimas celdas aun no se han llenado, siempre el resultado será "cero", cual sería la instrucción para obtener el valor deseado?
    Muchas gracias...

    1. Por ejemplo si esa fórmula que no se ha actualizado hasta el final o si el dato que devuelve es un 0, por ejemplo:

      =INDICE(B:B;MAX(FILA(B:B)*(B:B<>0)))

      lo indicas en la función <>0 o si es un error lo que envía, tendrás que utilizar si.error para pasar el error a un valor y luego controlarlo en la fórmula.

      Saludos.

  16. Hola! intente usar la formula 3, pero me marca #¡VALOR! la formula la plantee así:

    =INDICE(B11:B37,MAX(FILA(B11:B37)*(B11:B37"")))

    Gracias, las otras me funcionaron muy bien!

        1. Todo depende de cómo tengas los datos.

          La fórmula que quieres usar en el rango 13 y 32 tendría que ser así, pero donde la función indice, la matriz debe ser toda la columna, aunque siempre te mostrará los datos en el rango. Es decir, podrías usarla perfectamente.

          =INDICE(B:B;MAX(FILA(B13:B32)*(B13:B32<>"")))

          y estas son las otras...

          =DESREF(B13;CONTAR(B13:B32);0)
          =DESREF(B13;CONTARA(B13:B32)-1;0)
          =BUSCAR(MAX(B13:B32)+1;(B13:B32))

          Elige la que necesitas y estudia detenidamente los argumentos de cada función y como se comportan.

          Saludos.

Si te ha gustado o tienes alguna duda, puedes dejar aquí tu comentario.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies