2011-06-03 27 views
8

Me gustaría poder especificar dinámicamente un rango en Excel, según las variables de fila/columna.¿Cómo especifico un rango de Excel variable?

Digamos que tengo un archivo con los contenidos que se ven especie de la siguiente manera:

 
    A B C D E 
1 10 11 12 13 14 
2 51 52 53 54 55 

Si quisiera resumir los elementos de la fila 1, columnas 2-4 (es decir, 11 + 12 + 13), ¿cómo podría especificar eso?

Si lo estuviera haciendo con la mano, me Tipo:

=SUM(B1:D1) 

... pero ¿cómo puedo programáticamente generar esa definición de rango sobre la marcha, conociendo sólo la fila (1) y la columna deseada números (2-4)?

=SUM(????) 

Gracias de antemano por su ayuda!

(estoy usando Microsoft Excel 2011 para Mac, por lo que las soluciones basadas en macro de Excel VBA/no va a funcionar para mí.)

Respuesta

9

Tenía la misma necesidad - se parece alLa funciónte permitirá hacer eso.

Así que para lo anterior:

=SUM(OFFSET(A1,0,1,1,3)) 

descomponerlo:

OFFSET(reference cell, 
     row offset from ref cell to start the range, 
     col offset to start the range, height of range you want, 
     width of range you want) 

Usted puede hacer que los traslados de origen si lo desea, o + a REF abajo, - a REF hasta

+0

'OFFSET' es [también volátil] (http://stackoverflow.com/a/6233828/11683). – GSerg

1

No está seguro de lo que quiere.
¿Quisiste decir esto?

dim parent_range as range 
dim child_range as range 

set parent_range = me.range("a1:e2") 
set child_range = range(parent_range.rows(1).cells(2), parent_range.rows(1).cells(4)) 

msgbox "=sum(" & child_range.address(false, false, xla1) & ")" 

¿O quieres que como una fórmula?

=SUM(INDEX($A$1:$E$2,1,2):INDEX($A$1:$E$2,1,4)) 
+0

Gracias por su ayuda, GSerg. Lamentablemente, estoy usando Microsoft Excel 2011 para Mac, que no es compatible con las macros de Excel VBA. Supongo que estoy buscando una solución pura de Excel. – Anirvan

+0

@Anirvan Pruebe la fórmula a continuación. – GSerg

+0

Eso es extraño. He desarrollado macros para Excel 2011 para Mac. Hay algunas peculiaridades en comparación con Windows, pero en su mayor parte todo fue igual. Me sorprendería si no puede usar esto en Excel 2011 para Mac. –

1

Depende de cómo se hace referencia a los "conocidos" números de fila y de columna
Por ejemplo si son valores de las celdas en la hoja:

 A   B 
9 Row  1 
10 ColStart 1 
11 ColEnd  4 

Uso una la función de INDRECT a construir una referencia de rango

=SUM(INDIRECT("R"&B9&"C"&B10&":R"&B9&"C"&B11,FALSE)) 
+2

'INDIRECT' debe evitarse siempre que sea posible. Es volátil, es decir, se recalcula cada vez que cambia una celda. – GSerg

Cuestiones relacionadas