sábado, abril 29, 2006

Usar la función BUSCARV(VLOOKUP) de MS Excel con varios criterios.

Por lo general usamos la función BUSCARV(VLOOKUP) de MS Excel con un criterio de búsqueda, es decir, la búsqueda se efectúa a lo largo de una única columna.
Pero existen situaciones en las cuales debemos efectuar la búsqueda en más de una columna.
En este
ejemplo del uso de BUSCARV con más de una columna de búsqueda (enlace para descargar el archivo), tenemos una tabla donde vemos las ventas de ciertos agentes por producto (una columna para cada producto):




En la celda B18 tenemos una fórmula que nos permite extraer las ventas de cada agente por producto

=BUSCARV(B16,$A$6:$D$13,COINCIDIR(B17,$B$5:$D$5,0)+1,0)



La fórmula combina las funciones BUSCARV (VLOOKUP) y COINCIDIR (MATCH). La función COINCIDIR le pasa a BUSCARV el valor del argumento "indicador de columnas", de acuerdo al valor presente en la celda B17 (aquí hemos utilizado validación de datos para generar una lista). La fórmula funciona de la siguiente manera:









Categorías: Funciones&Formulas_, LOOKUPS_

Technorati Tags: ,

31 comentarios:

  1. ..tengo una duda amigo, en este caso de buscarv con varios criterios. Tu le sumaste un "1". claro, coincide con que buscas en la segunda coluna, pero si quisieramos buscar de "producto c" la formula ya no serviría. Habria que modificarla gabiando ese "1" por un "2".. es lo mismo que omitir el coincidir. ¿estoy equivocado?

    Manuel pesquero@gmail.com

    ResponderBorrar
  2. No, no habria que cambiar nada en la formula y seguiria funcionando. COINCIDIR busca en que posicion en el rango de la funcion, ($B$5:$D$5) se encuentra el producto que buscamos (el que figura en la celda B17). Dado que el rango de COINCIDIR comienza en B5 y no en A5, debemos agregar el 1 para que nos de la posicion correcta.
    Otra forma seria fijar el rango de busqueda de COINCIDIR a $A$5:$D$5. En este caso no haria falta agregar un 1.
    Cualquier duda no dejes de preguntarme.

    ResponderBorrar
  3. En el ejemplo has usado dos criterios, si se quisiera usar tres criterios o más, se puede usar buscarv o existe otra función.

    ResponderBorrar
  4. Hola,
    será el tema de una futura nota.

    ResponderBorrar
  5. hola te quería preguntar si sabes como dejar los rangos de la matriz de búsqueda variable, ya que tengo una matriz que varia su tamaño dependiendo el día.
    de antemano muchas gracias

    ResponderBorrar
  6. lo que dice azul, es posible, yo efectué un buscarv con 4 opciones mutando un poco la función que planteaste en este articulo

    ResponderBorrar
  7. Mauricio, puedes crear una rango variable (dinámico) usando la función DESREF, por ejemplo, como ya hemos mostrado en alguna nota de este blog.

    ResponderBorrar
  8. Don Jorge ...no puedo bajar el archivo como ejercicio ...no encuentro la forma de validar los datos en la celda descrita
    espero me pueda ayudar
    Sllds

    ResponderBorrar
  9. Ricardo, acabo de corregir el enlace en la nota.

    ResponderBorrar
  10. Sr. Jorge primero felicitarlo por este blog y agradecerle por su disposición desinteresada en colaborar a los que no tenemos un manejo de Excel tan amplio!
    Lo segundo es que el archivo de ejemplo para descargar no se encuentra disponible. Gracias!!!

    ResponderBorrar
  11. Jota,
    estoy teniendo problemas con el sitio donde guardo los archivos. Momentáneamente puedes descargarlo de esta dirección.

    ResponderBorrar
  12. hola jorge,
    como se puede resolver el problema si en la tabla hay valores repetidos?

    ResponderBorrar
  13. Hola Jorge, quisiera saber a que correo te envio, un archivo similar a esta formula, pero busco algo diferente.

    ResponderBorrar
  14. La formula esta muy bien, pero yo busco algo parecido pero diferente. Te quisiera enviar un archivo para que lo vieras y me ayudaras en mi formula. saludos

    ResponderBorrar
  15. Fijate en el enlace Ayuda (en la parte superior del blog).

    ResponderBorrar
  16. Hola Jorge, te felicito por el blog está muy interesante, Quisiera saber si tienes alguna nota donde se explique como buscarv con tres criterios teniendo dos criterios en las columnas y uno en las filas. Agradezco la ayuda que puedas darme

    ResponderBorrar
  17. No específicamente, pero ¿por qué usar BUSCARV? Creo que tendrías que definir primero el problema a resolver y luego encontrar la herramienta adecuada. Tal vez una tabla dinámica te de una solución mucho más eficiente.

    ResponderBorrar
  18. Hola buen dia, estoy usando la formula que sugeriste en un principio, pero no me funciona seguramente estoy haciendo algo mal.
    Imagina que tengo un archivo de asistencia personal de excel texto plano, lo meto en una hoja y de ahi yo hago el reporte para la nomina, de busco por numero de empleado, me traigo el nombre con buscarv, y quiero traerme la hora de entrada y la hora de salida que esta en formato AHORA(), la cuestion es que no me trae la hora me manda #REF!.

    ResponderBorrar
  19. El error #REF! significa que la fórmula se refiere a un rango inexistente o a una celda que contiene el error #REF!.
    Este tipo de error suele suceder cuando copiamos una fórmula con referencias relativas y resultado es una celda inexistente (por ejemplo, una fórmula en la celda B1 que tiene una referencia a la celda A1, si la copiamos en otra hoja a la celda A10 convierte la referencia a A0, que obviamente no existe).

    ResponderBorrar
  20. si la tabla con los agentes y productos estuviera en otra hoja del excel como lo hago?

    ResponderBorrar
  21. De la misma manera. El rango de la tabla puede estar en otra hoja e inclusive en otro cuaderno.

    ResponderBorrar
  22. Hola, tengo una duda.
    Tengo una tabla con 1 columna con usuarios seguida de una columna con sus respectivos correos electrónicos.Luego tengo otra columna con usuarios y sus respectivos correos que teóricamente deberían ser los mismos que en las anteriores columnas.Necesitaría una fórmula para que mire los usuarios que están en ambas columnas de usuarios y revisar que los correos sean los mismo en ambas columnas.Gracias

    ResponderBorrar
  23. SAludos cordiales

    Tengo una lista de valores con formato de minuto y segundos. Es un registro de tiempos de una carrera de 400 m, y de acuerdo a intervalos se asigna una calificación, correspondiente al tiempo empleado para recorrer esta distancia, a la hora de buscar el valor correspondientes (para cada alumno) en la matriz, me da un valor de error, cómo puedo resolver esto?

    ResponderBorrar
  24. ¿Qué función estás usando para encontrar el valor correspondiente a cada alumno(BUSCARV, INDICE...)? ¿Qué error da (#VALOR!, #REF!...)?

    ResponderBorrar
  25. Tengo un caso muy parecido a este con agentes, aunque no sean productos, es un tipo de informacion similar y que dice respecto a cada agente. Sigo los pasos que indica, pero no funciona...

    ResponderBorrar
  26. Sin ver el ejemplo no hay mucho que pueda decirte...

    ResponderBorrar
  27. Hola Jorge:
    Sigo ti blog desde hace tiempo y me ha solucionado varios problemas,mil gracias. ahora estoy atorado con un problema de una tabla con dos criterios de búsqueda, pero en dos columnas, quiero obtener el dato de un valor de una tercera referida a esas condiciones, lo intente con Buscarv y Coincidir además con tablas dinámicas pero me lo soluciona a medias

    ResponderBorrar
  28. Mil gracias, bastante explicito, la segmentación es una excelente solución.

    ResponderBorrar