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!
Suscríbete para acceder al curso «Descubriendo el poder de Google Sheets» y empezar tu camino a la maestría de Sheets, Forms y Apps Script
Deja una respuesta