Saltar al contenido principal

Excel INDIRECTO(): Cómo construir referencias dinámicas en tus fórmulas

Descubre cómo la función INDIRECTO() de Excel transforma el texto en referencias vivas. Aprende a utilizarlo para hojas de cálculo dinámicas, referencias estables a celdas, rangos con nombre y mucho más.
Actualizado 10 abr 2025  · 8 min de lectura

La función INDIRECT() es una de las herramientas más potentes de Excel, aunque a menudo incomprendida. A diferencia de las funciones que realizan cálculos directamente, INDIRECT() convierte cadenas de texto en referencias de celdas vivas. Esto permite a los usuarios crear fórmulas dinámicas y flexibles que se adaptan a entradas variables. Tanto si estás construyendo un cuadro de mando resumido, como si estás haciendo referencia a diferentes hojas en función de las selecciones del usuario, o cambiando dinámicamente las referencias de las celdas, INDIRECT() puede ser un cambio de juego.

En esta guía, te mostraré cómo utilizar la función INDIRECT() para referenciar celdas y solucionar problemas comunes, incluyendo cuándo evitar el uso de la función. Si no estás familiarizado con algunos conceptos básicos, te recomiendo que sigas nuestro curso Introducción a Excel para construir una base sólida. 

Qué hace la función INDIRECTO()

La función INDIRECT() de Excel recupera el valor de una celda o rango a partir de una referencia proporcionada como cadena de texto. En lugar de codificar una dirección de celda como "A1" en una fórmula, INDIRECT() te permite definir dinámicamente esa dirección utilizando texto, que Excel interpreta como una referencia viva.

La sintaxis de la función INDIRECT() se muestra a continuación:

INDIRECT(ref_text, [a1])

Dónde:

  • ref_text (obligatorio): Una cadena de texto que representa una referencia válida a una celda o rango. Puede referirse a una celda como "A1", a un rango con nombre o incluso a una referencia en otra hoja como "Sheet2!B5".

  • [a1]: Es un argumento opcional que especifica el tipo de referencia en ref_text. Si a1 es TRUE o se omite, ref_text se interpreta como una referencia de estilo A1. Si a1 es FALSE, ref_text se trata como una referencia de estilo R1C1.

Cómo utilizar la función INDIRECTO()

El siguiente ejemplo muestra cómo la función INDIRECT() convierte dinámicamente texto en referencias de celda.

Supongamos que la celda C2 contiene el texto "A2" y la celda A2 contiene el valor 100. La función de abajo también devolverá 100 porque Excel lee el contenido de C2 y INDIRECT() lo trata como una referencia.

=INDIRECT(C2)

Utilizar INDIRECT() para hacer referencia a otra celda en Excel.

Utilizar INDIRECT() para hacer referencia a otra celda en Excel. Imagen del autor.

Si la celda A5 contiene el número 5, puedes construir una referencia dinámica utilizando la fórmula siguiente:

=INDIRECT("B"&A5)

Esta fórmula combina "B" con el valor de A5 (6), formando "B6". INDIRECT() devuelve entonces el valor de la celda B6, que es "Product A".

Utilizar INDIRECT() con & para la referenciación dinámica en Excel.

Utilizar INDIRECT() con & para la referenciación dinámica en Excel. Imagen del autor.

Usos dinámicos de INDIRECTO() en Excel

La verdadera fuerza de la función INDIRECT() es su capacidad para construir referencias dinámicas. Esto lo hace ideal para la modelización avanzada, los cuadros de mando y los informes dirigidos por el usuario. A continuación te presentamos tres casos de uso clave que muestran su flexibilidad.

Referencia a otras hojas de trabajo

Puedes utilizar INDIRECT() para extraer dinámicamente datos de diferentes hojas en función de la entrada de una celda. Por ejemplo, si tienes la celda A1 con el nombre de una hoja, como "Sales". Quieres extraer el valor de la celda B2 de esa hoja.

La fórmula siguiente construye una referencia como 'Sales'!B2 y devuelve el valor de esa celda.

=INDIRECT("'" & A1 & "'!B2")

Utilizar INDIRECT() para hacer referencia indirecta a otras hojas de cálculo en Excel.

Utilizar INDIRECT() para hacer referencia indirecta a otras hojas de cálculo en Excel. Imagen del autor.

Encierra siempre los nombres de las hojas entre comillas simples utilizando ' si hay alguna posibilidad de que contengan espacios o caracteres especiales, como 'Sales 2023'!A1.

Rangos con nombre de referencia

También puedes utilizar la función INDIRECT() para hacer referencia a rangos con nombre de forma dinámica, lo que resulta potente cuando se combina con desplegables o entradas de usuario.

Supón que tienes rangos con nombre, Sales_2023 y Sales_2023, donde la celda "A1" contiene "Sales_2023"

Nombrar rangos de celdas en Excel.

Nombrar rangos de celdas en Excel. Imagen del autor.

La fórmula siguiente sumará los valores del rango nombrado Sales_2023, aunque no haga referencia a él directamente. Este método es estupendo para cuadros de mando dirigidos por el usuario o modelos con múltiples escenarios.

=SUM(INDIRECT(A1))

Utilizar INDIRECT() para hacer referencia a rangos con nombre en Excel.

Utilizar INDIRECT() para hacer referencia a rangos con nombre en Excel. Imagen del autor.

Referencias fijas que no cambian

Normalmente, si insertas o eliminas filas o columnas, las referencias a celdas en las fórmulas se ajustan automáticamente. Pero la función INDIRECT() crea referencias absolutas que no se desplazan.

Por ejemplo, si tienes la celda "A1" que contiene 100, la fórmula =A1 y =INDIRECT("A1") devolverán ambas 100. Sin embargo, si desplazas el valor

Referencia directa a celdas en Excel.

Referencia directa a celdas en Excel. Imagen del autor.

Utilizar INDIRECT() para referenciar celdas en Excel.

Utilizar INDIRECT() para referenciar celdas en Excel. Imagen del autor.

Sin embargo, si insertas una nueva línea encima de la fila 1, D3 (era B2) muestra ahora =A3, ya que el valor se desplaza con la fila. La celda E3 con la función INDIRECT() sigue mostrando el A2 original, que ahora puede estar vacío o tener un valor diferente (UID).

Utilizar INDIRECT() para referencias fijas en Excel.

Utilizar INDIRECT() para referencias fijas en Excel. Imagen del autor.

Ejemplos avanzados y casos de uso

Una vez que te sientas cómodo con los conceptos básicos, la función INDIRECT() brilla en escenarios más avanzados de Excel, especialmente cuando se combina con funciones como VLOOKUP(), ROW(), y matrices dinámicas. Estas combinaciones desbloquean modelos aún más dinámicos y flexibles.

Utilizar INDIRECT() con VLOOKUP()

Puedes combinar INDIRECT() con VLOOKUP() para cambiar dinámicamente la tabla de consulta en función de las entradas del usuario.

Supongamos que tienes dos tablas, Prices_2022 y Prices_2023. En células separadas, G1: Prices_2022 y G2: Apple`. La fórmula siguiente busca dinámicamente "Apple" en la tabla del año seleccionado a partir del valor de A1 y devuelve su precio.

=VLOOKUP(G2, INDIRECT(G1), 2, FALSE)

Utilizar INDIRECT() con VLOOKUP() en Excel.

Utilizar INDIRECT() con VLOOKUP() en Excel. Imagen del autor.

Echa un vistazo a nuestro VLOOKUP() de Otra Hoja: Un tutorial práctico en Excel para aprender más sobre la búsqueda y recuperación de datos de distintas hojas de Excel.

INDIRECT() con referencia R1C1

INDIRECT() también puede utilizar la notación R1C1, que es especialmente útil cuando se construyen fórmulas dinámicamente en macros o se hace referencia a posiciones mediante programación.

Por ejemplo, la fórmula siguiente devuelve el valor de la fila 2, columna 3 ( celda C2). El segundo argumento (FALSE) le dice a Excel que utiliza el estilo R1C1, no el A1.

=INDIRECT("R2C3", FALSE)

Utilizar INDIRECT() con R1C1 en Excel.

Utilizar INDIRECT() con R1C1 en Excel. Imagen del autor.

La siguiente fórmula incluye el uso dinámico de ROW() y COLUMN(). La fórmula siempre devolverá el valor de la columna 3 de la misma fila en la que está escrita la fórmula.

=INDIRECT("R" & ROW() & "C3", FALSE)

Utilizar INDIRECT() con ROW() y COLUMN() en Excel.

Utilizar INDIRECT() con ROW() y COLUMN() en Excel. Imagen del autor.

INDIRECTO() y matrices dinámicas

Antes de que Excel introdujera las matrices dinámicas, INDIRECT() era un método habitual para generar un comportamiento similar al de las matrices.

Por ejemplo, la fórmula siguiente devuelve una matriz: {1; 2; 3; 4; 5}. Simula una matriz del 1 al 5 haciendo referencia indirecta a las filas.

=ROW(INDIRECT("1:5"))

Utilizar INDIRECT() con ROW() para matrices dinámicas en Excel.

Utilizar INDIRECT() con ROW() para matrices dinámicas en Excel. Imagen del autor.

El método alternativo moderno es utilizar la función SEQUENCE().

=SEQUENCE(5)

Utilizar SEQUENCE() para matrices dinámicas en Excel.

Utilizar SEQUENCE() para matrices dinámicas en Excel. Imagen del autor.

Utilizar INDIRECT() para matrices dinámicas sigue funcionando, pero se considera menos eficiente y menos legible que SEQUENCE(), FILTER(), y otras funciones de matrices dinámicas disponibles en el Excel moderno (Office 365 y Excel 2021+).

Precauciones y problemas de funcionamiento

La función INDIRECT() tiene algunas limitaciones importantes, especialmente cuando se utiliza en libros de Excel grandes o complejos. Entre estas cuestiones se incluyen las siguientes:

  • Función volátil (sobrecarga de recálculo): INDIRECT() es una función volátil, lo que significa que recalcula siempre que se realiza algún cambio en cualquier parte del libro de trabajo, aunque el cambio no tenga nada que ver con la fórmula. Esto puede provocar un rendimiento más lento.

  • Depurar puede ser un reto: Dado que INDIRECT() construye referencias a partir de texto, Excel no puede rastrearlas fácilmente como hace con las referencias de celda estándar. Eso dificulta la auditoría de fórmulas con trazas precedentes/dependientes, o la detección de referencias rotas cuando algo cambia.

  • Considera alternativas modernas: Cuando es posible, suele ser mejor utilizar funciones no volátiles, que ofrecen mejor rendimiento y claridad. Estos métodos incluyen INDEX() para búsquedas dinámicas de celdas, CHOOSE() para seleccionar dinámicamente entre rangos u opciones predefinidos, y SEQUENCE() para generar matrices numéricas dinámicas.

Cuándo evitar utilizar INDIRECT()

Aunque INDIRECT() ofrece una gran flexibilidad, no siempre es la mejor opción. A menudo introduce una complejidad innecesaria, problemas de rendimiento o de mantenimiento. A continuación te indicamos algunas situaciones que debes evitar y los mejores métodos alternativos.

  • Referencias dinámicas de celdas dentro de la misma hoja: Utiliza INDEX() en lugar de INDIRECT() para mejorar el rendimiento y la trazabilidad.

  • Matrices dinámicas o secuencias numéricas: Evita =ROW(INDIRECT("1:10")). En su lugar, utiliza =SEQUENCE(10), que es más rápido, limpio y no volátil.

  • Cuando la trazabilidad es importante: Las fórmulas que utilizan INDIRECT() no se pueden rastrear con "Rastrear precedentes" o "Evaluar fórmula" de forma eficaz.

  • Hacer referencia a una celda o rango estático: No utilices INDIRECT("A1") si puedes escribir simplemente =A1.

  • Uso intensivo en grandes hojas de cálculo: Como INDIRECT() es volátil, se recalcula constantemente y puede ralentizar el rendimiento de forma significativa.

Alternativas INDIRECT()

La tabla siguiente resume las mejores alternativas a INDIRECT().

Objetivo

Prefiere esto en lugar de INDIRECT()

Referenciación dinámica de celdas

INDEX()

Generar secuencias

SEQUENCE()

Lógica condicional o fórmulas más limpias

LET()

Búsqueda multiescenario

CHOOSE() o XLOOKUP()

Fórmulas de hoja flexibles

XLOOKUP() con datos estructurados o Power Query

Puntos clave

INDIRECT() convierte cadenas de texto en referencias vivas, lo que la convierte en una potente herramienta para construir hojas de cálculo dinámicas y flexibles. Es útil para referenciar hojas diferentes, rangos con nombre o celdas fijas que no deben desplazarse con los cambios. Sin embargo, es una función volátil que recalcula con frecuencia y puede ralentizar los libros de trabajo grandes. La función también es más difícil de rastrear y depurar que las funciones tradicionales. Utiliza INDIRECT() de forma selectiva, y considera alternativas más seguras y eficaces.

Te recomiendo que sigas nuestro curso de Análisis de datos en Excel para aprender a comprender los datos B2B y el curso de Fundamentos de Excel para conocer mejor las funciones disponibles en las últimas versiones de Excel. Nuestras Funciones Avanzadas de Excel son un curso perfecto si estás explorando las referencias y búsquedas avanzadas.

Avanza en tu carrera con Excel

Adquiere los conocimientos necesarios para sacar el máximo partido a Excel, sin necesidad de experiencia.

Empieza hoy gratis

Allan Ouko's photo
Author
Allan Ouko
LinkedIn
Creo artículos que simplifican la ciencia de los datos y la analítica, haciéndolos fáciles de entender y accesibles.

Preguntas frecuentes sobre Excel

¿Qué hace INDIRECT()?

INDIRECT() convierte una cadena de texto en una referencia de celda o rango.

¿Se actualiza INDIRECT() automáticamente?

Sí, INDIRECT() recalcula cuando cambian las celdas referenciadas, a menos que la referencia no sea válida.

¿Cómo afecta INDIRECT() al rendimiento?

INDIRECT() recalcula cada vez que cambia cualquier celda del libro, lo que puede ralentizar los libros grandes o complejos debido a los frecuentes recálculos.

¿Cuáles son las alternativas a INDIRECT()?

Utiliza INDEX(), CHOOSE(), SEQUENCE(), o LET() para un funcionamiento más seguro y rápido.

¿Por qué INDIRECT() devuelve #REF!?

La referencia a la que intenta acceder no existe o está mal escrita.

Temas

Aprende Excel con DataCamp

Programa

Excel Fundamentals

0 min
Gain the essential skills you need to use Excel, from preparing data to writing formulas and creating visualizations. No prior experience is required.
Ver detallesRight Arrow
Comienza el curso
Ver másRight Arrow
Relacionado

Tutorial

Cómo hacer un VLOOKUP() con múltiples criterios

Domina el arte de utilizar VLOOKUP() con criterios múltiples en Excel. Explora técnicas avanzadas como las columnas de ayuda y la función ELEGIR().
Laiba Siddiqui's photo

Laiba Siddiqui

10 min

Tutorial

Las 15 fórmulas básicas de Excel que todo el mundo debe conocer

Aprende a añadir fórmulas aritméticas, de cadena, de series temporales y complejas en Microsoft Excel.
Abid Ali Awan's photo

Abid Ali Awan

15 min

Tutorial

Formato condicional en Excel: Guía para principiantes

Explora el formato condicional en Excel con ejemplos de sencillos a avanzados y sus mejores prácticas.
Joleen Bothma's photo

Joleen Bothma

7 min

Tutorial

Cómo combinar VLOOKUP() con IF() en Excel

Combina VLOOKUP() con IF() para un análisis eficaz de los datos, incluyendo búsquedas condicionales, gestión de errores e indexación dinámica de columnas.
Laiba Siddiqui's photo

Laiba Siddiqui

10 min

Tutorial

Tipos de datos en Excel y sus usos: Guía completa

Aprende a identificar y dar formato a todos los tipos de datos en Excel, y luego explora valiosos consejos sobre la conversión entre tipos de datos para que tu hoja de cálculo sea más funcional.
Laiba Siddiqui's photo

Laiba Siddiqui

9 min

Tutorial

XLOOKUP() frente a VLOOKUP(): una comparación para usuarios de Excel

XLOOKUP() busca en cualquier dirección, usa de forma predeterminada coincidencias exactas y tiene gestión de errores integrada, mientras que VLOOKUP() solo busca a la derecha y necesita una indexación manual de las columnas.
Laiba Siddiqui's photo

Laiba Siddiqui

11 min

Ver másVer más