Definir un rango usando una fórmula

Definir un rango usando una fórmula

Una versión simplificada de mi problema es que en una hoja diferente llamada Sheet2tengo datos que quiero promediar:

=AVERAGE(Sheet2!$A$1:Sheet2!$A$100)

Dependiendo de dónde se use el código anterior, necesito cambiar la columna Apor otra letra, por ejemplo, columna D. Para ello he creado una función:

=MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ",4,1)

que dará salida D.

Mi problema es que en lugar de tener que escribir:

=AVERAGE(Sheet2!$D$1:Sheet2!$D$100)

Quiero usar:

=AVERAGE(Sheet2!$MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ",4,1)$1:Sheet2!$MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ",4,1)$100)

pero Excel no acepta esto. ¿Cómo puedo usar funciones al lado de Sheet2!?

Respuesta1

Puedes usar INDIRECTO:

=AVERAGE(INDIRECT ("Sheet2!$" & MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ",4,1)&"$1:Sheet2!$" & MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ",4,1)&"$100"))

Respuesta2

OFFSET e INDIRECT son volátiles, podemos usar INDEX

=AVERAGE(INDEX(Sheet2!$A$1:$Z$100,0,4))

Le 0dice al ÍNDICE que devuelva todas las filas y 4es la cuarta columna. Entonces se promediarán todas las filas del 1 al 100 en la columna 4.

Según tus comentarios:

=AVERAGE(INDEX(Sheet2!$A$1:$Z$100,0,(COLUMN(A:A)-1)*3))

Respuesta3

Aquí hay una forma:

=AVERAGE(OFFSET(Sheet2!$A:$A,0,(COLUMN()-1)*3))

Tenga en cuenta que OFFSETes volátil y aumentará la carga de cálculo en su libro de trabajo.

información relacionada