Hola,
Muchas veces me he encontrado en la situacion de tener que formular distintos buscarv en columnas contiguas para traer datos de una misma tabla, siendo la unica diferencia entre dichas formulas es el numero de la columna que vamos a devolver.
Esta situacion es facilmente salvable, consiguiendo una sola formula que traiga todos los datos, usando las funciones buscarv y coincidir de forma anidada, de manera que sea la funcion coincidir la que nos devuelva el numero de columna del que deseamos traer los datos.
La funcion coincidir, para aquellos que no la conozcais, funciona de la siguiente forma:
- Indicamos el valor que queremos buscar
- Indicamos el rango de celdas donde vamos a buscar dicho valor, siendo dicho rango de 1 fila y X columnas o de X filas y 1 columna.
- Indicamos el tipo de coincidencia, pudiendo ser:
- 1, menor que
- 0, coincidencia exacta
- -1, mayor que
Lo que va a hacer la funcion coincidir es devolvernos un numero, que indica la posicion del valor buscado en el rango de busqueda, y nosostros vamos a usar ese numero para indicarle al buscarv la columna de la que debe traer los datos. Asi, las funciones buscarv y coincidir se integran muy bien.
Una vez explicado esto, vamos con un ejemplo para que lo veais mas claro.
Partimos de una tabla de datos como la siguente:
Ahora imaginad que necesito unas etiquetas para unos sobres, en los cuales solo quiero que aperezcan los siguientes campos: Direccion, Ciudad, CP y Provincia. Para hacerlo mas interesante, vamos a obtener estos datos de forma vertical. Hacemos una minitabla con estos campos en la columna A (OJO, los campos han de ser exactamente los mismos) y en la cabecera vamos a poner 3 codigos de cliente, por ejemplo 5, 9 y 14.
Y por fin nuestra formula, que auna buscarv y coincidir de manera que aunque la escribamos una sola vez la podemos arrastrar para que nos traiga todos los campos. Os escribo primero solo el coicidir que irá dentro del buscarv:
COINCIDIR($A27;$A$1:$G$1;0), que va a devolvernos en numero la posicion que ocupa la celda A27 (en este caso) dentro del rango A1:G1. El resultado será 3.
Ahora incluimos esto dentro del buscarv de manera que tengamos la formula completa:
BUSCARV((B$26;$A$1:$G$20;COINCIDIR($A27;$A$1:$G$1;0);FALSE)
Fijaros que hago lo siguiente:
- Buscamos la cabecera, por tanto bloqueamos Fila, para que arrastre la busqueda, B$26
- BUscamos en el total de la tabla, bloqueando por supuesto filas y columnas para que al arrastrar siga buscando en el mismo rango, $A$1:$G$20
- Metemos el coincidir en el indicador de columnas para que así nos calcule la columna necesaria en cada caso
Podeis verlo en la siguiente imagen:
Con esto tendriamos todo, solo quedaría arrastrar a toda la tabla y obtenemos el resultado deseado.
Este es un ejemplo bobo que os dejo aqui como siempre, pero usar las funciones buscarv y coincidir de manera conjunta puede ser de mucha ayuda cuando manejas tablas de decenas de columnas y miles de filas…
Un saludo
No Responses