miércoles, 8 de abril de 2009

Obtener Datos de una tabla con COINCIDIR y BUSCARV

Supongamos que tenemos una lista de empleados con su número de empleado, su nombre y sus ganancias y queremos saber cuánto gana el que más y el que menos y sus nombres.

Lo solucionaremos de dos maneras diferentes. En nuestra primera solución calcularemos la cifra máxima y mínima de ganancia por medio de las funciones MAX y MIN respectivamente:

1. Nos situamos en la celda F2 y escribimos =MAX(C2:C21)
2. Nos situamos en la celda F3 y escribimos =MIN(C2:C21)

En estos momentos ya tenemos las cifras máximas y mínimas pero no sabemos los empleados a los que corresponden. Como el campo a buscar serán estas cifras no podemos utilizar directamente la función BUSCARV ya que ésta busca siempre en la primera columna de una matriz y nos devuelve un valor de la misma columna o de n columnas hacia la derecha(partiendo de dicha primera columna de la tabla). Lo que hacemos entonces es utilizar la función COINCIDIR, que nos proporciona la posición (no el resultado) que ocupa en una matriz el valor buscado:

3. Nos situamos en la celda G2 y escribimos la fórmula: =COINCIDIR(F2;$C$2:$C$21;0)
4. Copiamos esta fórmula en G3.

De esta manera ya sabemos que el empleado que más gana ocupa la posición 18 del rango C2:C21 y el que menos la posición 14. Como hemos identificado cada empleado con un número en el rango A2:A21 ya sólo nos queda utilizar BUSCARV para obtener sus correspondientes nombres. A saber:

5. Le damos el nombre de "Empleados" a la tabla (costumbre siempre muy recomendable...) seleccionando el rango A2:C21 y yendo al menú Insertar/Nombre/Definir. Escribimos dicho nombre(Empleados) y aceptamos directamente.
6. Nos situamos en la celda H2 y escribimos: =BUSCARV(G2;Empleados;2;Falso)
7. Copiamos esta fórmula en H3.

Hemos "desgranado" la fórmula pero podríamos escribir directamente las dos partes. A saber:
Nos situamos, por ejemplo, en la celda E8 y escribimos:

=BUSCARV(COINCIDIR(F2;$C$2:$C$21;0);Empleados;2;Falso)

Copiamos esta fórmula una celda más abajo y obtendremos los dos nombres buscados.
Otra manera de solucionar este problema es utilizando las funciones DESREF, INDIRECTO y DIRECCION tal y como se muestra en la figura:



1 comentario:

  1. Hola Kiko,estoy intentando hacer algo parecido.
    ¿Como podría hacer una tabla(clasificacion de 10 equipos deportivos?
    Lo hago y sale bien la 1ª jornada, pero cuando introduzco datos en la 2ª jornada todo se queda tal como estaba en la 1ª jornada.
    Muchas Gracias y Enhorabuena por el blog.

    ResponderEliminar