CASO RESUELTO: ENCONTRAR EL ULTIMO VALOR DE UNA LISTA

En esta ocasión vamos a ver una manera de romper la limitación que tiene BUSCARV para devolver un valor que no sea el primero que le damos de una lista. Supongamos que tenemos la siguiente lista y queremos encontrar el segundo registro del empleado 8.

Normalmente usaríamos un BUSCARV para encontrar un valor, lo cual no seria incorrecto si no tuviéramos la necesidad de encontrar el valor de empleado 8 que se encuentra en la ultima parte de la tabla.

último valor sin BuscarV 2

¿Cómo resolvemos esto?

Bueno, la pregunta le rompería la cabeza a mas de uno de tus colegas, pero nosotros somos los mejores y haremos algo que lo dejara con la boca abierta (y posiblemente a nosotros al inicio también).

{=INDICE(Tabla1[valor],MAX(FILA(Tabla1[Titulo])*(Tabla1[Titulo]=F3))-FILA(Tabla1[#Encabezados]),1)}

Vamos por partes:

FILA(Tabla1[Titulo]) nos va a generar una matriz con los números de fila en los que se localizan los valores en la tabla (en este caso, el primer valor se encuentra en la fila 3, luego 4, luego 5… luego 30). algo así

{3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28;29;30}

FILA(Tabla1[Titulo])*(Tabla1[Titulo]=F3) multiplicara por un valor VERDADERO – FALSO la matriz de la primera parte de la formula.

{FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;VERDADERO;FALSO;FALSO;
FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;VERDADERO;FALSO;FALSO;FALSO;
FALSO;VERDADERO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO}

Estos valores booleanos se generarán según se cumpla el criterio de coincidencia =F3 (o igual a empleado 8). El resultante sería este.

{3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28;29;30}*{FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;VERDADERO;FALSO;
FALSO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO=VERDADERO;FALSO;
FALSO;FALSO;FALSO;VERDADERO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO}

={0;0;0;0;0;0;0;10;0;0;0;0;0;0;0;0;19;0;0;0;0;24;0;0;0;0;0;0}

FILA(Tabla1[Titulo])*(Tabla1[Titulo]=F3))-FILA(Tabla1[#Encabezados]) restara el valor del numero de fila en el que se encuentre nuestro encabezado de tabla (en este caso nuestro encabezado de tabla se encuentra en la fila 2) para que la matriz de búsqueda no empiece a realizar la coincidencia desde el valor real de filas sino desde el valor real de la matriz de búsqueda (ósea, en nuestro caso seria tomando como fila de búsqueda 1 la fila 3).

=MAX({0;0;0;0;0;0;0;10;0;0;0;0;0;0;0;0;19;0;0;0;0;24;0;0;0;0;0;0}-{2})=22

{=INDICE(Tabla1[valor],todo_lo_anterior),1) genera una consulta de búsqueda matricial en las columnas valor de la tabla y usa el numero que devuelve la función MAX para encontrar la coincidencia de filas.

El resultado queda más o menos así:

último valor sin BuscarV 1

¡Ese si es el resultado que queríamos! La técnica puede resultar complicada, pero con un poco de esfuerzo y practica puede ayudarte a resolver muchos problemas. Si quieres ver como funciona descarga el libro por aquí.

Solo queda una pregunta en el aire: MAX nos devolverá el ultimo valor y BUSCARV nos devolverá el primero, entonces ¿si quisiéramos el valor intermedio? La respuesta la encontraran por aquí, pero si puedes darla antes, déjala en los comentarios. ¿Qué más se te ocurre?

CASO RESUELTO: ENCONTRAR EL ULTIMO VALOR DE UNA LISTA

4 comentarios en «CASO RESUELTO: ENCONTRAR EL ULTIMO VALOR DE UNA LISTA»

  1. increible, es verdad que el exel esta escapao, yo lo habia hecho con indice y coincidir pero nada que ver, se demoraba mucho recalulando la hoja, con esta formula ni se siente

  2. estoy utilizando tu fórmula.. pero sucede algo extraño.. En mi caso estoy buscando el último valor de un determinado condicionante.y en vez de salir la respuesta (que si figura en la ventana de «argumento de función») en la celda me sale el primer valor de la tabla.

    1. ¡Hola Juan!
      ¿Crees que puedas apoyarme con la función como la estas usando?
      Regularmente cuando eso pasa, puede deberse a que las condicionantes de la búsqueda si se cumplen, pero en la tabla pueden venir diferente (ya sean espacios o caracteres no imprimibles).
      También, si eres de los afortunados en tener Offices 365, puedes hacer esta función más fácil con BUSCARX. Aquí te dejo el link donde lo vemos a detalle http://excelcute.com/buscarx-guia-rapida-excel/
      Si gustas checarlo por videochat escríbeme a svallejo@excelcute.com 😀

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll hacia arriba