Funciones de búsqueda de Excel: BUSCAR, INDIRECTO y DESREF explicadas

Por el equipo editorial de LogicExcelActualizado en junio de 20267 min de lectura1,236 palabras

Más allá de BUSCARV y de INDICE con COINCIDIR, Excel tiene otras tres funciones de tipo búsqueda que resuelven problemas concretos: BUSCAR, para búsquedas sencillas sobre datos ordenados; INDIRECTO, para construir referencias de celda a partir de cadenas de texto; y DESREF, para crear rangos dinámicos. Así funciona cada una y así se decide cuál usar.

La función BUSCAR

BUSCAR recorre un rango buscando un valor y devuelve el valor correspondiente de otro rango. Siempre hace una coincidencia aproximada y exige que los datos de búsqueda estén ordenados de menor a mayor.

Forma vectorial

La forma vectorial recorre una sola fila o columna y devuelve un valor de la fila o columna correspondiente.

Sintaxis: =BUSCAR(valor_buscado; vector_de_comparación; vector_resultado) Ejemplo:
A (Puntuación)B (Nota)
0F
60D
70C
80B
90A
=BUSCAR(85; A1:A5; B1:B5)

BUSCAR localiza el mayor valor de A1:A5 que sea menor o igual que 85. Ese valor es 80. Devuelve el valor correspondiente de B1:B5: "B".

Importante: el vector de comparación tiene que estar ordenado de menor a mayor. BUSCAR no tiene modo de coincidencia exacta: siempre hace una coincidencia aproximada (menor o igual).

Forma matricial

La forma matricial toma una sola tabla. Si la tabla es más alta que ancha, BUSCAR recorre la primera columna; si es más ancha que alta, recorre la primera fila. Siempre devuelve el valor de la última columna o fila.

Sintaxis: =BUSCAR(valor_buscado; matriz)

La forma matricial apenas se usa en el Excel moderno. La forma vectorial es más clara y más predecible.

Cuándo usar BUSCAR y cuándo BUSCARV

Usa BUSCAR cuando:

  • Tus datos están ordenados y quieres una coincidencia aproximada (escalas de notas, tramos fiscales)

  • Quieres la sintaxis más simple posible para una búsqueda por umbrales


Usa BUSCARV cuando:
  • Necesitas coincidencia exacta (FALSO o 0 como cuarto argumento)

  • Tus datos pueden no estar ordenados


Usa INDICE con COINCIDIR para:
  • Búsquedas hacia la izquierda, conjuntos de datos grandes o cuando pueden insertarse columnas


La función INDIRECTO

INDIRECTO convierte una cadena de texto en una referencia de celda que Excel evalúa. En lugar de apuntar directamente a una celda, construyes la dirección como texto e INDIRECTO hace que Excel la trate como una referencia real. Sintaxis: =INDIRECTO(texto_ref; [a1])
  • texto_ref: una cadena de texto que representa la dirección de una celda o de un rango
  • a1: VERDADERO (predeterminado) para referencias de estilo A1, FALSO para el estilo F1C1

Ejemplo básico

=INDIRECTO("A1")

Equivale a escribir =A1. Por sí solo no aporta nada, pero la potencia aparece cuando la cadena de texto es dinámica.

Referencias dinámicas a hojas

INDIRECTO brilla cuando quieres referenciar una celda de otra hoja y el nombre de esa hoja sale de otra celda.

Imagina que B1 contiene el texto "Enero" y que tienes una hoja llamada Enero. Para traer la celda A1 de esa hoja:

=INDIRECTO(B1 & "!A1")

Cambia B1 a "Febrero" y la fórmula pasa a leer automáticamente de la hoja Febrero. Esto es imposible con una referencia directa como =Enero!A1, que está fija en la fórmula.

Referencia dinámica a un rango con nombre

Si tienes rangos con nombre llamados "Norte", "Sur" y "Este", y la celda A1 contiene uno de esos nombres:

=SUMA(INDIRECTO(A1))

Esto suma el rango con nombre que coincida con el texto de A1. Cambia A1 de "Norte" a "Sur" y la suma se actualiza.

Cuándo usar INDIRECTO

Usa INDIRECTO cuando:

  • Necesitas construir una referencia a partir de texto (nombres de hoja dinámicos, letras de columna variables)

  • Quieres que una fórmula apunte a un rango cuya dirección cambia según lo que introduzca el usuario


Cuidado: INDIRECTO es volátil, es decir, se recalcula cada vez que cambia cualquier celda del libro, aunque sus datos de entrada no hayan cambiado. En libros grandes, abusar de INDIRECTO ralentiza el recálculo de forma perceptible.

La función DESREF

DESREF devuelve una referencia a un rango situado a un número determinado de filas y columnas de una celda de partida. Puede devolver una sola celda o un rango completo del tamaño que indiques. Sintaxis: =DESREF(referencia; filas; columnas; [alto]; [ancho])
  • referencia: el punto de partida
  • filas: cuántas filas moverse (positivo = hacia abajo, negativo = hacia arriba)
  • columnas: cuántas columnas moverse (positivo = hacia la derecha, negativo = hacia la izquierda)
  • alto: opcional, número de filas del rango devuelto
  • ancho: opcional, número de columnas del rango devuelto

Ejemplo básico

=DESREF(A1; 2; 1)

Parte de A1, baja 2 filas y se mueve 1 columna a la derecha: devuelve el valor de B3.

Devolver un rango

=SUMA(DESREF(A1; 0; 0; 5; 1))

Devuelve una referencia a un rango de 5 filas y 1 columna que empieza en A1, equivalente a =SUMA(A1:A5). Esto resulta útil cuando el tamaño es dinámico.

Rango dinámico para un gráfico o una suma

Un uso habitual: sumar las últimas N filas de una columna, donde N sale de una celda. Si B1 contiene el número de meses a incluir:

=SUMA(DESREF(A10; 0; 0; -B1; 1))

Parte de A10 y usa un alto negativo para subir B1 filas. Cambia B1 de 3 a 6 y la suma se amplía sola.

DESREF para listas desplegables dinámicas

DESREF combinada con CONTARA crea un rango con nombre que crece a medida que añades datos:

=DESREF(Hoja1!$A$1; 0; 0; CONTARA(Hoja1!$A:$A); 1)

Como fórmula de un rango con nombre, siempre cubre exactamente tantas filas como entradas haya en la columna A, lo que la hace muy útil para listas de validación de datos dinámicas.

Cuidado: igual que INDIRECTO, DESREF es una función volátil y se recalcula continuamente. Para búsquedas estáticas es preferible INDICE, que no es volátil.

Preguntas frecuentes

¿Cuál es la diferencia principal entre BUSCAR y BUSCARV?

BUSCARV exige que la columna de búsqueda sea la primera por la izquierda de la matriz de tabla, admite coincidencia exacta (cuarto argumento = FALSO/0) y te deja elegir por número cualquier columna de retorno. BUSCAR es más simple, pero siempre usa coincidencia aproximada (no hay opción de coincidencia exacta) y exige datos ordenados. Para la mayoría de usos profesionales, BUSCARV o INDICE con COINCIDIR encajan mejor que BUSCAR.

¿Puede INDIRECTO referenciar otro libro?

Sí, pero el otro libro tiene que estar abierto. La cadena de referencia debe incluir el nombre del libro: =INDIRECTO("[NombreLibro.xlsx]NombreHoja!A1"). Si el libro referenciado está cerrado, INDIRECTO devuelve un error #¡REF!. Para referencias entre libros cerrados, usa referencias directas o Power Query.

¿Cuándo conviene DESREF en lugar de INDICE?

Usa DESREF cuando necesitas devolver un rango de tamaño variable (para gráficos, para el rango de un SUMAR.SI o para listas de validación que crecen). INDICE puede devolver una celda concreta por posición, pero no puede devolver como referencia un rango de alto variable de la misma manera. Usa INDICE para buscar; usa DESREF para rangos dinámicos.

¿Por qué mi fórmula DESREF muestra un error #¡REF!?

Un error #¡REF! en DESREF suele significar que la referencia resultante cae fuera de los límites de la hoja. Por ejemplo, =DESREF(A1; -1; 0) intenta subir una fila por encima de A1, que no existe. Comprueba que los argumentos de filas y columnas no empujen la referencia fuera de los bordes de la hoja.

Sigue adelante

Te indica qué leer a continuación.