Guía rápida para usar VLOOKUP, BUSCARV, CONSULTAV.

En Excel, la función VLOOKUP (y sus traducciones al español) es muy útil para realizar búsquedas. Aquí anexo una guía rápida sobre cómo utilizarla:

=VLOOKUP(qué celda buscar, en qué rango buscarla, qué columna regresar, qué regresar si no la encuentra)

En español, en lugar de VLOOKUP:

  • hasta Excel 2007 se usa BUSCARV.
  • desde Excel 2010 se usa CONSULTAV

qué celda buscar:

es la celda que contiene el valor que quiero buscar.

en qué rango buscarla:

rango de celdas donde se va a buscar. La primera celda contiene los valores que buscamos.

Tip: hay que oprimir la tecla F4 después de seleccionarlo, para que quede fijo.

qué columna regresar:

la columna del rango que contiene el valor que buscamos es la 1, y hacia la derecha está la 2, luego la 3, etcétera.

qué regresar si no la encuentra:

0 (cero) para no regresar nada y marcar error.
1 (uno) para regresar un valor anterior.

En Auval contamos con cursos de Excel que le pueden ayudar a ahorrar tiempo. Llámenos al 664 231-0179 o escríbanos a cursos@auval.com.mx.

Armando Franco © 2011

Compartir
Acerca de

Armando Franco tiene amplia experiencia en las áreas de sistemas, compras y proyectos. Cuenta con una Maestría en Administración de Tecnologías de Información, y las certificaciones Certified Purchasing Manager, Microsoft Office 2010 Specialist, Expert y Master.

Publicado en Excel, Tecnología, Computación y Sistemas Etiquetado con: , , , , , , , ,
173 Comentarios en “Guía rápida para usar VLOOKUP, BUSCARV, CONSULTAV.
  1. Jorge dice:

    Hola, existe la posibilidad de que en determinada tabla, digamos con 6 columnas, encuentre determinado valor, por ejemplo ID, y me regrese el renglón completo de la información?

    Saludos y gracias

    • Hay que repetir 5 veces la función, cambiando la columna que queremos.

      También se puede hacer así:
      – Seleccionamos las 5 celdas que queremos llenar en un renglón. Por ejemplo, B2:F2.
      – Escribimos esta función:

      =BUSCARV(A2, Tabla, {2,3,4,5,6}, 0)
      =VLOOKUP(A2, Tabla, {2,3,4,5,6}, 0)

      – Oprimimos Ctrl Shift Enter.

      Esta es una fórmula matricial. Hay que copiar siempre las 5 celdas completas.

  2. christian dice:

    buen dia mira tengo el siguiente macro

    ActiveWindow.SmallScroll Down:=45
    Range(“C56”).Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows(“LISTA MAESTRA DIBUJOS DE COMPONENTES.xls”).Activate
    Columns(“B:B”).Select
    Selection.Find(What:=”-v5″, After:=ActiveCell, LookIn:=xlFormulas, _
    LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
    MatchCase:=False, SearchFormat:=False).Activate
    mi problema es que cuando le meto otros datos me sigue apareciendo los mismos por el find que me ti el problema es que no puedo hacer que cambie el find

    ayuda porfa

    • Se pudiera cambiar de esta manera el ”-v5″ por INPUTBOX(“Filtrar por esto”)

      De esto:

      Selection.Find(What:=”-v5″, After:=ActiveCell, LookIn:=xlFormulas, _

      Pasamos a esto:

      Selection.Find(What:=INPUTBOX(“Filtrar por esto”), After:=ActiveCell, LookIn:=xlFormulas, _

      Así preguntará qué buscar.

  3. GUSTAVO VAZQUEZ CORDOBA dice:

    Hola armando franco veo q sabes mucho la verdad es algo q cuesta aprender y hay que quemarse mucho las pestañas, tengo un archivo en el cual tiene 3 bases de datos y desde cuando eh querido aprender visual y macros para poder hacer en una hoja el formulario o no se como se le llame para que en esa hoja consulte y me mande la informacion que por logica va a jalar de las bases de datos..

    • Gracias por tu comentario, Gustavo. Suena a que necesitas hacer un VLOOKUP que tome información de varias bases de datos y lo pegue en una, pero necesitaría más información para entender bien qué necesitas.

      • GUSTAVO VAZQUEZ CORDOBA dice:

        Gracias armando por tomarte el tiempo de leer mi ayuda la verdad lo que en si es q me gustaria aprender a hacer ese tipo de proyectos pero todo con calma ya vere la forma de tomar un curso o buscar manuales online, podrias mandarme tu correo para mandarte el archivo??

  4. Liliana dice:

    Buenas tardes!
    Tengo 4 columnas en cada una de ellas hay un status diferente en cada celda se llena la fecha dependiendo de la fase en la que se encuentre. Quiero saber como obtener el status dependiendo de la ultima fecha que se haya capturado en la fila…
    Ejemplo:
    Si un ticket esta en registro solo tiene llena la fecha en la columna de registro si un ticket se encuentra en asignado tiene llena la fecha de registro y la de asignado pero en la nueva columna que voy a creas solo quiero me despliegue el ultimo status que sera la ultima fecha que tengo llena

  5. Facundo dice:

    Consulta, quiero hacer una búsqueda de un código y que me traiga todos los registros que están asociados a ese código, no solo el primero. ¿Cómo puedo hacer? Hay alguna manera de hacerlo? la fórmula vlookup solo me trae el primero….

    • En tu hoja original, suponiendo que el dato que buscas está en la columna B, necesitas poner esta fórmula en la columna A, en la celda A2.
      =b2 & countifs($b$2:b2,b2)
      =b2 & contar.si.conjunto($b$2:b2,b2)

      Esto te dirá cuántas veces se repite el número.

      En la hoja donde buscas, busca pegándole &row(a1) a los datos buscados.

      Me dices si te funcionó.

  6. Jorge Armando dice:

    Que tal Tocayo,

    espero te encentres muy bien, tengo una duda sobre VLOOKUP , al aplicarlo los datos que me arrojan siempre es el mismo valor (el primero que tomo) para todos, y me doy cuenta que tengo que darle doble click y enter a cada uno para que se actualize, sabes que estoy haciendo diferente ?? por que si antes funcionaba bien ahora ya no??

    saludos y gracias por tu ayuda

  7. Noe dice:

    Necesito pasar de una hoja a otra unas facturas con el mismo numero de factura pero con diferente No de parte en cada renglón, pueden ser 3 o mas renglones de cada factura

  8. sergio perez dice:

    mira estoy haciendo una planilla excel para matricular alumnos ocupo la sigente funcion para buscar alumnos que ya tenga sus datos:

    Public Function Busr(indice)
    bb = Application.WorksheetFunction.VLookup(Sheets(“Hoja1”).Range(“C9”).value, Sheets(“Hoja2”).Range(“A1:h100″), indice, False)
    If IsError(bb) Then
    Busr = ” ”
    Else
    Busr = bb
    End If
    End Function

    la función me funciona pero si cambio el rut no actualiza los datos automáticamente como lo deseo, quiero saber como lo puedo hacer (me urge)

    • No entiendo a qué te refieres con que cambias el rut. Pero la función es para hacer un VLOOKUP de lo que tienes en C9 y regresar el valor de la columna que indice le indica.

      ¿No te serviría igual la función así, sin macro?

      =IFERROR(VLOOKUP(Hoja1!C9, Hoja2!$a$1:$h$100, indice, false),””)

      Nada más cambia el valor de indice por la referencia de celda que le pasas a la función.

  9. Ignacio Castro dice:

    Armando,

    Junto con saludarle quisiera que me ayude con un problema. Realizo la función buscarv sin ningún problema dentro de las hojas de datos, pero al hacerlo de una hoja a otra me entrega N/A. He puesto formato de número en ambas.

    Atento a sus comentarios

  10. Peyton dice:

    Hola Armando, uso mucho la función de vlooup para buscar información entre 2 hojas, la información la extraigo de 2 sistemas diferentes con extensión .csv, esta información la paso a un archivo con extensión .txt y procedo aplicar la función vlooup. El problema que tengo es que en una hoja la función solo la realiza en pocas celdas y en la mayoría de las celdas coloca N/A (pero los datos si están en la otra hoja), y si esta función la realizo en la otra hoja la función la realiza bien; todos los datos de las 2 hojas tienen un formato de texto. Tu sabes a que se debe que en una hoja si me salga la función pero al hacerla en la otra hoja solo la hace en unas celdas y en otras no??

    • Normalmente los problemas de que no encuentra un valor se deben a que un número es número y otro es texto. Si estás buscando textos, puede ser que uno tenga espacios y otro no.

      Si en ambas hojas tienes los datos en A1, haz lo siguiente:
      a) Usa la fórmula =LARGO(A1) / =LEN(A1) en ambas hojas. Si da diferente, el problema son los espacios.
      b) Usa la fórmula =ESTEXTO(A1) / =ISTEXT(A1) en ambas hojas. Si da diferente, uno es texto y otro no.

  11. Eduardo Prieto dice:

    Hola Armando, tengo un problema, Tengo una base de datos con numeros de parte que se repiten, con su respectiva orden de trabajo que siempre es distinta y cada orden de trabajo tiene su cantidad.

    en el momento en que me solicitan una lista de numeros de parte para procesar no encuentro como hacerle saber al VLOOKUP, que si la cantidad solicitada es inferir al primer valor encontrado siga buscando la siguiente hasta encontrar algun valor que sea igual o mayor que la cantidad de la solicitud, y que me muestre la orden de trabajo que cumple con este requerimiento.

    Base de datos
    parte orden cantidad
    P1594 O0001 5
    P4567 O0002 8
    P1794 O0003 5
    P4577 O0004 8
    P1794 O0005 10
    P4579 O0006 8

    Y necesito procesar 10 piezas de la P1794. el VLOOKUP, me encuentra la O0003 y no es suficiente para cubrir el requerimiento, tenia que haber encontrado la O0005.

    • VLOOKUP no puede hacer lo que necesitas. Habría que usar una fórmula matricial.

      Si tienes los datos de A1 a C8, en E2 tienes el número de parte que buscas y en F2 tienes la cantidad, puedes usar esta fórmula.

      =INDEX($B$2:$B$8,MAX(($A$2:$A$8 = E2) * ($C$2:$C$8 >= F2) * ROW($A$2:$A$8)))

      Tienes que oprimir CTRL SHIFT ENTER en lugar de ENTER solo al terminar de escribir la fórmula.

      La fórmula busca en el rango b2 a b8 el renglón más alto donde lo de la columna A es igual a E2 y la columna C es igual a F2.

      Aún con esta fórmula tendrías problemas si tienes dos solicitudes de material, porque no toma en cuenta el material asignado.

  12. carole dice:

    Hola Armando,

    Tengo 1 hoja excel con
    – columna B: código de producto (que entro yo manualmente)
    – columna D: el ultimo nº de edición con la formula:
    =”0″&SUM(E2:H2)&”/100″
    o
    =SUM(E2:H2)&”/50″
    según si es una edición de 50 o de 100.

    En mi hoja 2 tengo:
    – columna B: código de producto (que entro yo manualmente)
    – columna D: el ultimo nº de edición +1 (es decir que si mi ultimo nº es 03/100, pues que el nuevo producto con el mismo código sea 04/100)

    Entre esta formula en la columna D de la hoja 2: =VLOOKUP(B28,Prints!B:D,3,0)

    Me sale el nº de edición correcto pero todos los productos del mismo código cambian a este mismo nº de edición.
    por ejemplo en vez de salir así:
    CH001 “nombre producto” 01/100
    CH001 “nombre producto” 02/100
    CH001 “nombre producto” 03/100
    sale así:
    CH001 “nombre producto” 03/100
    CH001 “nombre producto” 03/100
    CH001 “nombre producto” 03/100

    Muchas gracias y un saludo.

    • Suponiendo que CH001 está en la primera columna, podemos usar una fórmula para contar cuántas veces se ha repetido hasta ese renglón.

      La fórmula, si se escribe en B1, es esta:

      =COUNTIF(A$1:A1, A1)

      Al copiarla hacia abajo dará el valor correcto.

  13. Dulce dice:

    Tengo dos problemas al utilizar formulas, el primero es que hago la formula con la ayuda del sistema (no la tecleo complete si no que voy paso a paso según lo que los cuadros indiquen) y la celda no me arroja el resultado, solo la formula ¿Qué estoy haciendo mal? Esto no sucede siempre.

    El Segundo es que al ingresar los datos para hacer una formula, cuando voy a seleccionar la tabla, no me aparece la barra de ayuda (en la que al seleccionar manualmente la tabla, automáticamente se agrega a la formula la ubicación) tendría que ingresar la información manualmente pero preferiría solo seleccionar la tabla, ¿qué puedo hacer?

    Gracias!

    • Primero: Probablemente la columna tiene formato de texto. Se corrige así:
      a) Borrar el contenido de la celda.
      b) Dar formato general.
      c) Hacer la fórmula otra vez.

      Segundo: Dependiendo de la versión de Excel, se puede dar click en la tabla y oprimir Ctrl Shift Barra espaciadora para seleccionar la tabla rápidamente.

      ¿Funcionan estos tips?

      Saludos.

  14. Juan Carlos dice:

    Hola Buenos Días

    Tengo un formulario en donde a través de un botón hago clic y me llena
    algunos Textbox con vloockup de una pestaña pero al traerme una fecha me la trae con formato de numero siendo que en esa hoja yo tengo esos registros como fecha me podrías orientar.

    Saludos.

  15. edwin.l dice:

    cordial saludo, necesito realizar un BUSCARV pero el resultado que me debe de traer depende del contenido de dos columnas y están en la hoja 1 del libro, por ejemplo el dato de la columna 1 es valle, el dato de la columna 3 es cali y el dato que esta en la columna 7 es Colombia, que me traiga el Colombia siempre y cuando cumpla con las dos condiciones de las columnas 1 y 3….

    gracias

    Edwin Lenis

    • Para hacerlo con BUSCARV hay que concatenar las columnas 1 y 3 en otra columna y realizar la búsqueda sobre estas columnas nuevas.

      Existen las funciones INDICE y COINCIDIR.

      Supongamos que quiero buscar las celdas X1 y Y1 en las columnas A y B y regresar lo que esté en la columna C.

      =INDEX(C:C, COINCIDIR(X1&Y1, A:A & B:B, 0))

      Esta fórmula se introduce oprimiendo al mismo tiempo CTRL SHIFT ENTER en vez de nada más ENTER al terminar de teclearla.

  16. ary dice:

    ¿Cual es la diferencia entre utilizar Index y Vlook up? No hacen la misma funcion?

    • Armando dice:

      Sí hacen lo mismo. De hecho, INDEX se me hace más flexible. Pero es como tomarte una coca cola o tomarte un café para quitarte el sueño, depende de tus gustos.

      VLOOKUP es más famosa, quizá porque es más antigua. Lo voy a investigar.

  17. federico dice:

    tengo dos bases de datos con tres libros cada una, necesito que me ayuden quiero saber como sacar la formula para que me arroge los datos correctos, en mi base2 tengo 600 registros, y en mi base1 tengo 7000 registros necesito saber cuales ya tengo en mi base1 y me me los indique … por favor gracias

    • Armando dice:

      Agregas un VLOOKUP o BUSCARV en la base 2, buscando los de la base 1. Si te da #N/A, es que no están. Los que encuentre son los repetidos.

      Otra manera es copiar nada más los datos que quieres ver si están repetidos. Los pegas abajo de los de la base 2. Seleccionas todas la columna y vas a Inicio – Estilos – Formato condicional – Resaltar – Duplicados. Los que se pongan rojos ya están en la base 1.

  18. Carolina dice:

    Hola, buen día, necesito actualizar la fórmula, ya que no se me actualiza automáticamente. Una vez me dijeron que tenía q presionar ciertos botones, cuáles son?. ,Muchas gracias!

    • Armando dice:

      Seguramente es el botón fx que aparece a la izquierda de la barra de fórmulas, que es donde se ve la fórmula en la parte de arriba de las celdas, arriba de los títulos A, B, C, D…

  19. Dario Cesena dice:

    Hola,
    Muchas gracias de ante mano!

    Tengo que buscar una fecha determinada dentro de un conjunto de fechas que hay en una columna. Utilizo la función Vlookupvalue donde fijo como valor la fecha a buscar, el rango lo fijo donde se encuntra la columna con el conjunto de fechas…pero no hay manera…

    Dim lookupvalue As Variant, value As Variant, lookupRange As Range
    Dim aNumber As Variant

    value = diafinalanalisis

    Hoja9.Activate
    Hoja9.Cells(6, 3).Select
    MsgBox ActiveCell
    Set lookupRange = Hoja9.Range(“C6:C165”) ‘rango donde buscar
    ‘Queremos la columna 1
    lookupvalue = Application.VLookup(value, lookupRange, 1, False)
    ‘Si no encuentra valor finaliza con error 2024
    If IsError(lookupvalue) Then
    MsgBox (“No se ha encontrado el dia final de analisis… Hay algun error…”)

    La variable “diafinalanalisis” tiene el siguiene formao de fecha: “dd/mm/yyyy”…

    No me funciona y me da todo el rato el error 2024. . .
    Perosi le cambio las fechas por nombres… y busco un nombre si que me lo encuentra…

    no se que sucede…

    Muchas gracias.

    • Armando dice:

      Hola Dario.

      Necesitaría ver los datos, pero es probable que los datos donde estás buscando estén como texto y busques fecha, o viceversa. Selecciona la columna y oprime Ctrl-Shift-3 (o sea, Ctrl #). Si las fechas no cambian a formato dd/mm/aa entonces ese es el problema.

  20. joel huerta dice:

    Buen dia¡
    Pudieras ayudarme de favor, necesito poner una formula que me traiga 2 o mas valores de otra hoja, intente con el Vlookup, pero solo logre traer un resultado de una celda, puedo colocar 2 o mas vlookup en la misma celda?
    =VLOOKUP(C595,Sheet1!A2:M7,3,FALSE)es decir si el valor que estoy ordenando buscar se repite en otro renglon, lo puede traer tambien? saludos y gracias de antemano.

  21. ricardo tovar dice:

    necesito una formula para extraer una base de datos bajo un mismo criterio de diferentes pestañas.

  22. Bibiana Paola ZABALA MOLINA dice:

    buenos dias armando

    tengo un pequeño inconveniente necesito consultar lo siguien
    tengo varias celdas llenas ls cuales necesito llevarme informacion para otra hoja pero necesito que la formula me consulte tres caracteristicas la de la celda a,b y c
    quiere decir
    que cuando yo arme mi formula consulte que si la cobertura que esta en a es apoyo x tambien sea extraccion y que sea medicina general o la que comlleve en cada casilla para luego cargarme una cantidad a otra base

    • Armando dice:

      Hola.

      Suponiendo que la celda A2 tiene lo que quieres revisar, la siguiente fórmula da falso a menos que se cumplan las tres condiciones.

      =AND(NOT(ISERR(SEARCH(“Extracción”,A2))),NOT(ISERR(SEARCH(“Apoyo”,A2))),NOT(ISERR(SEARCH(“medicina general”,A2))))
      =Y(NO(ESERR(HALLAR(“Extracción”,A2))),NO(ESERR(HALLAR(“Apoyo”,A2))),NO(ESERR(HALLAR(“medicina general”,A2))))
      Y la que sigue da verdadero si se cumple cualquiera de las tres:

      =OR(NOT(ISERR(SEARCH(“Extracción”,A2))),NOT(ISERR(SEARCH(“Apoyo”,A2))),NOT(ISERR(SEARCH(“medicina general”,A2))))
      =O(NO(ESERR(HALLAR(“Extracción”,A2))),NO(ESERR(HALLAR(“Apoyo”,A2))),NO(ESERR(HALLAR(“medicina general”,A2))))

  23. Victor dice:

    Hola

    Sabes si existe alguna forma en la cual se obtenga el valor de la ultima columna o fila ,sin la necesidad de asignar una referencia en las funciónes Buscarv y buscarh respectivamente?

    Gracias

    • Armando dice:

      Hola Víctor.

      Si quieres saber el valor que tiene el último renglón que no está en blanco de la columna A, del renglón 1 al 18, puedes usar una fórmula como esta:

      =INDEX(A1:A18,MAX(IF($A$1:$A$18<>“”,ROW($A$1:$A$18),””)))

      Oprime Ctrl-Shift-Enter en lugar de Enter a secas, porque es una fórmula matricial.

      ¿Te sirve?

      • Victor dice:

        hola

        Use la siguiente fórmula: si.error(Buscarv(A1;C1:D5;Columnas(C1:D5);falso);Buscarh(A1;C1:D5;Filas(C1:D5);Falso), el problema ahora es que no se como condicionar el si.error para que pinte la celda cuando use el “valor” o el “valor_si_error”

        Gracias

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*