En esta práctica vamos a ver como podemos hacer una búsqueda de valores partiendo de un grupo de datos en el que el valor que utilizamos cómo índice no está a la derecha de la tabla, si no que está a la izquierda. Normalmente siempre encontramos en un grupo de datos, que el valor por el que hacemos la búsqueda se encuentra a la izquierda y a partir de ahí nos movemos a la derecha para encontrar el valor con el que deseamos buscar. Para ese caso podemos utilizar la función BUSCARV() de forma sencilla. En esta página tenemos varias prácticas donde explicamos como utilizar esta fórmula.
En alguna ocasión nos podemos encontrar que el dato a buscar no está a la izquierda de la tabla, si no que se encuentra en cualquier otro lugar y que la información con la que deseamos trabajar está a la izquierda de ese valor. Además vamos a aprovechar esta práctica para utilizar también funciones que nos permitan extraer los datos más altos y los más bajos de un conjunto de datos.
Vamos a plantar la práctica.
Tenemos una hoja de excel con los equipos de una liga de fútbol, vamos a imaginar que trabajamos con los datos de los equipos de la Liga de primera división española y que estos los tenemos ordenador alfabéticamente en la columna A y que la columna B la reservamos para introducir los puntos de la clasificación. De esta forma semana a semana iremos apuntando los puntos de la liga en estas celdas.
Una vez introducidos los datos lo que queremos es que en las celdas E3, E4 y E5 nos aparezcan el primer, segundo y tercer clasificado de la tabla. En las celdas E7, E8 y E9 los tres últimos de la tabla.
Vamos a ver función por función.
La más sencilla de todas sería buscar el valor más alto de la tabla y para eso utilizaremos la función MAX() en la que pondremos como argumento el rango de valores donde están los puntos de los equipos. Así la celda E3 escribiríamos la función =MAX(B3:B22) y nos devolvería como resultado 72
Ahora nos interesaría que en la celda E4 nos apareciera el segundo valor más alto de la tabla. Para ello utilizaremos la función K.ESIMO.MAYOR() que nos devuelve el valor k-ésimo mayor del rango de valores con el que estamos trabajando en esta práctica. Esta función tiene dos argumentos, el primero el rango de datos y el segundo la posición que queremos que busque a partir del valor más alto (en esta ocasión sería un 2).
Por lo tanto la función para la celda E4 sería =K.ESIMO.MAYOR(B3:B22;2) y nos devolvería como resultado 64
Si queremos encontrar el tercero mayor sería muy sencillo. Escribe en la celda E5 la función =K.ESIMO.MAYOR(B3:B22;3) como podrás observar de esta función a la anterior solo hemos cambiado el segundo argumento de forma que mostramos la segunda o tercera posición mayor de la tabla.
Ahora vamos por el último valor, ese lo pondremos en la celda E9. Para saber el valor menor de la tabla utilizaremos la función MIN(), la estructura de esta función es igual que la que hemos visto con MAX() de tal forma que en argumento de esta función tan solo escribiremos el rango donde están los datos, de tal forma que la función quedará así =MIN(B3:B22) y en este caso nos devolverá como resultado 13
A continuación nos interesaría saber el segundo valor menor de la tabla y para eso existe una función muy similar a las que hemos utilizado para encontrar los valores mayores. Para los valores menores sería K.ESIMO.MENOR() de tal forma que en la celda E8 introduciremos la función =K.ESIMO.MENOR(B3:B22;2) donde obtendremos como resultado 19 y en E7 la función =K.ESIMO.MENOR(B3:B22;3) con resultado 20
Ahora que ya tenemos los puntos de los tres primeros y de los tres últimos nos faltaría poder localizar el nombre de los equipos que tienen esa puntuación y ponerlo a la derecha. Como hemos comentando al principio de esta práctica, normalmente, para encontrar un valor dentro de una tabla a partir de un índice utilizamos la función BUSCARV, pero para ello los valores que sirven como índice deben estar a la izquierda de la tabla, mientras en este caso los encontramos a la derecha con lo que no podemos utilizar dicha función. Para resolver este problema deberemos utilizar una combinación de dos funciones INDICE() y COINCIDIR()
Repasemos… la función INDICE nos encontrará un valor en una tabla de datos indicando el número de fila y el número de columna donde se encuentra. En este ejemplo el rango de datos está entre la A3 y la B22 (A3:B22) y sabemos que nos interesará obtener como resultado la columna 1, que es donde se encuentran los nombres de los equipos. Ahora solo nos falta conocer la fila donde se encuentra ese dato, con lo que deberemos utilizar la función INDICE que nos indicará en que posición se encuentra el valor que estamos buscando dentro de la columna de puntos.
Con esto la función F3 quedará de la siguiente forma =INDICE(A3:B22;COINCIDIR(E3;B3:B22;0);1)
F4 =INDICE(A3:B22;COINCIDIR(E4;B3:B22;0);1)
F5 =INDICE(A3:B22;COINCIDIR(E5;B3:B22;0);1)
F7 =INDICE(A3:B22;COINCIDIR(E7;B3:B22;0);1)
F8 =INDICE(A3:B22;COINCIDIR(E8;B3:B22;0);1)
F9 =INDICE(A3:B22;COINCIDIR(E9;B3:B22;0);1)
Ahora ya podemos ir variando la puntuación de los equipos según la jornada y obtendremos automáticamente la puntuación de los tres primeros, con sus nombres y de los tres últimos.
Comments (3)
Muchas gracias.
¿como se podría hacer en caso de que varios de los valores que has sacado sean de igual valor?
Por ejemplo, si los datos son:
A 45
B 48
C 50
D 48
Al ejecutar la formula, el resultado obtenido será
C
B
B
¿Como se podria hacer la formula para obtener el resultado corecto?
Gracias y un saludo
Si utilizamos la función K.ESIMO.MAYOR nos devolvería el valor mayor (50), y si le indicamos nos muestre el segundo valor mayor nos devolvería el siguiente valor mayor por debajo del primero, que sería (48), pero no discriminaría entre el que está en la posición B y en la posición D
Hola, estoy intentando hacer una busqueda en tablas usando las funciones INDICE y COINCIDIR. Necesito ver si una fecha aparece en un listado de dias festivos, dentro de una tabla que contiene varios años, así en cada columna tengo el año en cabecera y las filas inferiores son las fechas festivas.
Usando la formula “=COINCIDIR(A8;TFiestas[2020];0)”, para buscar en la columna del año 2020 no tengo ningun problema, pero cuando intento cambiar ese literal “2020” por una variable o número de celda, me da error y no funciona.
Estoy bloqueado con este tema y casi seguro hay algo que se me escapa, o bien ¿no se admiten fórmulas o variables entre los corchetes?
Esto no funciona: =COINCIDIR(A8;TFiestas[Año1];0)
Esto tampoco: =COINCIDIR(A8;TFiestas[D3];0)
El dato contenido en la variable Año1 o en la celda D3 es 2020, lo he probado en tipo texto y en numérico.
¿Me podeis decir qué es lo que está mal?
Muchas gracias y un saludo