En este artículo tratamos de sobrepasar una de las principales limitaciones de BUSCARV: que no nos deja buscar valores que esten a la izquierda de mi valor buscado.
Aquí tienen la explicación también en video
Buscarv es una maravilla de función.
Por más de que muchos la critiquen y que hay muchas otras formas de hacer lo mismo, siempre va a ser util para una busqueda rápida y sencilla.
Pero no solo eso.
Con la ayuda de una que otra función podemos expandir y mejorar BUSCARV para poder saltar muchas de las limitaciones naturales de la función
Hoy vamos a ver una de esas limitaciones
BUSCARV solo permite valores a la derecha de mi referencia
La mejor manera de mirar esto es con un ejemplo:
Digamos que tengo la siguiente base de vendedores, dentro de la pestaña “Vendedores”

En otra pestaña tengo mi base de ventas, de esta manera

Si quiero traer el porcentaje de comisión, entonces usaria el BUSCARV en su versión normal de la siguiente manera:
=BUSCARV(C2;”Vendedores!$B$1:$C$5″;2;0)
Fijense que en mi rango, obligatoriamente la primera columna debe ser la columna donde estan los nombres de los vendedores (En este caso la columna B), si no, no me va a funcionar.
Y, por otro lado, el argumento columna, cuenta la columna donde está mi información, epmezando desde la primera columna
Pero ¿Que pasa si quiero trae la identificación de cada uno de mis vendedores?
Lo que podriamos pensar de primero es poner en el argumento de columna “-1” para que se devuelva una columna, pero buscarv no funciona así.
Entonces tenemos que pensar en soluciones alternativas
Opción 1: Mover la columna deseada
Esta es la opción más sencilla simplemente cortamos la columna de identificación y la reposicionamos a la derecha del nombre del vendedor.
Quedaría así:

Si pueden hacer esto, es lo más sencillo, más fácil, y nos ahorramos más problemas.
Pero hay muchas razones por las que no podemos hacer esto en todos los casos, entre ellas:
- La tabla de vendedores ya ha sido referenciada en otras formulas y si cambiamos las columnas, puede que nos dañe muchas de ellas.
- No quiero tener que estar reestructurando mis tablas cada vez que voy a crear una nueva formula
- Las tablas tienen un orden logico, y no es muy logico que la identificacion este muy lejos del nomnre, por ejemplo.
Una vez copiada, simplemente hacemos un BUSCARV igual que el anterior pero asegurandonos de cambiar nuestro rango y cambiando el numero de columna, así:
=BUSCARV(C2;”Vendedores!$A$1:$C$5″;3;0)
Opción 2: Duplicar la columna
Muy parecida a la anterior, pero con la ventaja de que no nos va a dañar ninguna otra formula.
Lo que vamos a hacer es copiar la columna de identificación, y luego pegarla al final de nuestro rango, así:

Ahora debemos cambiar nuestro buscarv original, para extender el rangp y el numero de columna
Nuestro buscarv quedaria entonces asi
=BUSCARV(C2;”Vendedores!$B$1:$D$5″;4;0)
La desventaja de este metodo pues es que vamos a tener información duplicada en nuestras tablas.
Si es para algo de una sola vex, funciona bien, y al final simplemente volvemos a eliminar la columna duplicada.
Opción 3: Usar arreglos
Esta es la mejor opción, y aunque la función en si no es muy compleja, nos podemos demorar un poco en entender su real funcionamiento.
Un arreglo es una especie de “rango virtual”. Es decir que yo puedo crear arreglos dentro de mis formulas sin que el usuario los vea. Estos arreglos me pueden servir mucho para mis funciones.
Pero para entenderlos, veamos un par de ejemplos:
Este es el arreglo más sencillo, de una sola celda:
={2}

Nada raro hasta ahora. Es como si escribieramos “2” en la celda.
Ahora volvamoslo mas interesante. Hagamos una columna separando cada fila con “;”
={2;3;4}

Lo que estamos haciendo es crear rangos con una formula, nada más
Ahora creemos una columna, separando las columnas con “\”

Podriamos ahora reemplazar los valores numericos por referencias, por ejemplo:

En este ejemplo uso los arreglos para juntar dos columnas.
Tambien podria invertir su orden, retocando la formula:

Ahora volvamos a nuestra tabla y a nuestro BUSCARV

Con la ayuda de arreglos podriamos crear otra tabla donde mi columna de referencia, en este caso el nombre del vendedor este de primero.
Sería así:
={B2:B5\A2:A5}

Y ahora usariamos esta tabla auxiliar en nuestro buscarv así:
=BUSCARV(C2;’Hoja 2′!$A$7:$B$10;2;0)
Pero igual estamos creando más datos y esa no es la idea.
Lo bueno es que podemos usar este mismo arreglo e incluirlo en nuestro BUSCARV, simplemento mezclando las dos funciones así:
=BUSCARV(C2;{‘Vendedores’!B2:B5\Vendedores’!A2:A5};2;0)
Entonces, resumiendo lo que estamos haciendo es usar el buscarv clasico, pero en el aragumento del rango de busqueda, vamos a crear un “rango virtual” o un arreglo temporal donde reordenamos las columnas haciendo que la primera columna sea donde estan los nombres de los vendedores.
Habrá otras formas de hacerlo, pero hasta ahora es la más fpacil y práctica que he encontrado.
Dejenme saber si les funciona o si tienen problemas.
Un gran saludo!
Hola alguien sabe como debo hacer cuando las columnas que quiero invertir no están en la Hoja que requiero la formula?? =BUSCARV(H2;’BD de Productos’!{Q2:Q155,F2:F155};2;0), porque al tener la coma intermedia el buscarv no lo entiende.
Hola Gina
Ponla en cada uno, asi
{BD de Productos’!Q2:Q155,BD de Productos’!F2:F155}
Saludos!
COMO LE PODRIA HACER PARA QUE USAR EL IMPORTRANGE TENGO ALGO COMO ESTO PERO NO ME LOGRA SALIR =ArrayFormula(BUSCARV($A:$A,IMPORTRANGE(“LINK”,{“SALIDA!$AS:$AS”,”SALIDA!$AR:$AR”}),2))
Hola!
Creo que el problema esta acá “{«SALIDA!$AS:$AS»,»SALIDA!$AR:$AR»}”
No se si eso se pueda hacer en IMPORTRANGE, creo que no
Saludos!
Hola, en el rango ‘Vendedores’!B2;B5 debe ir dos puntos en lugar de punto y coma
Así: ‘Vendedores’!B2:B5
Mil gracias por la aclaración Daniel
Ya lo arreglo
Saludos!
Para aquellos que no les funcione con “\” pueden usar “,”.
A la orden.
Excelente aporte
Mil gracias!
Así es, el símbolo \ funciona en la mayoría de paises de latinoamerica y España. La coma “,”, funciona en USA, UK y México, entre otros. Es algo raro de la configuración regional.
Saludos!
“,” PARA MÉXICO
Muchas gracias!
Así es!
Muchas gracias por el aporte!
Saludos,
Hola:
En la fórmula final completa, tienes =BUSCARV(C2;{‘Vendedores’!B2;B5/’Vendedores’!A2:A5};2;0) cuando la barra tiene que ser invertida:
=BUSCARV(C2;{‘Vendedores’!B2;B5\’Vendedores’!A2:A5};2;0)
Hola Salvador
Tienes toda la razón, lo acabo de arreglar.
Mil gracias por la corrección!
Un gran saludo!