Fórmula de Excel: Incrementar la referencia de celda con INDIRECTO -

Fórmula genérica

=INDIRECT(sheet&"!"&CELL("address",A1))

Resumen

Para incrementar una referencia creada como texto dentro de la función INDIRECTA, puede usar la función CELDA. En el ejemplo que se muestra, la fórmula en D5 es:

=INDIRECT($B$5&"!"&CELL("address",A1))

Qué se incrementa a medida que se copia la fórmula.

Explicación

Considere una referencia dinámica simple a Sheet2 usando el INDIRECTO en una fórmula como esta:

=INDIRECT($B$5&"!"&"A1"))

Si cambiamos el nombre de la hoja en B5 a otro nombre (válido), INDIRECTO devolverá una referencia a A1 en la nueva hoja.

Sin embargo, si copiamos esta fórmula en la columna, la referencia a A1 no cambiará, porque "A1" está codificado como texto.

Para resolver este problema, usamos la función CELDA para generar una referencia de texto a partir de una referencia de celda regular:

CELL("address",A1)

Con "dirección" como primer argumento y A1 como segundo argumento, la función CELDA devuelve una cadena como "$ A $ 1". Debido a que A1 es una referencia de celda regular, se incrementará normalmente a medida que la fórmula se copia en la columna. El resultado en D5: D9 es una serie de fórmulas como esta:

=INDIRECT("Sheet2!$A$1") =INDIRECT("Sheet2!$A$2") =INDIRECT("Sheet2!$A$3") =INDIRECT("Sheet2!$A$4") =INDIRECT("Sheet2!$A$5")

En cada caso, INDIRECTO resuelve cada cadena de texto en una referencia y Excel devuelve el valor en la celda dada en Sheet2.

Nota: tanto INDIRECTO como CELDA son funciones volátiles y se recalculan con cada cambio de hoja de trabajo. Esto puede causar problemas de rendimiento en hojas de trabajo más complejas.

Articulos interesantes...