La función INDIRECTO en Excel

La función INDIRECTO en Excel nos ayuda a obtener una referencia a una celda o a un rango de celdas. Puedes utilizar esta función para crear una referencia que no cambiará aun cuando se inserten filas o columnas a la hoja de Excel.

La función INDIRECTO también puede ser utilizada para crear una referencia a partir de una letra y un número dando forma a la dirección de la celda de la cual deseamos obtener la referencia.

Sintaxis de la función INDIRECTO

La función INDIRECTO tiene dos argumentos.

Sintaxis de la función INDIRECTO en Excel

  • Ref (obligatorio): Es la referencia especificada como una cadena de texto.
  • A1 (opcional): Valor lógico que indica el tipo de referencia especificada: A1 (verdadero) o F1C1 (falso).

En caso de omitir el argumento A1, la función INDIRECTO supondrá que la referencia es de tipo A1.

Bloquear referencia a una celda

En el siguiente ejemplo puedes observar en la celda C1 la fórmula =A5 y en la celda C2 la fórmula =INDIRECTO(“A5″).

La función INDIRECTO en Excel 2010

Ambas celdas muestran el valor de la celda A5, pero ahora observa lo que sucede al insertar una nueva fila por arriba de la fila 5.

Ejemplo de la función INDIRECTO en Excel

El valor 500 ahora se encuentra en la celda A6 y Excel actualizó automáticamente la fórmula de la celda C1 que ahora es =A6. Sin embargo, la celda C2 muestra el valor 0 (cero) porque la función INDIRECTO sigue regresando la referencia a la celda A5 que ahora está vacía.

Si necesitas hacer referencia siempre a la misma celda sin importar que se inserten o eliminen filas o columnas, entonces la función INDIRECTO será adecuada para dicho propósito.

Crear una referencia a partir de texto

Es posible hacer una referencia con la función INDIRECTO utilizando los valores contenidos en  otras celdas. En el siguiente ejemplo, la celda B1 indica la columna y la celda B2 indica la fila que formarán la dirección de la celda a la que haremos referencia. La función INDIRECTO une ambos valores y regresa el valor de la celda D7:

Crear una referencia con la función INDIRECTO

Sería suficiente con especificar la letra E en la celda B1 para que la función INDIRECTO muestre el valor 608 el cual pertenece a la celda E7.

Ya que el argumento de la función INDIRECTO es de tipo texto podemos formar la dirección de una celda combinando texto y el valor de alguna otra celda. Por ejemplo, podemos modificar la fórmula anterior para fijar la columna C y tomar el valor de la fila especificado en la celda B2:

=INDIRECTO("C" & B2)

Observa el resultado de utilizar la función INDIRECTO de esta manera:

Referencia a partir de texto

Crear una referencia a otra hoja

Ya que hemos observado que podemos concatenar diferentes valores para formar el argumento de la función INDIRECTO hagamos un último ejemplo para construir referencias a celdas que se encuentran en otra hoja. Primero observa los valores que tengo en las Hoja2 y Hoja3 de mi libro de Excel:

Datos en otras hojas de Excel

En la Hoja1 he armado una tabla con los encabezados Hoja, Columna y Fila que me ayudarán a especificar el valor de la celda que deseo obtener. Observa con atención cómo se arma la cadena de texto dentro de la función INDIRECTO:

Referencia a otras hojas con la función INDIRECTO

En esta tabla, la función INDIRECTO de la celda D5 es equivalente a tener =INDIRECTO(“Hoja3!C4″) solo que hemos formado el argumento concatenando los valores ubicados en otras celdas.

Artículos relacionados
 Listas dependientes con la función INDIRECTO
Convertir una lista en tabla

8 comentarios en “La función INDIRECTO en Excel

  1. Antonio

    Estoy intentado utilizar esta función para acceder a celdas de otro libro al que me encuentro y me da error de referencia, ¿sabes si existe alguna restricción en este sentido?

    1. Moisés Ortíz Autor

      Hola Antonio, no hay ninguna restricción de la función INDIRECTO para hacer referencias a otros libros. Solo recuerda que el libro al que estás haciendo referencia debe estar abierto o de lo contrario obtendras un error #¡REF!.

  2. Juan

    Una vez que aplico la funcion INDIRECTO en la formula y quiero arrastrar la formula en las filas de abajo, no variabiliza el rango. =CONTAR.SI(INDIRECTO(“‘[Fixture 2013.xlsx]”& $B$2& “‘!$E33:$AI33″); “F”). La formula toma un rango situado en otro archivo. Cuando trato de llevarlo al E34:Al34 E35:Al35 E36:Al36.. etc. copia fijo el E33:Al33. Como hago para variabilizarlo?

    1. Moisés Ortíz Autor

      Hola Juan, remueve el símbolo $ que es el que hace que una referencia sea absoluta (en lugar de relativa).

  3. MICHAEL DUARTE

    Buenas tardes. Moises de ante mano agradecerlo por todos los aportes realizados ya que han sido de gran ayuda , pero tengo una consulta no se si me pueda colaborar: Estoy intentando utilizar la formula =INDIRECTO(A2&”!”&B2&C2) , para que me traiga la información de varias hojas , el problema es que me aparece #¡REF! , debido a que el nombre de las hojas tienen espacio, me explico el nombre de las hojas están así : Page 1 , Page 2 , Page 3 , al momento de quitarle los espacios dejandolo asi : Page1 , me trae la información , pero para mi es muy dispendioso ya que son mas de 200 registros y esto lo debo hacer en varios archivos.

    1. Moisés Ortíz Autor

      Hola Michael, eso se resuelve colocando una comilla simple alrededor del nombre de la hoja de manera que la función INDIRECTO reciba algo como: ‘Page 1’!A1. Puedes modificar tu fórmula de la siguiente manera:
      =INDIRECTO(“‘”&A2& “‘”&”!”&B2&C2)

      Para saber un poco más sobre referencias de celdas a otras hojas te recomiendo leer el siguiente artículo:
      https://exceltotal.com/hacer-referencia-a-celdas-de-otras-hojas-en-excel/

  4. Federico Sanchez

    Ante todo felicitaciones por tan buena pagina y excelente ayuda. He tratado de aplicar la funcion INDIRECTO pero haciendo referencia entre diferentes archivos, cosa que me ha sido Imposible. Existirá alguna forma de hacerlo? Saludos y gracias.

    1. Moisés Ortíz Autor

      Hola Federico, puedes utilizar la función INDIRECTO de la siguiente manera:
      =INDIRECTO(‘C:UsersMoisesDesktop[Libro2.xlsx]Hoja1’!A1)

      Si quieres leer un poco más sobre la construcción de referencias a otros libros te recomiendo el siguiente artículo:
      https://exceltotal.com/referencias-a-otras-celdas/