Cómo crear una lista con todos los resultados de una búsqueda
Hace unos días publiqué un artículo en el que te enseñaba a crear búsquedas que devolvían varios resultados. La verdad es que la explicación que doy en dicho artículo es complicada para usuarios con poca experiencia en fórmulas matriciales.
Le pedí ayuda a mi compañero del foro Gerson Pineda para hallar una forma de hacer más fácil y comprensible esta fórmula… y no solo lo ha conseguido sino que ¡me ha dado dos formas diferentes de hacerlo! Me alegró la tarde de ayer…
Cómo crear una lista con los todos los resultados de una búsqueda con INDICE
- En primer lugar, la función FILA se utiliza para comparar la matriz donde se encuentran las marcas con el criterio elegido. A continuación se divide entre todas las filas para obtener las filas que coinciden:
FILA($B$2:$B$68)-1/($A$2:$A$68=D$2)
{#¡DIV/0!;2;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;7;8;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;22;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;28;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;56;#¡DIV/0!;#¡DIV/0!;59;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!;#¡DIV/0!}
La matriz resultante se utilizará como argumento en el siguiente punto.
- La función AGREGAR se utiliza para obtener el número de fila más pequeño del rango. Los dos primeros argumentos indican el tipo de función empleada (15 para K.ESIMO.MENOR Y 6 para indicar que queremos omitir los errores.
El siguiente argumento correspondería a la matriz del punto anterior. Como le he dicho a la función que deseo omitir los errores, el valor más pequeño corresponde al 2.
Como K.ESIMO. MENOR acepta matrices como argumento, se hace obligatorio introducir el siguiente argumento, que corresponde a la posición ocupada por el enésimo valor más pequeño. En este caso se halla con la función FILAS (observa las referencias mixtas).
- INDICE devuelve el valor que se encuentra en la posición indicada por el resultado de la función AGREGAR, que es el número de fila que ocupa la coincidencia.
- La parte más exterior de la fórmula se utiliza para comprobar si existe un resultado a devolver.
Cómo crear la misma lista con BUSCARV
Esta fórmula es similar a la anterior. En vez de hacer la búsqueda con INDICE, se utiliza BUSCARV, utilizando como tabla de búsqueda la función ELEGIR, con la que es posible crear una matriz de datos (en este caso de n-filas y 2 columnas) para hallar el número de fila en la que se encuentra cada valor.
=SI(FILAS($A$1:$A1)>CONTAR.SI($A$3:$A$68;D$2);””;BUSCARV(AGREGAR(15;6;FILA($A$2:$A$68)-1/($A$2:$A$68=D$2);FILAS($A$1:$A1));ELEGIR({1\2};INDICE(FILA($A$2:$A$68)-1;);$B$2:$B$68);2;0))
Resumen
Aquí tienes otras dos fórmulas que son capaces de devolver varios resultados en diferentes celdas.
Directamente en Excel no es posible devolver varios resultados en una misma celda aunque existen complementos como Ablebits que ya lo incorporan entre sus funciones.
¿Te han servido las fórmulas? ¿Qué tipo de datos buscarías?
En el archivo Busquedas.xlsx en la primera hoja (Método 1) me pudieras explicar como funciona la expresión FILA($B$3:$B$68)-MIN(FILA($A$3:$A$68))+1
Hay alguna posibilidad de realizar esta misma operación pero siguiendo, no sólo uno si no dos o varios parámetros de coincidencia?
Gracias por tu trabajo, haces más fácil el mío
Saludo Sergio, necesito que me ayude con esto que se que para ti será muy simple pero me estoy rompiendo la cabeza y no puedo resolverlo.
Necesito crear la matriz o la base de datos en una fila.
Es algo asi; =BUSCARV(A1; 1;2;3;{;5/;2;9 })
En donde A1 hago la consulta Supongamos que en A1 coloque el 1, la búsqueda se hará en esta matris y me dirá que es que 1 corresponde a 5.
Ves, es algo sencillo, pero no logro hacerlo, gracias de ante mano.
José Manuel, creo que la función que estás buscando es ELEGIR. Echa un vistazo a este enlace y me dices.