La función BUSCAR en Excel

La función BUSCAR en Excel nos permite buscar un valor dentro de un rango de celdas y como resultado nos devolverá el valor correspondiente del rango de resultados que especifiquemos. La función BUSCAR se puede utilizar en forma vectorial o en forma matricial.

Forma vectorial de la función BUSCAR

Comenzaré explicando la forma vectorial de la función BUSCAR.  Bajo esta forma podemos buscar un valor en un rango de celdas el cual debe ser una sola columna o una sola fila. La sintaxis para realizar la búsqueda es la siguiente:

Sintaxis de la función BUSCAR en Excel

  • Valor_buscado (obligatorio): Es el valor que deseamos encontrar.
  • Vector_de_compraración (obligatorio): Un rango de celdas que está formado por una sola columna o una sola fila en donde se realizará la búsqueda.
  • Vector_resultado (opcional): El rango de celdas que contiene la columna o fila de resultados que deseamos obtener.

El Vector_de_comparación debe estar siempre en orden ascendente, de lo contrario la función devolverá resultados incorrectos. En caso de especificar el Vector_resultado deberá ser del mismo tamaño que Vector_de_comparación.

Ejemplo de la función BUSCAR en forma vectorial

Para este ejemplo tengo una lista de alumnos con sus nombres, apellidos y calificaciones y de los cuales deseo encontrar la calificación de alguno de ellos con tan solo especificar su nombre.

Ejemplo de la función BUSCAR en su forma vectorial

En la celda F1 colocaré el nombre del alumno y en la celda F2 la función BUSCAR la cual me ayudará a obtener su calificación. Desarrollemos la fórmula paso a paso:

  1. Introducir la función BUSCAR y especificar el primer argumento que es el valor buscado.
    =BUSCAR(F1,
  2. Como segundo argumento debo especificar el rango donde se realizará la búsqueda:
    =BUSCAR(F1, A2:A6,
  3. El último argumento será el rango que tiene los resultados que deseo obtener y que en este ejemplo son las calificaciones en C2:C6:
    =BUSCAR(F1, A2:A6, C2:C6)

Observa cómo la función BUSCAR regresa la calificación que corresponde al nombre buscado.

Ejemplo de la función BUSCAR en Excel

Si en lugar de la calificación quisiera obtener el apellido del alumno basta con cambiar el tercer argumento de la función para indicar el rango que contiene los apellidos que es B2:B6.

Cambiar el vector de resultados de la función BUSCAR

Forma matricial de la función BUSCAR

La función BUSCAR también puede ser utilizada con un arreglo, el cual debe estar formado por los valores de búsqueda y los valores de regreso. La sintaxis para realizar la búsqueda de manera matricial es la siguiente:

Sintaxis de la función BUSCAR en su forma matricial

  • Valor_buscado (obligatorio): Es el valor que deseamos encontrar.
  • Matriz (obligatorio): Arreglo de valores que contiene tanto los valores de búsqueda y de resultados.

Ejemplo de la función BUSCAR en forma matricial

Hagamos un ejemplo sencillo para ilustrar el uso de la función BUSCAR en forma matricial. Supongamos que tengo un arreglo con las vocales del abecedario: {“A”,”E”,”I”,”O”,”U”} y por otro lado un arreglo indicando el número de vocales: {1, 2, 3, 4, 5}.

Dada una vocal en la celda A1 deseo saber qué número de vocal le corresponde. Para ello puedo utilizar la siguiente fórmula:

=BUSCAR(A1,{"A","E","I","O","U"; 1,2,3,4,5})

La función BUSCAR regresará el número de vocal que haya encontrado en la celda A1. Observa el resultado:

Ejemplo de la función BUSCAR en su forma matricial

Artículos relacionados
Funciones de búsqueda y referencia

34 comentarios en “La función BUSCAR en Excel

  1. CarLego

    Hola:
    Estoy usando Excel 2010 en español, e implenté el ejemplo. Si intento utilizar la función ‘BUSCAR’ para que en base a la calificación entregue el nombre no opera correctamente.

    =BUSCAR(F1;C2:C6;A2:A6)

    Para este ejemplo sólo las primeras 3 calificaciones funcionan, y luego para la cuarta y quinta entrega nombres erróneos. Diana y Enrique nunca aparecen.

    La búsqueda por números falla.

    1. Moises Autor

      Hola CarLego,
      Gracias por tu comentario, es una muy buena observación. Lo que debes hacer es ordenar de manera ascendente la columna Calificación. Ese es un requisito de la función BUSCAR, que el Vector_de_comparación siempre debe estar ordenado de manera ascendente. Si haces este ajuste el ejemplo funcionará correctamente.

      1. CarLego

        Gracias Moises por tu respuesta.
        Buscaba la funcionalidad de poder obtener de una gran tabla de datos fechas vs indices, una nueva columna que me entregue el mayor índice según la fecha. La idea era con la función MAX de la fila correspondiente asociar el nombre del índice, pero si requiere que tenga ordenada cada fila, ya no existe la ventaja de automatizarlo en una nueva casilla, porque debiera previamente tomar cada línea de fecha y ordenarla según sus títulos, lo que equivale a encontrar el nombre del índice manualmente. Se debería implementar una macro para automatizar el procedimiento, de forma que extraiga los títulos junto con los datos de una determinada fecha, ordenarlos, obtener los nombres, y repetir el procedimiento para la fecha siguiente.
        Sugerencia para Microsoft, que la función BUSCAR tal como su nombre lo indica, busque sin el requisito del ordenamiento previo, y más aún, cuando encuentre más de un elemento que responde al mismo valor (varios alumnos con la misma nota) no sólo entregue el primero, sino todo el listado que cumple con el criterio (todos los alumnos con la misma nota).

        Saludos, gracias y seguiré aprendiendo
        :)

      2. Diego

        Hola Moises!
        Siempre utilicé la funcion BUSCAR y anduvo bien.
        Necesitaba buscar valores dependiendo del mes en letras (enero, febrero, marzo, …) y me arrojaba resultados erróneos. Luego de ordenar alfabeticamente los valores (Abril, Agosto, Diciembre,…) funcionó perfectamente! esa es la solución sin lugar a dudas!
        GRACIAS! me ahorraste un dolor de cabeza
        Saludos

  2. Carolina Rios

    Disculpe cuando uso la opción buscar en forma vectorial lo que deseo es encontrar el nombre del alumno al que pertenece cierta nota, como lo puedo hacer? Agradecería su ayuda.

    1. Moisés Ortíz Autor

      Hola Carolina, tomando en cuenta el mismo ejemplo de este artículo podrías usar la función BUSCAR de la siguiente manera:
      BUSCAR(74, C2:C3, A2:A3)

      Esta fórmula daría como resultado “Alejandra” porque es quien tiene la calificación de 74. Debes tomar en consideración dos cosas: Deberás ordenar los datos por calificación de manera ascendente y además recordar que si tienes dos alumnos con la misma calificación obtendrás siempre el último de ellos.

  3. Sergio

    Buenas, tengo una dudilla, es que cuando uso la función buscar, si el parametro que busca no esta en la tabla, aun asi me saca una respuesta, por supuesto que no cuadra.

    1. Moisés Ortíz Autor

      Hola Sergio, si la función BUSCAR no puede encontrar el valor buscado entonces devolverá el valor más grande/último de la lista. Solo en caso de que el valor buscado no se encuentre y además sea menor que todos los valores de la lista entonces la función BUSCAR devolverá el error #N/A.
      Si quieres tener una coincidencia exacta, o de lo contrario obtener siempre el error #N/A, entonces te recomiendo utilizar la función BUSCARV.
      http://exceltotal.com/la-funcion-buscarv-en-excel/

  4. Aristides

    Genial, gracias por lo de ordenar alfabéticamente… me estaba matando!

  5. ELIANA

    al poner el nombre a buscar, si o si tiene q ser exacto?.. porq por ejemplo tengo una lista que cuando pongo la formula y pongo “contrato” me da como resultado otro numero porq en la tabla lo tengo como “contratoS”.. hay forma de que no necesite la palabra exacta y solo la palabra q mas se asemeja???

    1. Moisés Ortíz Autor

      Hola Eliana, Si quieres utilizar la función BUSCAR, debes colocar la palabra exacta. Existe otra opción y es la de utilizar la función COINCIDIR que nos permite emplear caracteres comodín en la búsqueda. En tu caso podrías utilizar una fórmula como la siguiente:
      =COINCIDIR(“contrato*”,A1:A99,0)

      Para conocer un poco más sobre esta función consulta el siguiente artículo:
      http://exceltotal.com/la-funcion-coincidir-en-excel/

  6. karent sanchez

    muchas gracias en verdad fue de mucha ayuda ;)

  7. Daniel Ibm

    Tengo una lista en la cual se repiten algunos datos, entonces al momento de utilizar la función de BUSCAR solo compara uno de los números, ¿como puedo hacer para que tome en cuenta todas las coincidencias y de esas elija la que necesito?

  8. Rosa Maria

    En un caso que se me presento, había 2 nombre que iniciaban igual, las 2 primeras letras:
    Rosa
    Rodolfo
    Cuando se hacia la busqueda, por ejemplo de Rodolfo siempre me daba el primer nombre que aparecia en el listado, en este caso Rosa, como puedo modificar o de que modo hago que excel se fije NO solo en las primeras letras del nombre?

    1. Moisés Ortíz Autor

      Hola Rosa, eso sucede cuando la lista no está ordenada alfabéticamente. En el caso de la función BUSCAR es necesario que el rango de búsqueda esté ordenado de manera ascendente y en este caso Rodolfo debería aparecer antes de Rosa.

  9. Kariina

    Excelente pagina de Excel, me sirvió muchísimo! Bendiciones Sr. Moisés & muchas gracias por la ayuda!!

  10. MARIELA

    Esta fórmula solo se utiliza cuando el valor buscado se encuentra en la primera fila de la matriz, y de no ser asi??? como puedo hacer?

    1. Moisés Ortíz Autor

      Hola Mariela, la función BUSCAR puede realizar la búsqueda en cualquier columna y regresar cualquier columna como resultado.
      Con los mismos datos del ejemplo de este artículo, si deseo buscar el apellido y obtener el nombre puedo utilizar la siguiente fórmula:
      BUSCAR(“Camacho”, B2:B6, A2:A6)

      La única condicionante para que funcione correctamente es que se deben ordenar los datos de manera ascendente por apellido. Otra alternativa para buscar en columnas que no sean la primera de la matriz es utilizar las funciones INDICE y COINCIDIR. Te dejo un artículo con un ejemplo:
      http://exceltotal.com/una-alternativa-a-la-funcion-buscarv-en-excel/

  11. Daniela Aviles

    Buenas Tardes Moises, llegue a esta pagina ya que estoy interiorizadome en Excel y veo tu amabilidad y predisposicion para responder dudas…Me podrias ayudar con el sgte caso? Necesito por ejemplo que si un dato es mayor que x ejemplo 60 dias me arroje la leyenda hacer tal accion (ej enviar carta) y si ese dato es aun mayor que x ejemplo 90 dias me arroje otra leyenda hacer otra accion (es decir otra distinta ej enviar a incobrables). Te habras dado cuenta que es para una planilla de gestion de cobro y recupero de deuda. Esto es posible en excel?

    Desde ya muchas gracias

  12. ELIAS ALVEAR

    Hola buenos dias,
    mi problema es que tengo la base ordenanda alfabeticamente y aun asi no me devuelve el resultado correcto, te doy un ejemplo.
    | A | B |
    1 | 2-501 | HOLA |
    2 |2-502 | MUNDO|

    De acuerdo al ejemplo al realizar la busqueda con la mencionada funcion y buscar 2-502 me devuelve como respuesta HOLA en vez de ser MUNDO. ¿por que ?

    de antemano agradecido ya que si no lo hubiese ordenando alfabeticamente aun me estaria entregando cualquier otra cosa

    saludos Gracias.

    1. Moisés Ortíz Autor

      Hola Elias, a mi me funciona perfectamente bien. Utilice la siguiente fórmula y me devolvió como resultado “MUNDO”:
      =BUSCAR(“2-502″,A1:A2,B1:B2)

  13. Rafael

    Hola Moises;
    Si en el caso del Ej. no 1 existieran dos CARLOS, me gustaria saber como validar ese caso para obtener la nota del CARLOS que deseo

    1. Moisés Ortíz Autor

      Hola Rafael, en ese caso te recomiendo utilizar un método alterno que considere también el apellido en la búsqueda de manera que se puedan obtener los datos precisos. Consulta el siguiente artículo que puede darte una idea de solución:
      http://exceltotal.com/buscar-por-dos-criterios-en-excel/

  14. KARINA

    Hola Moises, por fa ayudame con una consulta, tu pagina me ha sido de mucha ayuda pero tengo un problema con un reporte que necesito hacer, verás tengo dos listas de nombres de personas por ejemplo, y necesito saber si alguno de los nombres de la lista 1 se encuentran en el grupo de nombres de la lista 2, y ubicar alguna referencia al lado del nombre encontrado para saber que si se encuentra en la lista 2 (intente poner verdadero si se encontraba y falso si no lo encontraba) pero no puedoooooo!!!!!, bueno lindo tu blog, ayudameeeee por fis.

    Karina cordova
    Ecuador.

  15. FABIAN LAGUNAS RAMIREZ

    gracias por la ayuda y la informacion

  16. David Alonso

    Una pregunta.
    Tengo dos tablas, en una tabla el numero de ID esta correcto por ejemplo:
    DM01020345 y en la otra esta incorrecto DS11020345, yo en una columna extraigo los ultimos 5 digots de la columna correcta que en este caso me daría: 20345, ahora, yo quiero que me de en una columna el valor que esta en la otra tabla(donde esta el ID incorrecto) me traiga el valor incorrecto que seria DS11020345.
    Se puede utilizar la funcion BuscarV con solo los ultimos 5 digitos?
    Gracias por tu apoyo!

    1. Moisés Ortíz Autor

      Hola David, te recomiendo utilizar la combinación de función INDICE/COINCIDIR, pero ya que buscarás dentro de un rango, es necesario utilizar una fórmula matricial como la siguiente:
      =INDICE(A1:A10, COINCIDIR(VERDADERO, IGUAL(DERECHA(A1:A10, 5), “20345”),0 ))

      Con esta fórmula obtengo el valor del rango A1:A10 que termina con los caracteres “20345”. Si quiere saber un poco más sobre esta combinación de funciones te recomiendo leer el siguiente artículo:
      http://exceltotal.com/formula-para-buscar-datos-en-excel/

  17. hugo

    gracias por la informacion, en realidad no saben lo util que me ha sido. Saludos

  18. JUAN

    Muchas gracias Moises, la explicacion ha sido de gran utilidad

  19. ROLANDO

    como puedo hacer para que se mantengan los rangos de busqueda al arrastrar la formula.