Ir al contenido principal

buscarv con varios resultados

Es de las preguntas mas recurrentes que he tenido: ¿se puede lograr que la función BUSCARV() devuelva varios resultados? Si recordamos el uso de esta función, sabremos que la misma buscar en valor en el rango especificado, retornando un solo resultado. Si en la tabla tenermos varios registros iguales BUSCARV() solo nos devolverá el primero de ellos, omitiendo el resto.
Entonces ¿se puede? Bueno, aplicando otra técnica sencilla que se me ocurrió al intentar solucionar el planteamiento de un lector... si, puedo hacerlo.... pero sin usar BUSCARV().
la idea es que coloquemos en E1 el código del producto a buscar y a partir de E2 nos devuelva todas las coincidencias de la tabla.
[+/-] Ver el resto / Ocultar

Comentarios

  1. damián...
    junto con saludarte y agradecer la labor que haces al amigarnos de este gran y utilizado programa, me interesa saber si es posible realizar este mismo ejercicio pero para una matriz nxn de datos... he intentado extenderlo pero me ha sido muy difícil.

    de antemano gracias y espero tu respuesta
    saludos cordiales

    ResponderEliminar
  2. hola luximpi: aclarame un poco mas sobre que necesitas realizar, por que no comprendo el tema de "nxn" de datos, ya que no me queda muy en claro.
    muchas gracias por tus palabras.
    un abrazo

    ResponderEliminar
  3. me refiero a mas columnas y filas ( en verdad debiese haber dicho matriz n x m con n filas y m columnas)...
    lo que necesito hacer es ubicar un codigo(ej: MT-CF) en una fila de una matriz n x m de datos y obtener la info de toda la fila, es decir, hacer la comparación que hacías al principio pero que arroje todo lo que aparece en dicha fila... no se si me explique bien y quizá es más simple por otro método. Estoy haciendo mi práctica pero el área administrativa no es el fuerte de un Ingeniero Civil Eléctrica XD jajaja muchas gracias y saludos

    ResponderEliminar
  4. luximpi: creo que la solución a tu problema es sencilla.
    verás en el ejemplo que la lista de resultados ocupa la columna E, en cuyas celdas hay una funcion INDICE() que lee del rango de la columna B. Hasta ahí todo bien.
    Supongamos que tu tabla tiene 3 columnas. Con el archivo que proporcioné ya lees la segunda (B).
    Ahora en la columna F colocá esta función:
    =INDICE($C$1:$C$8;K.ESIMO.MAYOR($D$2:$D$8;FILA(D2)-1))

    es decir: estamos ante lo mismo, solo que en lugar de leer los datos de la columna B, lo hago sobre la columna C, la tercer columna de tu tabla. y funciona muy bien

    te dejo el enlace al archivo con las modificaciones, así lo estudias y ves como puedes aplicarlo a tu proyecto:
    https://sites.google.com/site/damianomarsilva2/BuscarVVV02.xls
    suerte y cualquier cosa me avisas.

    ResponderEliminar
  5. Damian, tengo un problema.
    necesito la manera de unir un buscarv con un buscarh, hay alguna manera de hacerlo???
    o alguna funcion que me permita buscar un valor verticalmente y luego buscar en esa fila un valor que esta relacionado con otro.

    ResponderEliminar
  6. Andrés: date una vuelta por esta entrada: http://damianexcel.blogspot.com/2010/03/otras-formas-de-buscar-mas-complejas.html
    creo que con Indice() y Coincidir() anidadas podes llegar a lograr lo que necesitas.
    cualquier cosa me avisas.

    ResponderEliminar
  7. DAMIAN, ESTOY VIENDO TU EXPLICACION Y ME GUSTARIA VER SI PODEMOS AVANZAR UN POCO MAS. VOS ESTAS BUSCANDO DESCRIPCIONES IDENTICAS Y ME GUSTARIA APLICAR ESTO PARA DESCRIPCIONES SIMILARES. POR EJEMPLO CODIGO ES "ACIDO SULFURICO" Y "SULFUR ACID" YO QUIERO BUSCARLA LA PALABRA "SULFUR" Y QUE TRAIGA AMBOS CODIGOS.

    ResponderEliminar
  8. Para hacer algo sencillo y no complicarlo demasiado, estimo que podemos hacer uso de la funcion =ENCONTRAR(texto_buscado;dentro_del_texto)
    Deberás borrar las funciones de la columna C y reemplazarla por esta:
    =SI(NO(ESERR(ENCONTRAR("sulfuric";A2)));FILA();"")

    bueno, veamos: le estoy diciendo esto: si no arroja un error la función que busca "sulfuric" dentro de la celda, entonces colocá el nro de fila en la que se encuentra.

    cabe aclara que si con ENCONTRAR() no hallamos el texto buscado, esta nos devuelve un error. De ahí que primero pregunte con un =SI().

    lo probé y funciona bien. cualquier duda me avisas.
    gracias x tu mensaje

    ResponderEliminar
  9. Tengo que haer un grafico que debe contener
    grupos que reiben beca
    2a=5
    4b=0
    6a=8
    8a=2
    8b=0
    primero quiero graficar en tipo de pastel pero que los de cero no se incluyan
    y que el grafico muestre el total en este caso 15 La carrera y el tipo de Beca que otorgo y la carrera en la que lo otorgo

    ResponderEliminar
  10. christian: deberías enviarme un correo con el archivo adjunto, así puedo analizar bien la estructura de la tabla. Avisame aquí cuando lo remitas (fijate que al pié del formulario está la dirección de correo electrónico)

    ResponderEliminar
  11. Hola quisiera saber, como puedes resolver este mismo problema pero con macros, espero me puedas ayudar, gracias de antemano

    ResponderEliminar
  12. no entiendo muy bien la primera parte =SI(A2=$E$1;FILA();"") que valor debo de ingresar en la parte donde dice fila();""....??

    ResponderEliminar
  13. Dentro de la función FILA() no va ningún argumento. Lo que dice mi fórmula es: si el valor de A2 coincide con el valor ingresado en E1, entonces devolveme en qué fila se encuentra. De ahí en mas formo una "matriz" con las coincidencias y las busco.

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

funciones: convertir numeros a letras con excel

En realidad hace tiempo que vienen consultándome sobre esto... quizás cinco o seis años . Debe ser una de las funciones mas buscadas de Excel, por lejos: la posibilidad de escribir: 1.534,63 y que en una celda aparezca magicamente "un mil quinientos treinta y cuatro c/15/100". Aquí les dejo una solución, basada en funciones , sin utilizar macros, la cual preparé exclusivamente para este Blog. A pesar de los millones de usuarios que requieren esta herramienta, no viene incorporada en Excel, debemos armarla nosotros mismos .  Luego de la imagen irá la explicación de como llegué a lograr esto, dado que es un proceso medianamente complejo , que utiliza tres o cuatro funciones básicas y requiere de varios pasos. así quedará nuestra planilla y siempre devolverá en letras el valor que ingresemos en A1 [+/-] Ver el resto / Ocultar Desde ya aclaro: esta no es " la forma " de hacerlo, simplemente es una mas, evitando el uso de macros. Sobre esta base, comencemos: 1) El núme

macros: como enviar mails desde Excel (vba)

Un gran amigo "on-line", Johan Moreno, de Colombia , me hizo llegar la inquietud de cómo enviar mails desde Excel . Si bien contaba con algunas líneas de código sobre el particular, decidí retomar mi ejemplo y adaptarlo mejor a las circunstancias. Hace unos minutos termino de remitirle un correo con la solución a Johan... desde Excel y con un archivo adjunto, mismo que transcribo a continuación para ayudar a todos con esta tarea. Veamos primero las dos formas principales de enviar mails: mediante Outlook o nuestro Web Mail ( yahoo, gmail, hotmail, etc, etc ) No soy usuario de Outlook en lo absoluto: no confío en los agujeros de seguridad que continuamente aparecen y, por otro lado, t eniendo a mi alcance una herramienta tan poderosa (y gratuita) como Gmail, la cual ahora también permite sincronizar los mensaje con la Pc para verlos offline (deben activarlo en "google labs") ... no creo que me haga usuario ni hoy ni mañana. Igualmente mas adelante daré una solució