Extraer varias columnas o valores con BUSCARV

Ya en su momento comentamos la función BUSCARV, puedes consultar el post haciendo clic aquí. Y comentamos que busca el dato en la primera columna de la tabla y extrae el dato contenido en una columna.

¿Pero qué ocurre si deseamos extraer varios datos de varias columnas?

¿Podemos hacerlo de una sola vez?

Como puedes imaginar, la respuesta es afirmativa. Se puede.

Necesitaremos utilizar además del BUSCARV, las fórmulas matriciales. Que también puedes consultar haciendo clic aquí el post correspondiente.

Supongamos que tenemos esta serie de artículos:

 

Tabla con artículos a consultar
Tabla con artículos a consultar

Y ahora queremos extraer en una única vez la descripción, el stock y el descuento. Estos campos ocupan las columnas 2, 4 y 5 en la tabla. Podemos hacer una a una las fórmulas y extraer cada una de ellas, o también podemos usar una fórmula matricial que extraiga todas las que necesitemos.

En la celda A13 de la imagen siguiente podemos ver la fórmula:

Buscarv extraer varias columnas
Buscarv extraer varias columnas

Sigue los pasos siguientes:

  • Selecciona el rango donde vas a obtener el resultado teniendo en cuenta que éste ha de ocupar varias celdas. En nuestro ejemplo, antes de escribir la fórmula he seleccionado las celdas A13, B13 y C13 pues quiero extraer 3 datos.
  • Escribe la fórmula indicando cual es el valor a buscar y la tabla tal y como se haría normalmente con BUSCARV. Puedes revisar el enlace que escribí al comienzo, si no lo recuerdas.
  • El argumento tercero de la función es normalmente la columna a extraer. Ahí es donde indicaremos varias columnas, y lo haremos en forma matricial. Observa que están escritas entre llaves, así: {2,4,5}. Esto quiere decir que queremos extraer el dato de la columna 2 (descripción), 4 (Stock) y 5 (descuento).
  • Cuando termines la fórmula no olvides que se trata de una fórmula matricial y por lo tanto no hay que pulsar sólo Intro, hay que pulsar la combinación Ctrl + Shift + Intro para que funcione.

El resultado es que inmediatamente aparecen los tres valores, cada uno en su celda correspondiente.

¿Funcionó?

Anuncios

19 thoughts on “Extraer varias columnas o valores con BUSCARV

  1. Hola, que tal?. quisiera saber si puedo buscar un dato en otra base y si coincide traer un dato de otra columna. es decir tengo en el archivo Clientes la columna Documento donde consigno su documento de identidad y la columna Contrato y en otro archivo llamado Factura la columna Documento donde se consigna el mismo dato del archivo Clientes, entonces necesito buscar el documento de identidad del archivo Factura en el archivo Clientes, para que me devuelva el contrato. Muchas gracias

    • Hola Jeanette, gracias por escribir en mi blog. Sí perfectamente puedes buscar en otro libro con BuscaV. Cuando hagas la fórmula, deja los dos libros abiertos, tanto en el que haces la fórmula como en el que tienes los datos del cliente. Utiliza el cursor para escribir la fórmula, desplázate de un libro a otro y verás que Excel te muestra en la fórmula el nombre del libro en el que está el dato a buscar. Luego cuando tengas la fórmula escrita correctamente, puedes cerrar el libro de los clientes y seguirá funcionando. El único cuidado que deberás de tener, es el de no borrarlo o cambiarle el nombre al libro.
      Tengo una entrada en este blog en que comento más sobre buscarV en hojas y libros distintos pulsa aquí
      Un saludo

  2. Hola,
    Que ocurre en el caso de que el Valor que busco se repite varias veces y quiero traer todas la columnas en las que se repite?.
    Hay alguna forma sencilla de hacer esto? o involucraria hacer macros?
    Gracias

  3. Hola denlarentd, gracias por el comentario. Creo que es probable que al enviar, el sistema haya cortado parte de tu mensaje, pues parece que no está completo. Intentaré responder.
    Siempre que hablamos de fórmulas matriciales, hay que acabar pulsando Ctrl+Shift+Intro (la tecla Shift es la May de algunos teclados) en vez de pulsar simplemente Intro como lo hacemos con las demás fórmulas. Si tienes algún problema al introducirla, la versión no debería influir . Lo que sí influye es el idioma, recuerdo que en la versión inglesa la separación entre los valores no es con comas sino con \ (la barra invertida) cuando hablamos de filas y ; cuando sea en columnas.

  4. Hola Thonatiu, gracias por tu comentario. Desde luego una macro te soluciona claramente el problema y además es bastante sencilla de hacer, yo te animaría a intentarlo.

  5. Buen dia y gracias por este tutorial, pero un problema cuando intento hacerlo con mi archivo, me marca el error N/A# pero al hacerlo con tu ejemplo funciona de maravilla. Que es lo que me esta fallando? Me puedes ayudar por favor?

    Gracias de antemano por gran ayuda y atencion al respecto…

    • Un comentario mas, hice otras busquedas con VLOOKUP en el mismo archivo e inclusive en la misma hoja y funciona muy bien, pero la siguiente busqueda que quiero hacer (la cual es la que mencione en mi comentario anterior) no funciona aun tratando de que no sea matricial.
      El archivo del cual quiero extraer la informacion tiene varias condicionales y/o formulas. Pudiera ser eso un obstaculo?

      Gracias nuevamente por la informacion que me puedas proporcionar…

      • Hola James, gracias por tu comentario. Es difícil dar una respuesta cuando no se tiene delante el ejemplo. El error #N/A suele aparecer con la función buscarV cuando Excel no puede encontrar el valor buscado y en principio el hecho de que tengas fórmulas no debería influir, siempre y cuando lo que estés buscando sea el resultado de esa fórmula. Acabo de probar con un pequeño ejemplo en el cual puse una fórmula condicional en la primera columna de la tabla y he hecho el buscarV sobre esa tabla buscando el resultado del condicional. Ha funcionado a la perfección.
        Una de las cosas que suele dar bastantes problemas son los espacios en blanco de más. No se ven, pero están ahí e influyen en el resultado. Comprueba que no haya espacios de más tanto en el valor buscado en la fórmula, como en la tabla.

      • Otra cuestión, es que si estuvieras usando la versión en inglés, la forma de referirse a las filas en las constantes matriciales es un poco diferente y se separan con punto y coma en lugar de coma. Aunque imagino que no es problema, pues dices que con el ejemplo del tutorial sí te funciona, te lo comento por si acaso.
        Saludos

  6. Hola en este caso estás extrayendo un vector. Será posible extraer una matriz?? o sea que al buscar un valor te arroje valores que estén en esa misma fila y en filas de abajo? por ejemplo, al buscar el valor A2, arroje como resultado un rango de valores asociados a A2, B:2 hasta C4 por ejemplo

    • Hola Miguel Angel, en teoría sí que se puede. No dispongo ahora de tiempo, pero hay que pensar que en realidad lo que estamos escribiendo entre las llaves, es una constante matricial, Deberías poder extraer un área,
      Y en cualquier caso, también existen funciones que te permiten extraer una área, es el caso de Desref, por ejemplo. Se puede perfectamente usar una función anidada, es decir, como argumento de otra. En cuanto disponga de algo más de tiempo investigo y te comento.
      Un saludo

  7. Hola que tal, hice todo lo que describes pero en lugar de llenarme 3 celdas solo me llena una donde seleccione primero, que puedo hacer, saludos. Muchas gracias por tu informacion

    • Hola Luis Alberto, asegúrate de seleccionar 3 celdas antes de escribir la función y de pulsar Ctrl+Shift+Intro. Es una forma matricial de buscarv y hay que seleccionar tantas celdas como resultados esperamos. Gracias, Un saludo.

      • Muchas gracias, si me a servido, pero tengo una duda, tengo que meter datos en celdas combinadas y al hacer eso me dice que no puedo usar esa función para celdas combinadas, como le puedo hacer?. Saludos

      • Me alegro de que te sirviera.
        Veo complicado que puedas extraer datos en celdas combinadas, ya que por propia definición, en realidad son varias celdas, sólo la primera está ocupada aunque parezca que lo están todas y es una única celda. Para la forma matricial del BuscarV necesitas celdas contiguas. Una posible solución que se me ocurre, es que no hagas la extracción directamente en esas celdas, sino que utilices otras y luego en las combinadas hagas referencia a ellas.
        Por ejemplo, supón que usas las celdas B2, C2 y D2 para hacer el BuscarV, pues luego en la primera celda combinada escribes la fórmula =B2, en la segunda celda combinada =C2 y en la tercera D2.
        No es directo, pero funcionar tiene que funcionar.
        Un saludo y espero que te ayude.

    • Hola de nuevo Luis Alberto, decirte en primer lugar que con macros se pueden hacer muchas cosas, las que haces normalmente con los menús de Excel y muchas más.
      Y a continuación tengo que decirte que desconozco el problema que tienes en todos los detalles, de manera global, y también desconozco tus conocimientos de programación, por lo que no puedo darte una respuesta concreta.
      Si se trata de un problema que tienes que resolver a diario, o tiene que tratarse muchísimos datos, probablemente sí sería conveniente invertir tiempo en realizar una macro. Si es algo que se presenta de manera puntual, o sólo son unos pocos datos, entonces lo más práctico es plantearlo con fórmulas o hacer una plantilla con ellas, seguramente.
      Este criterio espero que te sirva de orientación a la hora de decidir.
      Un saludo, ya me comentarás.
      Gracias

  8. Es posible extraer los tres datos en una misma celda, vaya sin tener que seleccionar las 3 celdas de destino, sé que se puede utilizando la función concatenar y anidar tantas buscarv como sea necesario, sin embargo busco simplificar el proceso. gracias.

    • Hola Borja, pues yo creo que para lo que comentas, lo más práctico sería crearte una función de usuario. Es relativamente sencillo obtener lo que quieres y, aunque te llevaría un tiempo hacerla, la tendrías disponible siempre que la necesites. Lo único que tienes que valorar es si te sería rentable esta dedicación de tiempo en función de tus conocimientos y las veces que la fueras a utilizar.
      La fórmula descrita en el post es matricial y el resultado se devuelve en un rango, que efectivamente debes indicar antes…
      Gracias por tu comentario.
      Saludos

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s