Alternativas al BUSCARV en Excel



BUSCARV es de esas formula que personalmente considero vitales en excel, muchos de los problemas con los que nos enfrentamos diaramente en el trabajo requieren (o se pueden solucionar) con un =BUSCARV pero si alguna vez haz necesitado hacer consultas mas complejas y el buscarv no te lo solucionó este post te puede interesar.




BUSCARV con COINCIDIR y DESREF
lo que vamos a hacer es utilizar las formulas:
 =DESREF(matriz_buscar_en, (COINCIDIR(valor_buscado, matriz_buscar_en,0)-1),indicador_columnas,1,1)


se utilizó los nombres valor_buscado, indicador_columnas y matriz_buscar_en para que este ejemplo se entienda en terminos de un BUSCARV con dos pequeños ajustes el primero es  que matriz_buscar_en debe ser una matriz de varias filas por una sola columna obligatoriamente y el segundo que debemos pensar el indicador columnas como un numero menos que en buscarv.





Puedes ver el ejemplo completo en el siguiente enlace
o descargar la version de excel en el siguiente enlace


Primero partamos por explicar los argumentos de cada formula:


DESREF(Ref,Filas,Columnas,Alto,Ancho) lo que hace esta fórmula es que nos devuelve una posición desde una referencia inicial, (se mueve varias filas y columnas desde donde le indiquemos) sus argumentos son:
  • Ref: es la Referencia que se usa como punto de partida y desde la cual nos moveremos, puede ser una celda, un rango o nombre de rango (en cuyo caso se parte de extremo superior izquierdo de este) u otra fórmula que nos devuelva una referencia o rango. es de caracter obligatorio.
  • Filas: es el numero de filas que deseamos desplazarnos desde la referencia dada hacia abajo o hacia arriba (para este ultimo utiliza números negativos). es de carácter obligatorio.
  • Columnas: es el numero de columnas que deseamos desplazarnos desde la referencia dada a la derecha o a la izquierda (para este ultimo utiliza números negativos). es de carácter obligatorio.
  • Alto y Ancho: en caso que deseemos traer un rango de celdas, especificaremos con estos argumentos el tamaño, si se omiten el rango tendrá el mismo tamaño que la referencia. es de carácter opcional
COINCIDIR(valor_buscado,matriz_buscada,tipo_de_coincidencia)esta formula devuelve un entero que indica en posición se encuentra un valor dentro de una matriz, sus argumenntos son:
  • valor_buscado: es el valor que se desea buscar, obligatorio
  • matriz_buscada: la matriz en la cual se debe buscar. obligatoria (nota la matriz debe ser de una columna y varias filas o una fila y varias columnas, de lo contrario la formula arrojará error)
  • tipo_de_coincidencia: 
    •   1 para el inmediatamente menor (los datos deben estar ordenados ascendentemente), 
    •   0 para exacta  y 
    •  -1 para el inmediatamente mayor (los datos deben estar ordenados  en orden descendente)
analizemos ahora si  la formula:
=DESREF(matriz_buscar_en, (COINCIDIR(valor_buscado, matriz_buscar_en,0)-1),indicador_columnas,1,1)


Básicamente lo que se indica a excel es que valla al rango donde tenemos los datos a buscar,(que debe ser de varias filas por una sola columna debido a la restriccion de la formula coincidir), luego parado alli baje un numero de filas determinado por la poscion del valor buscado menos uno ( imaginemos que el resultado esta en la primera fila, COINCIDIR nos devolverá 1 y luego DESREF bajará 1 fila situándonos no en la primera sino en la segunda fila del rango), despuesnos movemos x columnas a la derecha (según la columna que queremos) y por ultimo le indicamos que queremos un rango de una fila por una columna (una sola celda).


Espero que les sirva de ayuda, algunos dirán "tanto problema para un simple buscarv?" pues en parte tienen razon pues si bien un buscarv es mas sencillo, esta combinacion de formulas en realidad no es nada del otro mundo y de otro lado se puede hacer maravillas con esta formula como lo demostrare en proximas entradas.

No hay comentarios.:

Publicar un comentario